Страница 1 из 1

общая ошибка в методах объектов связанных с 1-wire ?

Добавлено: Чт ноя 27, 2014 11:46 pm
Vovix
Есть такая мысль, и мне кажется я прав:

большинство методов объектов типа tempChanged или statusChanged и т.п.
имеют у себя в коде функцию записи значения свойства изменение которого как раз и вызвало этот метод,

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

...
$this->setProperty('temp',$t);
...
но большая часть внутренних регистров (ячеек данных) элементов 1-wire являются READ ONLY
а назначение свойству объекта значения "насильно" приводит к попытке модулей PHP отвечающих за связку,
также "насильно" "вдолбить" это значение в 1-wire
результат=
мы имеем постоянные ошибки типа этой:

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

Notice: Read only value set#1 [/28.1DF3B9040000/temperature10] in C:\_majordomo\htdocs\modules\onewire\ownet.php on line 606    
а также "двойной проход" выполнения этих методов!

Из этой глобальной ошибки, уже и вытекают другие мелкие и крупные неприятности типа не обновления выключателей http://smartliving.ru/forum/viewtopic.php?f=4&t=1911 в меню и т.п. (лишние значения в истории например еще).

Если я прав, это надо решать на уровне именно модулей связи с устройствами 1-wire
либо вручную вычищать такие баги (для 1-wire) во всех методах!
Сергей, это видимо просьба к Вам!

Re: общая ошибка в методах объектов связанных с 1-wire ?

Добавлено: Пт ноя 28, 2014 10:23 am
sergejey
Если на обновление свойства status стоит вызов statusChanged, а в самом statusChanged так же стоит установка свойства status, то statusChanged будет вызван два раза. Собственно, это легко избежать -- просто убрать из кода метода установку этого же свойства.

Re: общая ошибка в методах объектов связанных с 1-wire ?

Добавлено: Пт ноя 28, 2014 1:08 pm
Vovix
sergejey писал(а):Если на обновление свойства status стоит вызов statusChanged, а в самом statusChanged так же стоит установка свойства status, то statusChanged будет вызван два раза. Собственно, это легко избежать -- просто убрать из кода метода установку этого же свойства.
Сергей, спасибо!
практически все предлагаемые на форуме примеры методов statusChanged имеют эту особенность

1) есть новички которые могут наступить на эти "грабли". Думаю им это будет полезно!
2) это напрямую связанно с ошибками обновления элементов меню!!!


З.Ы. Сергей, мне всё еще, очень, нужна Ваша помощь в теме - http://smartliving.ru/forum/viewtopic.p ... 1&start=20