Your comments
Добрый день, Александр.
Да. К сожалению, в документации этот момент был упущен, но сейчас уже добавили информацию.
По существу:
1) EVENT_TAG_CHANGE реагирует на новое получение данных, даже если новое значение совпадает с уже имеющимся. Это справедливо, если используется IR.GetDevice(). Пример:
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("Modbus TCP"), function(name, value)
{
IR.Log(name + ": " + value);
});
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetServer(), function(name, value) { IR.Log(name + ": " + value); });
Если новое значение не совпадает с уже имеющимся, то EVENT_TAG_CHANGE срабатывает.
3) EVENT_GLOBAL_TAG_CHANGE реагирует только на изменение и не сработает, если новое значение равно предыдущему.
IR.GetServer() охватывает все фидбэки во всех драйверах Иридиум сервера, но реагирует только на изменения. В этом EVENT_TAG_CHANGE совместно с IR.GetServer похож на EVENT_GLOBAL_TAG_CHANGE.
IR.GetDevice() работает только в пределах конкретного драйвера, но реагирует на любое новое значение. Даже, если новое равно предыдущему.
Рады помочь.
У вас есть ещё вопросы по вашему обращению?
Добрый день.
Если вы хотите отслеживать все получения данных, даже если новые значения совпадают со старыми, то используйте IR.GetDevice(). Примерно так:
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("Modbus TCP"), function(name, value)
{
IR.Log(name + ": " + value);
});
Для нативных драйверов нужно использовать Set, т. е. отправлять команду в драйвер. SetVariable предназначен для виртуальных фидбэков и токенов проекта.
Только что проверили ещё раз. Конструкция:
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetServer(), function(name, value)
{
IR.Log(name + ": " + value);
});
Можно вместо IR.GetServer использовать IR.GetDevice, но только для отдельных драйверов. В таком случае, если новое значение равно предыдущему, то EVENT_TAG_CHANGE сработает.
Почему бы тогда не использовать GetFeedback для получения текущего значения из нужных фидбэков?
Слушатель с EVENT_TAG_CHANGE лучше объявить вне функции и по изменению тэга выполнять нужные действия (отправить команду в нативный драйвер, изменить значение виртуального фидбэка и т. д.). EVENT_TAG_CHANGE реагирует на любое новое значение, даже если новое равно предыдущему.
Рады помочь.
Добрый день.
1) Как вызываете глобальную сцену? Отправляете команду в нативный драйвер?
2) Если значения фидбэков вам не нужны, то значение чего хотите получить в серверном проекте?
Добрый день.
По iRidium Lite: в панельных рутинах можно указать:
1) Если процент заряда батареи больше 90%, то выключить реле.
2) Если заряд батареи меньше 20%, то включить реле.
3) Через реле подключить зарядку планшета.
Нечто подобное можно реализовать и в i3 pro, только через JavaScript, т. к. панельных рутин в pro нет.
Customer support service by UserEcho
Да, драйвер работает с оборудованием, а IR.GetDevice() с сервером.