Your comments

https://stackoverflow.com/questions/29712951/how-to-convert-two-8-bits-to-16-bits-and-vice-versa-in-javascript

    var firstNumber = 1118; // extracted from Uint16Array
    var high = ((firstNumber >> 8) & 0xff);
    var low = firstNumber & 0xff;
    IR.Log(high + ", "+ low); // 94, 4
    var _firstNumber = (((high & 0xff) << 8) | (low & 0xff));
    IR.Log(_firstNumber); // 1118

Получение и отправка данных драйвера уже была описана http://support.iridiummobile.net/topics/13550-bitovaya-maska-modbus-tcp/#comment-81283

Что такое "два разных дисплея"?

Issue still actual?


Please describe the system in more detail which devices are used.

Send the project to support@iridiummobile.ru

Arjan, have you solved your task?

Руслан, тут скорее сложность в формулировке задачи: Вы спросили как округлить число - Вам ответили.


СКАЧАЙТЕ пример для Level, поменяйте свойство Range Type на Float


IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("Mobdus OVEN"), function(name, value) 
{  
    IR.Log(name+": "+value); //
    if (name=="Tem1")
    {
      var calc = Math.round(value*100)/100;
      IR.Log("From OVEN " + calc);
      IR.SetVariable("Global.level", calc);
    }
    
}); IR.AddListener(IR.EVENT_START,0,function()
{
   //IR.SetVariable("Global.level", 23.123765);
   IR.SubscribeTagChange("Global.level");
});
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{  
   if (name == "Global.level")
   {
      var calc = Math.round(value*100)/100;
      IR.Log("To OVEN" + calc);
      IR.GetDevice("Mobdus OVEN").Set("ust_GVS", calc)
   }
});

Вам уже писали, читайте больше документации


Первый вариант "По индивидуальным событиям": рисуем элемент Level (ползунок, имя тут - "Level Landscape 0 - 1")

В редакторе скриптов:

IR.AddListener(IR.EVENT_START,0,function()
{
   var litem = IR.GetPage("Page 1").GetItem("Level Landscape 0 - 1");
   IR.AddListener(IR.EVENT_ITEM_PRESS,litem,lvl,litem);
   IR.AddListener(IR.EVENT_MOUSE_MOVE,litem,lvl,litem);
   IR.AddListener(IR.EVENT_ITEM_RELEASE,litem,lvl,litem);
});
function lvl() {
   var calc = Math.round(this.Value*100)/100;
   IR.Log(calc);
   //IR.SetVariable("Tokens.test", calc);
}

Второй вариант "Черех глобальный слушатель":

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.SubscribeTagChange("UI.Page 1.Level Landscape 0 - 1.Value"); 
});
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{  
   if (name == "UI.Page 1.Level Landscape 0 - 1.Value")
   {
      var calc = Math.round(value*100)/100;
      IR.Log(calc);
      //IR.SetVariable("Tokens.test", calc);
   }
});

Что-то я совсем запутался - в чем собственно задача и сложность решения?! Объясните "на пальцах" : "жму сюда - срабатывает то-то"


Запустить (эмулировать) команду вроде бы не сложно и фидбэки есть..

http://dev.iridiummobile.net/HDL#Universal_Switch_Control


Есть баг - не все броадкасты отрабатываются (для Wireless)

http://support.iridiummobile.net/topics/12384-hdl-wireless-devices-broadcast-drycontact-status-not-recognized/#comment-80634


http://support.iridiummobile.net/topics/10185-obratnaya-svyaz-ot-coolmaster-4000-v-seti-hdl/#comment-80981


Что за устройство "выключатели"?

Yes, you can


Use for this SEND TONE in the SIP Commands list


see JS Script in the examples here [simplified intercom (tablet, PC)]


http://support.iridiummobile.net/topics/49-nastraivaem-sip-server-3cx-phonesystem/?lang=en

Олег, с помощью IR.EVENT_TAG_CHANGE можно настроить любую реакцию на изменение значения созданных Feedback'ов