не могу программно установить свойство

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

Модератор: immortal

Ответить
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

не могу программно установить свойство

Сообщение Pacific » Чт май 28, 2015 9:57 pm

Простейший метод для считывания и установки свойств.
Считывается отлично.
А вот установки не происходит. Что я сделал не так?

$tSens = $this->getProperty('tSensor');
say($tSens);
$this->setProperty('t', 22);
Изображение
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: не могу программно установить свойство

Сообщение ErmolenkoM » Пт май 29, 2015 8:08 am

Pacific писал(а):Простейший метод для считывания и установки свойств.
Считывается отлично.
А вот установки не происходит. Что я сделал не так?

$tSens = $this->getProperty('tSensor');
say($tSens);
$this->setProperty('t', 22);
Изображение
http://connect.smartliving.ru/ ?
Как вызываете метод? Есть понимание, что этот синтаксис применим только к методам объектов, и вызывается для конкретного экземпляра?
Хотелось бы увидеть что вывела команда say($tSens);
Попробуйте так:

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

$this->setProperty('t', '22');
или так:

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

$this->setProperty('tttt', '22');
Попробуйте заменить на

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

setGlobal('KitchenZone.t', '22'); -- установка глобального свойства
Последний раз редактировалось ErmolenkoM Пт май 29, 2015 10:23 am, всего редактировалось 1 раз.
aka msh555
Cubian на Cubietruck, Connect
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: не могу программно установить свойство

Сообщение Pacific » Пт май 29, 2015 10:09 am

msh555 писал(а): http://connect.smartliving.ru/ ?
Как вызываете метод? Есть понимание, что этот синтаксис применим только к методам объектов, и вызывается для конкретного экземпляра?
Спасибо за отклик. Понимание есть (ну, или мне так кажется ;) ). Метод вызывается нажатием на кнопку в меню:
Изображение
msh555 писал(а):Хотелось бы увидеть что вывела команда say($tSens);
Выводится "KitchenMain.dhtt1". Я эту строчку и ввёл для того, чтобы понять, правильно ли я обращаюсь к объекту KitchenZone.
msh555 писал(а):Попробуйте так:

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

$this->setProperty('t', '22');
увы, значение свойства не меняется
msh555 писал(а):или так:

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

$this->setProperty('tttt', '22');
В объекте создается новое свойство, но без значения:
Изображение
msh555 писал(а):Попробуйте заменить на

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

setGlobal('KitchenZonet.t', '22'); -- установка глобального свойства
Сегодня вечером попробую .
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: не могу программно установить свойство

Сообщение Pacific » Пт май 29, 2015 7:32 pm

хорошая новость: пришел с работы и заработало!
$this->setProperty("t", '25');
$this->setProperty('t', '25');
$this->setProperty('t', 21);
$this->setProperty("t", 10);
все эти варианты работали.

плохая новость:
снова перестало работать.
ввожу простейший код :

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

say('test2');
$this->setProperty("t", '25');
В чате вылазит test2, а свойство не меняется.

А перестало работать, когда я набирал более сложный код:

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

$tSens = $this->getProperty("tSensor");
say($tSens);
$temp = gg($tSens);
say( $temp);
$this->setProperty("t", $temp);
Затык на поледней строке. После этого вернулся к простейшему коду и снова не работает. Наверно, где-то PHP глючит у меня.
Хелп!
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: не могу программно установить свойство

Сообщение Pacific » Пт май 29, 2015 9:47 pm

Решено!
Оказалось следующее: для контроля изменения свойств объекта, я изменял значение свойств в браузере вручную. После этого пытался изменить значение свойства программно. Так вот при обновлении странички со свойствами, программные изменения не отражались.
Но простой код показал, что изменения всё-таки происходят

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

$this->setProperty('t', '25');
say($this->getProperty('t'));
Теперь новый вопрос: как обновлять страничку со свойствами, чтобы отследивать изменения? Юзаю Оперу
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
Ответить