Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.05.2013, 12:21   #11
St@rz
Senior Member
 
Регистрация: 30.05.2011
Возраст: 51
Сообщений: 291
Вес репутации: 0
St@rz is on a distinguished road
По умолчанию

Как правильней будет послать из openwrt команду (reboot) в роутер (192.168.1.1) для его перезагрузки?

У меня сейчас инет по DSL. На Windows в автозагрузке сейчас работает программа со следующим кодом:

Код:
 ; Компилятор - PureBasic 4.51.

ProgramFilename.s=ProgramFilename() ; Имя и путь к исполняемому файлу данной программы
ProgName.s=GetFilePart(ProgramFilename)
a = CreateSemaphore_(#Null,0,1,@ProgName) ; Если прога уже запущена, то завершаем работу этой копии программы.
If a<>0 And GetLastError_()=#ERROR_ALREADY_EXISTS
  MessageRequester(ProgName, "Программа уже запущена", #MB_OK|#MB_ICONWARNING)
  CloseHandle_(a) 
  End
EndIf

InitNetwork()

Procedure.s SendModemData(Connect, Command.s)
  Protected Result.s="", Count=0, x
  Command=Command+Chr(13)+Chr(10)
  SendNetworkData(Connect, @Command, Len(Command))
  Repeat
    Delay(20)
    If NetworkClientEvent(Connect)=#PB_NetworkEvent_Data
      *mem=AllocateMemory(10000)
      If *mem
        ReceiveNetworkData(Connect,*mem,10000)
        In.s=PeekS(*mem)
        FreeMemory(*mem)
        Result=Result+In
      EndIf
    EndIf
    Count+1
  Until Count>=80
  ProcedureReturn Result
EndProcedure


Procedure RestartModem()
  Connect=OpenNetworkConnection("192.168.127.1", 23)
  If Connect
    Delay(100)
    SendModemData(Connect, "admin") ; Логин модема.
    Delay(1000)
    SendModemData(Connect, "admin") ; Пароль модема.
    Delay(1000)
    SendModemData(Connect, "reboot") ; Команда перезагрузки модема.
    Delay(4000)
    CloseNetworkConnection(Connect)
  EndIf
EndProcedure

Repeat
  Delay(30000) ; 30 секунд ожидания.
  x1=0 : x2=0
  Connect=OpenNetworkConnection("www.google.com", 80)
  If Connect
    x1=1
    CloseNetworkConnection(Connect)
  EndIf
  Delay(1000)
  Connect=OpenNetworkConnection("www.ya.ru", 80)
  If Connect
    x2=1
    CloseNetworkConnection(Connect)
  EndIf
  
  If x1=0 And x2=0
    RestartModem()
    For i=1 To 20
      Delay(10000) ; 200 секунд ожидания. Необходимо чтобы модем успел перезагрузиться.
    Next i
  EndIf
ForEver

Последний раз редактировалось St@rz; 22.05.2013 в 12:36.
St@rz вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 07:50. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика