Я только начал знакомиться с системой МДМ поэтому не судите, если мой вопрос покажется вам банальным. Весь код на PHP я придумал сам и возможно он не оптимален...
Система МДМ очень интересная и мощная
Для проверки системы в действии я собрал ArduinoControllerWebServer, правда отключил библиотеки: Arduino.h, OneWire.h, DallasTemperature.h и весь связанный сними код - то есть у меня вышел только исполняемый контроллер, к выходам 3, 5, 6 - подключил по светодиоду с резистором (типа для эмуляции реле ...)
В системе был класс Relays со свойством: status и методами:
Код: Выделить всё
//PARENT refresh
$status=$this->getProperty("status");
if ($status) {
$this->callMethod('turnOn');
} else {
$this->callMethod('turnOff');
}
//PARENT switch
$status=$this->getProperty("status");
if ($status) {
$this->callMethod('turnOff');
} else {
$this->callMethod('turnOn');
}
//PARENT turnOff
$this->setProperty("status", 0);
//PARENT turnON
$this->setProperty("status", 1);
Создал три объекты:Relay1(Green), Relay2(Red), Relay3(Blue) класса ArduinoWSRelays
прописал для них свойства:
Relay1(Green).board_pin = 3
Relay1(Green).server_ip = 192.168.1.100
и т.д
Прописал для них методы:
Код: Выделить всё
//CHILD turnON
$cmdUrl = "http://".$this->getProperty('server_ip')."/command?".$this->getProperty('board_pin')."=ON";
getURL($cmdUrl, 0);
$this->setProperty("status", 1);
//CHILD turnOff
$cmdUrl = "http://".$this->getProperty('server_ip')."/command?".$this->getProperty('board_pin')."=OFF";
getURL($cmdUrl, 0);
$this->setProperty("status", 0);
//CHILD refresh
$cmdUrl = "http://".$this->getProperty('server_ip')."/command?".$this->getProperty('board_pin')."=STATUS";
$str = getURL($cmdUrl, 0);
$status = (int) explode("=", $str)[1];
$this->setProperty('status', $status);
Вопрос как сделать так чтобы метод refresh(CHILD refresh) вызывался автоматически через, например 2 секунды?
То есть если состояние одного из реле на сервере изменится, каким-то другим интерфейсом - МДМ знал об этом.
Я понимаю что можно запрограммировать Ардуино на отправку запроса - типа
http://192.168.1.100/objects/?object=Re ... &m=refresh
Но меня интересует именно как сделать автоматический вызов метода refresh(CHILD refresh)
Спасибо за ответ ))