Изменение свойства и запуск метода

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
VladPTZ
Сообщения: 397
Зарегистрирован: Вт май 31, 2016 6:56 pm
Откуда: Россия Карелия Петрозаводск
Благодарил (а): 96 раз
Поблагодарили: 57 раз

Изменение свойства и запуск метода

Сообщение VladPTZ » Пт сен 16, 2016 3:08 pm

Тут написано http://majordomo.smartliving.ru/Main/Library

3.Вызвать метод и присвоить значение свойству можно удаленно строчкой вида

Код: Выделить всё

http://127.0.0.1/objects/?object=dimmerHall&op=m&m=remoteStatusChanged&brightness=0    
где 127.0.0.1 - адрес сервера, object - объект, m - метод&значение свойства.

Есть у меня строка

Код: Выделить всё

http://192.168.1.146/objects/?object=IR_Resiver&op=m&m=IR_Decode&Code=4187020818
 
В итоге метод IR_Decode запускается а свойство Сode на значение 4187020818 не меняется.
Почему?
У вас меняется?
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm
Благодарил (а): 38 раз
Поблагодарили: 45 раз

Re: Изменение свойства и запуск метода

Сообщение ipz » Пт сен 16, 2016 6:06 pm

В X-Ray -> Debug что пишет при вызове этой строки?

Эта строка вызывает метод remoteStatusChanged с параметром brightness=0

Если просто изменить свойство объекта, без вызова метода нужно так

Код: Выделить всё

http://192.168.1.146/objects/?object=IR_Resiver&op=set&p=IR_Decode&v=4187020818   
или так

Код: Выделить всё

http://192.168.1.146/objects/?object=IR_Resiver&op=set&p=Code&v=4187020818  
В зависимости от того как свойство объекта называется
За это сообщение автора ipz поблагодарил:
VladPTZ (Пт сен 16, 2016 8:52 pm)
Рейтинг: 1.16%
VladPTZ
Сообщения: 397
Зарегистрирован: Вт май 31, 2016 6:56 pm
Откуда: Россия Карелия Петрозаводск
Благодарил (а): 96 раз
Поблагодарили: 57 раз

Re: Изменение свойства и запуск метода

Сообщение VladPTZ » Пт сен 16, 2016 7:15 pm

Кажется начинает прояснятся....
То есть получается я методу передаю параметр а не меняю свойство объекта.
Тогда как мне внутри метода этот параметр получить и обработать, можно пример кода метода?

Смысл моей задумки такой, передать методу число, а метод в зависимости от полученного числа выполняет нужные действия.
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm
Благодарил (а): 38 раз
Поблагодарили: 45 раз

Re: Изменение свойства и запуск метода

Сообщение ipz » Пт сен 16, 2016 8:32 pm

$params['Code'] будет равно 4187020818

Можно проверить содержимое всего массива $params (для отладки, например, ну или для чего душа пожелает перебрать его содержимое):

Код: Выделить всё

foreach($params as $index => $val) {DebMes($index . "->" . $val);} 
За это сообщение автора ipz поблагодарил:
VladPTZ (Пт сен 16, 2016 8:52 pm)
Рейтинг: 1.16%
VladPTZ
Сообщения: 397
Зарегистрирован: Вт май 31, 2016 6:56 pm
Откуда: Россия Карелия Петрозаводск
Благодарил (а): 96 раз
Поблагодарили: 57 раз

Re: Изменение свойства и запуск метода

Сообщение VladPTZ » Пт сен 16, 2016 8:53 pm

ipz спасибо.

Код: Выделить всё

$this->setProperty("Code",$params['Code']);
say("работает",2); 
Вот такой диагностический код записал переданное значение при вызове метода в свойство объекта, буду писать дальше :)
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm
Благодарил (а): 38 раз
Поблагодарили: 45 раз

Re: Изменение свойства и запуск метода

Сообщение ipz » Пт сен 16, 2016 8:59 pm

Работает, но лучше так:

Код: Выделить всё

if (isset($params['Code'])) {
  $code = $params['Code'];
  $this->setProperty("Code",$code);
  say("работает",2); 
  
  if($code == 12345) {
    // ...
  }
 
}
Ответить