0
Ожидает ответа пользователя

EVENT_GLOBAL_TAG_CHANGE и несколько панелей управления

Андрей Курников 8 лет назад в Приложения / i3 Pro обновлен Dmitry - support (expert) 8 лет назад 7

На серверном проекте создан

channel: current_source
tag: current_source
В клиетском скрипте:

1) Подписываемся на:
IR.SubscribeTagChange("Drivers.iRidium Server.current_source");



2) На нажатие кнопки меняем состояние current_cannel:
IR.AddListener(IR.EVENT_ITEM_PRESS.....
{
IR.SetVariable("Drivers.iRidium Server.current_source","что-то");
}

3) IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)

{

if ( name.indexOf('current_source')!=-1 ) {
IR.GetItem("Page 1").GetItem("ltem 1").GetState(0).Text = value;
}

}


В итоге на сервере current_source изменяется но результат выводится только на текущей панели. На второй автоматически не выводится.

Каким образом можно синхронизировать панели?

Ожидает ответа пользователя

Здравствуйте!


Это виртуальные канал и тэг ? Как на стороне сервера записываете значение в тэг?


Это виртуальный "Channel" и такой же "Tag" на сервере.
На стороне сервера ни как не записываю. Записываю на клиенте : IR.SetVariable("Drivers.iRidium Server.current_source","что-то");

При данной ситуации код работает даже при выключенном сервере. Тоесть значения записываются и выводятся.

Можете прислать ваши проекты нам на почту support@iridiummobile.ru ?

Создано 2 варианта управление серверными переменными.
1) Через перетаскивание в GUI: значения на сервере не меняются. При этом если задать значение через web интерфейс - то на обе панели приходит значение.

2) Через скрипты. Значение меняется на сервере и только на текущей панели, откуда отправляется комманда. Если выключить сервер, значение на текущей панели все равно будет меняться.

Также не совсем понятно управление пременными через web интерфейс. Почему задать новое значение можно только через Feedbacks. При изменении значения через Commands ни чего не происходит.

Ваша проблема была в том, что вы никак не обрабатывали на стороне сервера изменение виртуальных каналов. Сами по себе виртуальные каналы и тэги никак не связаны друг с другом. Поэтому вам нужно было делать всю обработку значений через скрипты. Также на стороне панельного проекта вы через скрипты меняли просто значение фидбэка, поэтому он менялся только на одной панели. Вам надо было менять значение канала, далее сервер принимает это значение и уже записывает к виртуальные серверный тэг, который в свою очередь связан с фидбэком панельного проекта. Вот ваши проекты с доработанными скриптами. Теперь все работает как надо

testClient.irpz


testServer.sirpz

Сервис поддержки клиентов работает на платформе UserEcho