Re: Модуль Broadlink
Добавлено: Ср июн 28, 2017 3:34 pm
Я хз...эт МД чет чудит...в модуле точно нету функции/переменной cmp
У себя проверил - падений не замечено...
У себя проверил - падений не замечено...
Код: Выделить всё
include_once(DIR_MODULES."dev_broadlink/dev_broadlink.class.php");
$dev_broadlink=new dev_broadlink();
$dev_broadlink->check_params();Цикл работал.nick7zmail писал(а):Должно работать...проверьте цикл бродлинка...если не запущен - запустите.
Код: Выделить всё
if ($rec['TYPE']=='s1') {Код: Выделить всё
public function Check_Status(){
$data = array(); //Создается переменная $data в виде массива, запомним этот момент!
$packet = self::bytearray(16);
$packet[0] = 0x12;
$response = $this->send_packet(0x6a, $packet); // Когда S1C не отвечает в течении 10 секунд, то $response пустой!
$err = hexdec(sprintf("%x%x", $response[0x23], $response[0x22])); // $err всегда 0, даже когда S1C не ответил (я ожидал не 0).
if($err == 0){ //наверное, условие не защищает от проблемы молчания S1C и дальше идет работа с пустым $response
$enc_payload = array_slice($response, 0x38);
if(count($enc_payload) > 0){ //тут не проверил, но я так понимаю, что дальше уже не заходит обработчик
$payload = $this->byte2array(aes128_cbc_decrypt($this->key(), $this->byte($enc_payload), $this->iv()));
$data['status'] = $payload[0x04];
$data['delay_time_m'] = $payload[0x08];
$data['delay_time_s'] = $payload[0x09];
$data['alarm_buzzing'] = $payload[0x0a];
$data['alarm_buzzing_duration'] = $payload[0x0b];
$data['beep_mute'] = $payload[0x0d];
$data['alarm_detector'] = $payload[0x28];
switch ($data['status']) {
case 0x00:
$data['status_val'] = constant('LANG_BRS1_DISARM');
break;
case 0x01:
$data['status_val'] = constant('LANG_BRS1_PART');
break;
case 0x02:
$data['status_val'] = constant('LANG_BRS1_FULL');
break;
default:
$data['status'] = constant('LANG_BRS1_UNKNOWN').$data['status'];
}
}
}
return $data; // и в результате нам возвращают пустой массив $data, не "" и не NULL, а просто Array.
} Код: Выделить всё
if ($rec['TYPE']=='s1') {мы получаем $response, как пустой массив.$response = $rm->Check_Status();
Код: Выделить всё
if(isset($response) && $response!='') { Код: Выделить всё
if(isset($response) && $response!='' && !empty($response)) { Код: Выделить всё
if(isset($response) && $response!='') {