Send a command to Global Cache from the script

SEND COMMAND

If the command is already created in the device tree (built-in drivers):
http://wiki2.iridiummobile.net/Drivers_API#Set


If you want to form the command string inside the script:

http://wiki2.iridiummobile.net/Drivers_API#Send



Take part in webinars of iRidium Academy to receive more information about working with equipment using iRidium Script.



Let’s say you have GC-100-12, and some RS232-Device is connected to the output Serial 2. RS232-Device has a set of commands described in the driver (in output Commands).

So in order to activate the command what should you write?



One GC-100-12 module consists of 3 transports (as it works with 3 different devices at a time):

  • port 4998 – IR commands, system data, relay control
  • port 4999 – Serial 1
  • port 5000 – Serial 2


Thus, to refer to different ports, you will need to describe the device differently from the standard AV driver.


.Send command to GC:

IR.GetDevice("Global Cache").Send(['DATA'], <TRANSPORT ID>)

is 0, 1 or 2 - it is the number of TCP transport created by GC driver

0 = TCP transport on port 4998 (IR commands, system data, relays)

1 = TCP transport on port 4999 (Serial 1)

2 = TCP transport on port 5000 (Serial 2)


.Set command to GC:

IR.GetDevice("Global Cache").Set("COMMAND", "")

"COMMAND" have to be created on the GC output


Example 1 (.Send and .Set command to Serial output):



var device = IR.GetDevice("Global Cache");
IR.AddListener(IR.EVENT_ONLINE , device, function() 
{
   device.Send(['POWER_ON', '\r\n'], 1); // to Serial 1
   device.Send([0x00, 0x00, 0x00, 0x0D], 2); // to Serial 2
   device.Set("POWER_ON", ""); // Command from the tree
});

Example 2 (.Send IR command to IR Output):



var device = IR.GetDevice("Global Cache");
IR.AddListener(IR.EVENT_ONLINE , device, function() 
{
    var command1 = 'sendir,1:1,1,36127,1,1,96,31,17,16,16,16,16,32,16,32,49,32,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,32,17,16,16,16,16,16,32,16,16,16,16,16,16,16,16,32,32,16,16,16,16,16,16,16,16,32,17,16,16,16,16,16,32,16,4624';
    device.Send([command1,0x0D]);
}
IR command has a following syntax:


'sendir,<connectoraddress>,<ID>,<frequency>,<repeat>,<offset>,<command sequence>'
see the iTach API for details



RECEIVE FEEDBACK

To receive the feedback from Global Cache with COM port and process it with JS, please use the construction:


IR.AddListener(IR.EVENT_RECEIVE_TEXT, IR.GetDevice("Global Cache"), function(text, id)
{
   if (id == 0)
      IR.Log("system data: "+ text);   
   else if (id == 1)
      IR.Log("COM1 data: "+ text); 
   else if (id == 2)
      IR.Log("COM2 data: "+ text); 
});

function (text, id)

text - the data received from equipment

id - is 0, 1 or 2, it is the number of TCP transport created by GC driver

0 = TCP transport on port 4998 (IR commands, system data, relays)

1 = TCP transport on port 4999 (Serial 1)

2 = TCP transport on port 5000 (Serial 2)

This article was helpful for 3 people. Is this article helpful for you?