IR.GetDevice(name).Send([data]) How to use in "Panel+Server" mode?
Target:
Sending a array of Hex data to device via UDP in iRIdi Script.
I have achieve goal in "only-Panel" mode by the code below:
var cmd = [0x11,0x22, 0x33];
IR.GetDevice("AV & Custom TCP/UDP Network").Send(cmd);
But I have problem in "Panel+Server" mode:
Panel:
var cmd = [0x11,0x22, 0x33];
for(var i=0;i<3;i++){
IR.GetDevice("iRidium Server").Set("AV & Custom TCP/UDP Network.AV & Custom Systems:AV Control Command", cmd[i]);
}
Server:
IR.SubscribeTagChange("Server.Channels.AV & Custom TCP/UDP Network.AV & Custom Systems:AV Control Command");
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(in_sName, in_sValue){
IR.Log("Active Global Listener: " + in_sName + "\tValue: " + in_sValue);
IR.GetDevice("AV & Custom TCP/UDP Network").Send(in_sValue);
}
The problem is the Server sending nothing to device. And I found the "in_sValue" only getting the last byte(0x33) according to the log.
What is wrong with me, please?
Customer support service by UserEcho
Hello.
You need to do the following:
1. Completely transfer the script for sending data from the panel to the project to the global listener of the server project:
var cmd = [0x11,0x22, 0x33];
IR.SubscribeTagChange("Server.Channels.AV & Custom TCP/UDP Network.AV & Custom Systems:AV Control Command");
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(in_sName, in_sValue){
IR.Log("Active Global Listener: " + in_sName + "\tValue: " + in_sValue);
IR.GetDevice("AV & Custom TCP/UDP Network").Send(cmd);
})
2. From the panel project, just send any value to the driver channel (you can just send 1 via a macro)