Движок правил wb-rules: различия между версиями

(Обновление до версии 1.7)
Строка 19: Строка 19:
С версии 2.2 стали более строго проверяться типы устанавливаемых значений для контролов:
С версии 2.2 стали более строго проверяться типы устанавливаемых значений для контролов:


если для установления признака включено/выключено для контролов типа switch и клики по pushbutton применялась недокументировання возможность
если для установления признака включено/выключено для контролов типа switch, клики по pushbutton или присваивание значений контролам с типом text применялась недокументировання возможность
использования для этой цели числовые значения (1, 0) в версии движка 2.2 операция присваивания не выполнится и завершится с ошибкой.
использования для этой цели числовые значения (1, 0 и т.д.) в версии движка 2.2 операция присваивания не выполнится и завершится с ошибкой.
Корректный способ — устанавливать булевы значений (true/false)
Корректный способ — устанавливать булевы значений (true/false) для switch/pushbutton и строковые значения для типа text


При возникновении подобной проблемы в логах можно видеть подобные записи:
При возникновении подобной проблемы в логах можно видеть подобные записи:
Строка 27: Строка 27:
ERROR: control wb-mr3_30/K1 SetValue() error: can't convert control value '1' (type float64) to datatype 'switch'
ERROR: control wb-mr3_30/K1 SetValue() error: can't convert control value '1' (type float64) to datatype 'switch'
ERROR: control system/Reboot SetValue() error: can't convert control value '1' (type float64) to datatype 'pushbutton'
ERROR: control system/Reboot SetValue() error: can't convert control value '1' (type float64) to datatype 'pushbutton'
ERROR: control status/someStatus SetValue() error: can't convert control value '-1.47' (type float64) to datatype 'text'
</pre>
</pre>


Строка 32: Строка 33:
<syntaxhighlight lang="ecmascript">
<syntaxhighlight lang="ecmascript">
dev["wb-mr3_30"]["K1"] = 1 // включение
dev["wb-mr3_30"]["K1"] = 1 // включение
dev["status"]["someStatus"] = -1.47 // float
</syntaxhighlight>
</syntaxhighlight>


Строка 37: Строка 39:
<syntaxhighlight lang="ecmascript">
<syntaxhighlight lang="ecmascript">
dev["wb-mr3_30"]["K1"] = true // включение
dev["wb-mr3_30"]["K1"] = true // включение
dev["status"]["someStatus"] = (-1.47).toString() // text
</syntaxhighlight>
</syntaxhighlight>


5

правок