Send arbitrary text from RMS

I'm trying to set up an RMS system so the user can click a button on a web page, enter some text in a dialog box, and have that text sent to the room system.

The Programmer's Guide says you can do an ADD ACTION followed by an ADD SARG for that action, which seems like exactly what I need. However, it doesn't work correctly for me, and tech support tells me that it's broken. This is RMS 3.3 BTW.

So...
-Question for programmers: Have you done anything like this? If so, how?
-Question for AMX: will SARG be unbroken anytime soon? If not, how would I implement such a thing?

Thanks much.

Comments

  • Chad ReynoldsonChad Reynoldson Junior Member Posts: 12
    I've been battling Sargs, Nargs, Eargs myself over the past few months and today I finally found the gold nugget of help.

    First off, args are not tied independently to a single master in RMS. Rather, they are tied to a single server. So all of your args are shared and you must have a unique action ID and a unique Action Name for each action for each netlinx master for that server.

    For now, it is recommended to use blocks of IDs per master, so they don't walk on each other. Also note that once you set args, the only way to change them is to purge the actions from the server (and reboot each master) or to choose a new unique action ID for your specific master (my choice). Once registered, you CANNOT modify the args, I repeat you CANNOT modify the args.

    Here's a sample that worked for me. Notice that lighting uses 27 and hvac uses 71.

    Lighting using a NARG:
    CHANNEL_EVENT[vdvRMSEngine,250] // RMS server online
    {
      ON :
      {
        SEND_COMMAND vdvCLActions,'ADD FOLDER-Radia'
        SEND_COMMAND vdvCLActions,'ADD FOLDER-Lights,Radia'
        SEND_COMMAND vdvCLActions,'ADD ACTION-27,Preset,Lighting preset,Lights'
        SEND_COMMAND vdvCLActions,'ADD NARG-Preset,Dimmer Preset,1,128'
      }
    }
    
    BUTTON_EVENT[vdvCLActions,27]   // Dimmer Preset
    {
      PUSH :
      {
        STACK_VAR INTEGER nPset
    
        nPset = ATOI(acStringEnumArgValues[1])
    
        IF(nPset)
          SEND_COMMAND dvLTS01,"'RP',ITOA(nPset),'T3'"
      }
    }
    

    HVAC using an EARG:
    CHANNEL_EVENT[vdvRMSEngine,250] // RMS server online
    {
      ON :
      {
        SEND_COMMAND vdvCLActions,'ADD FOLDER-HVAC'
        SEND_COMMAND vdvCLActions,'ADD FOLDER-Modes,HVAC'
        SEND_COMMAND vdvCLActions,'ADD ACTION-71,Stat 1,Set thermostat mode,Modes'
        SEND_COMMAND vdvCLActions,'ADD EARG-Stat 1,List of thermostat modes,AUTO,OFF,AUTO,COOL,HEAT'
      }
    }
    
    BUTTON_EVENT[vdvCLActions,71]  // Stat 1 Mode
    {
      PUSH :
      {
        STACK_VAR CHAR cValue[10]
    
        cValue = acStringEnumArgValues[1]
    
        SEND_COMMAND vdvHVAC01,"'MODE-1,',cValue"
      }
    }
    

    //
    // Chad Reynoldson, CTS
    // 4035 South 81st Lincoln,NE 60506
    // w:402.489.1220 m:402.525.9209
    // http://www.ReynoldsonControl.com/blog/
    // http://twitter.com/chadrey/
    //
  • chillchill Luddite Posts: 186
    Chad,

    That is a veritable gold nugget. I will give it a shot. Thanks!
Sign In or Register to comment.