NetLinx Programmer’s Guide RMS Enterprise Resource Management Suite® Enterprise Applications Last Revised: 10/17/2014
AMX Software License and Warranty Agreement • LICENSE GRANT. AMX grants to Licensee the non-exclusive right to use the AMX Software in the manner described in this License. The AMX Software is licensed, not sold. This license does not grant Licensee the right to create derivative works of the AMX Software. The AMX Software consists of generally available programming and development software, product documentation, sample applications, tools and utilities, and miscellaneous technical information.
Table of Contents Table of Contents RMS Enterprise NetLinx Programmer’s Guide ....................................................1 Overview .................................................................................................................. 1 System Requirements............................................................................................... 1 RMS Enterprise What's Changed?............................................................................ 1 Upgrading From RMS v3.
Table of Contents RMS Engine ............................................................................................................ 14 RMS Client Web Configuration...................................................................................... 14 RMS NetLinx Adapter Module ............................................................................... 15 RMS Virtual Device (vdvRMS) ........................................................................................
Table of Contents RMS NetLinx Device Monitoring Modules.............................................................. 35 Sample Source & Workspace Files ......................................................................... 37 Getting Started ................................................................................................39 Source Code Samples............................................................................................. 39 NetLinx or Duet Path?............................
Table of Contents RmsAssetExclude ................................................................................................................... 54 Registering Asset Parameters ................................................................................ 54 Key (String) ............................................................................................................................ Name (String).............................................................................................
Table of Contents RmsAssetParameterSetValueDecimal..................................................................................... RmsAssetParameterSetValueLevel ......................................................................................... RmsAssetParameterSetValue ................................................................................................. RmsAssetParameterUpdateValue...........................................................................................
Table of Contents Asset Control Methods Registration Functions ............................................................. 93 RmsAssetControlMethodEnqueue ......................................................................................... 93 RmsAssetControlMethodArgumentString.............................................................................. 94 RmsAssetControlMethodArgumentBoolean ..........................................................................
Table of Contents RMS-Asset-Global-Key.......................................................................................................... RMS-Asset-Make .................................................................................................................. RMS-Asset-Make-Url............................................................................................................. RMS-Asset-Model ............................................................................................
Table of Contents Level API .............................................................................................................. 128 RMS RMS Hotlist Levels .............................................................................................. 128 RMS Client Logging - Command API .................................................................... 128 RMS Client Logging Instruction Commands & Queries .............................................. 128 LOG.LEVEL-<1|2|3|4>...................
Table of Contents ?CLIENT.CONNECTION.STATE ............................................................................................ 132 RMS Client Instruction Commands ............................................................................. 133 CLIENT.CONNECT................................................................................................................ CLIENT.DISCONNECT ..........................................................................................................
Table of Contents RMS Client Configuration Event Notification Commands ........................................... 138 CONFIG.CHANGE-............................................................................................................... 138 RMS Status Type Management - Command API................................................... 138 RMS Status Type Registration Commands .................................................................. 138 STATUS.TYPE-............................................
Table of Contents ASSET.PARAM.RESET- ......................................................................................................... 147 RMS Asset Parameters Query Commands .................................................................. 147 ?ASSET.PARAM-................................................................................................................... 147 RMS Asset Parameters Registration & Update Commands ........................................ 148 ASSET.
Table of Contents ?HOTLIST.RECORD.PRIORITY- ............................................................................................. ?HOTLIST.RECORD.DESCRIPTION-...................................................................................... ?HOTLIST.RECORD.TIMESTAMP- ........................................................................................ ?HOTLIST.RECORD.ASSET-.................................................................................................. ?HOTLIST.RECORD.
Table of Contents RmsBookingsSummariesDailyRequest ......................................................................... 168 RmsBookingsSummaryDailyRequest ........................................................................... 169 RmsBookingActiveRequest.......................................................................................... 169 RmsBookingNextActiveRequest ................................................................................. 170 RmsBookingCreate.......................
Table of Contents SECURITY SYSTEM .............................................................................................. 188 SETTOP BOX ....................................................................................................... 189 SWITCHER ........................................................................................................... 190 TV ........................................................................................................................
Table of Contents RMS Enterprise - NetLinx Programmer’s Guide xv
Table of Contents xvi RMS Enterprise - NetLinx Programmer’s Guide
RMS Enterprise NetLinx Programmer’s Guide RMS Enterprise NetLinx Programmer’s Guide Overview This document outlines the RMS SDK (v4) programming concepts and RMS NetLinx API commands for RMS Enterprise, and describes all channels, levels, and Send Commands available via the RMS NetLinx Virtual Device API. System Requirements The RMS SDK is a set of NetLinx and TPDesign4 files that are included in your control system programs.
RMS Enterprise NetLinx Programmer’s Guide Upgrading From RMS v3.3 to RMS Enterprise RMS Enterprise (SDK4) supports SDK3 legacy client connections without question and without making any changes to the code. In fact, many features will be available without any code changes (such as multi-stage and time delayed notifications and power use based on device type).
RMS Enterprise NetLinx Programmer’s Guide Assets Assets (formerly known as 'Devices') represent physical devices or equipment. An asset can be a sophisticated electronically monitored device such as a Video Projector or something as simple as a Flip Chart. Assets can be electronically registered from the RMS SDK on a control system platform or in the case of non-monitored equipment, hand entered via the RMS web based user interface.
RMS Enterprise NetLinx Programmer’s Guide Control methods are named functions with an optional list of arguments that can be registered along with each monitored asset. These registered control methods are accessible and can be invoked via the RMS web user interface. RMS Control Macros also utilize these registered asset control methods to perform coordinated sequences of control events across multiple assets and/or locations.
The RMS Enterprise SDK (v4) The RMS Enterprise SDK (v4) Overview The RMS Enterprise Software Development Kit (SDK) provides the necessary runtime framework, programming APIs, convenience API wrappers, device monitoring and management implementations and sample projects to fully integrate a NetLinx control system with RMS. RMS Enterprise uses SDK version 4.
The RMS Enterprise SDK (v4) RMS SDK - Duet.apw (Duet Workspace) FIG. 2 shows the NetLinx Studio Workspace Bar with the RMS SDK - Duet.apw (Duet Workspace) open: FIG. 2 NetLinx Studio - Workspace Bar (RMS SDK - Duet.apw) As indicated in the Workspace Bar, the Duet Workspace provided with the RMS Enterprise SDK contains a total of 12 Duet-based projects, each of which presents a starting point for a specific type of NetLinx system.
The RMS Enterprise SDK (v4) Files Included in the Duet Workspace (RMS SDK - Duet.apw) - Cont. File Name Description Include folder (Cont.) RmsMathUtil.axi This include file provides math related helper functions. These functions make certain tasks easier such as the rounding of values and the scaling of levels. RmsMonitorCommon.axi This include file is used by each of the RMS Duet device monitoring modules.
The RMS Enterprise SDK (v4) Files Included in the Duet Workspace (RMS SDK - Duet.apw) - Cont. File Name Description Module folder (Cont.) RmsDuetDVRMonitor This device monitoring module provides monitoring and control to RMS for Digital Video Recorders. RmsDuetLightSystemMonitor This device monitoring module provides monitoring and control to RMS for Light Systems.
The RMS Enterprise SDK (v4) RMS SDK - NetLinx.apw (Duet Workspace) FIG. 2 shows the NetLinx Studio Workspace Bar with the RMS SDK - NetLinx.apw (NetLinx Workspace) open: FIG. 3 NetLinx Studio - Workspace Bar (RMS SDK - NetLinx.apw) As indicated in the Workspace Bar, the NetLinx Workspace provided with the RMS Enterprise SDK contains a total of 12 NetLinx-based projects, each of which presents a starting point for a specific type of NetLinx system.
The RMS Enterprise SDK (v4) Files Included in the NetLinx Workspace (RMS SDK - NetLinx.apw) - Cont. File Name Description Include folder (Cont.) RmsGuiApi.axi This include file provides helper functions that can simplify NetLinx integration with the RMS GUI component. RmsMathUtil.axi This include file provides math related helper functions. These functions make certain tasks easier such as the rounding of values and the scaling of levels. RmsMonitorCommon.
The RMS Enterprise SDK (v4) Files Included in the Duet Workspace (RMS SDK - Duet.apw) - Cont. File Name Description Module folder (Cont.) RmsNlDocCameraMonitor.axs This device monitoring module provides monitoring and control to RMS for Document Cameras. RmsNlDVRMonitor.axs This device monitoring module provides monitoring and control to RMS for Digital Video Recorders. RmsNlHVACMonitor.axs This device monitoring module provides monitoring and control to RMS for HVAC systems.
The RMS Enterprise SDK (v4) Default File Locations of NetLinx Studio Workspace and Support Files File Locations NetLinx Studio Workspace and Support Files Workspace Files (*.APW) Program Files > AMX > Resource Management Suite > sdk > netlinx > 4.1. Include Files Program Files > AMX > Resource Management Suite > sdk > netlinx > 4.1. includes Generic Device Monitors Program Files > AMX > Resource Management Suite > sdk > netlinx > 4.1.
The RMS Enterprise SDK (v4) RMS SDK File Dependencies FIG. 4 shows the dependencies and relations between the files involved in an RMS Enterprise system. FIG.
The RMS Enterprise SDK (v4) RMS Client Overview FIG. 5 illustrates the RMS Client components deployed to a NetLinx system. FIG. 5 RMS Client components Deployed to a NetLinx System RMS Engine The RMS Engine is deployed to the NetLinx master as an internal Java OSGi bundle and provides the RMS subsystem and communication layers for accessing and communicating with a RMS server.
The RMS Enterprise SDK (v4) FIG. 7 RMS Client Web Configuration When setting up or changing the RMS configuration settings, always use the Test Connection button to verify that the RMS client can successfully connect and communicate with the RMS server. RMS NetLinx Adapter Module The RMS NetLinx Adapter module exposes the RMS NetLinx Virtual Device API for consumption in NetLinx programs. This module is required to interact with RMS from a NetLinx program.
The RMS Enterprise SDK (v4) // RMS Touch Panel Array VOLATILE DEV dvRMSTP[] = { dvTP1_RMS, dvTP2_RMS, dvTP3_RMS } // RMS Touch Panel Array // Base Device for System Keyboard handling VOLATILE DEV dvRMSTP_Base[] = { dvTP1, dvTP2, dvTP3 } DEFINE_START // RMS GUI - User Interface Module // This module is responsible for all the RMS // user interface application logic. This // includes help requests, maintenance requests, // location hotlist, and server display messages.
The RMS Enterprise SDK (v4) The following code illustrates the inclusion of the RMS Touch Panel Monitor module. DEFINE_DEVICE dvTP1 dvTP2 dvTP3 dvTP1_RMS dvTP2_RMS dvTP3_RMS = = = = = = 10001:1:0 10002:1:0 10003:1:0 10001:7:0 10002:7:0 10003:7:0 // Touch Panels // (must be port 1 for base device) // RMS Touch Panels // (RMS uses port 7 by default) // // AMX Touch Panel Monitor // // - include a touch panel monitoring module instance for each // touch panel device you wish to monitor.
The RMS Enterprise SDK (v4) RMS RFID Adapter Module & RMS RFID Monitor (Anterus) RMS supports RFID asset tracking with the use of an AMX Anterus RFID system. The RMS SDK includes a “RmsRfid.axi” Include File that contains all the necessary RFID module declarations and a place to add the RFID read device DPS entries. The diagram in FIG. 9 illustrates the file dependency chain for RMS & RFID integration: FIG. 9 RMS SDK File Dependencies - RFID Implementation RmsRfid.
The RMS Enterprise SDK (v4) DEFINE_MODULE 'RmsAnterusRFIDAdapter_dr4_0_0' mdlRMSAnterusAdapter(vdvRMSRfid,vdvAnterusGateway) // Anterus RFID Duet Module // This module enabled RFID management of AMX // Anterus RDIF readers and tags.
The RMS Enterprise SDK (v4) It is important to note that any location-wide monitoring or control functionality should be implemented as part of the control system asset. This include location-scoped concepts such as System Power and System Modes. For more details on how to implement System Power or System Modes, please see Implementing System Power on page 113 and Implementing System Modes on page 114.
The RMS Enterprise SDK (v4) It is important to note that by default RMS does not implement System Power or System Modes. They must be enabled in the RmsControlSystemMonitor module and the user program must implement the necessary behavior and logic when these events are triggered. The RMS SDK provides the infrastructure for routing these notifications, but does not provide a default usage implementation.
The RMS Enterprise SDK (v4) RmsSystemEventHandler.axi - Functions (Cont.) RmsEventSystemModeChangeRequest Description: RMS system mode change request notification. • This callback method is invoked by the 'RmsEventListener.axi' Include File to notify this program when the system operating mode has requested to be changed. • This method should not be invoked/called by any user implementation code.
The RMS Enterprise SDK (v4) RMS Power Distribution Unit (PDU) Monitor Devices such as the NXA-PDU-1508 provide an interesting combination of integration requirements. The PDU unit itself is an asset with many parameters to be registered and monitored in RMS. However, the monitored usage of power for each outlet may truly represent real power consumption on behalf of another asset being registered and monitored in RMS.
The RMS Enterprise SDK (v4) // // Power Distribution Unit RMS Monitor // // - include one of these for each physical PDU hardware unit. // this module will monitor and report power and energy usage // information into the RMS system. // DEFINE_MODULE 'RmsPowerDistributionUnitMonitor' mdlRmsPowerDistributionUnitMonitorMod(vdvRMS, dvPDU_Base, dvPowerMonitoredDevices); This RmsPowerDistributionUnitMonitor module is provided as a full open source NetLinx module in the RMS SDK.
The RMS Enterprise SDK (v4) FIG. 13 RMS SDK File Dependencies - Source Usage Implementation The RmsSourceUsage.axi Include File contains the necessary source usage virtual device definition, a location to register each source tracked asset to a source index number, and several convenience functions to help manage the selected (active) source asset states. The code snippets below illustrates the NetLinx code required to integrate the RmsSourceUsageMonitor module. (This is located inside the RmsSourceUsage.
The RMS Enterprise SDK (v4) // add all assets to tracked for source usage // using the mutually exclusive assignment method means that // only a single mutually exclusive source can be active at // any given time. If a source asset is activated, then all // other sources configured as mutually exclusive will // be automatically deactivated. // set of sources.
The RMS Enterprise SDK (v4) RmsSourceUsage.axi - Wrapper Functions (Cont,) RmsSourceUsage AssignAssetMutExcl Description: This function is used to assign a RMS asset to be monitored as a mutually exclusive source. This method should be called on startup to assign each source based asset to an index for source usage monitoring. Mutually exclusive source usage tracking only allows a single sources asset to be active at any given time.
The RMS Enterprise SDK (v4) RmsSourceUsage.axi - Defined Constants The "RmsSourceUsage.
The RMS Enterprise SDK (v4) STRUCTURE RmsAssetParameter { CHAR key[50]; CHAR name[50]; CHAR description[250]; CHAR dataType[30]; CHAR reportingType[30]; CHAR initialValue[50]; CHAR units[50]; CHAR allowReset; CHAR resetValue[50]; SLONG minimumValue; SLONG maximumValue; CHAR enumeration[500]; CHAR trackChanges; CHAR bargraphKey[30]; CHAR stockParam; } STRUCTURE RmsAssetParameterThreshold { CHAR name[50]; CHAR enabled; CHAR statusType[30]; CHAR comparisonOperator[30]; CHAR value[50]; CHAR notifyOnTrip; CHAR
The RMS Enterprise SDK (v4) RmsApi.axi - General Utility Functions The following list of General Utility Functions can be found in the RmsApi.axi Include File: RmsApi.axi - General Utility Functions RmsDevToString Description: This function is used to convert a device variable of type DEV to a string representation using the :: formatting syntax. Arguments: • DEV dvDPS Returns: DPS string; example "5001:1:0" Syntax: DEFINE_FUNCTION CHAR[20] RmsDevToString(DEV dvDPS) { RETURN "ITOA(dvDPS.
The RMS Enterprise SDK (v4) RmsApi.axi Functions (Cont.) General Utility Functions (Cont.
The RMS Enterprise SDK (v4) RmsApi.axi - Miscellaneous Functions The following list of other Miscellaneous Functions can be found in the RmsApi.axi Include File: RmsApi.axi - Miscellaneous Functions RmsGetVersionInfo Description: This function is used to query the RMS client to display version information via the master's telnet console.
The RMS Enterprise SDK (v4) For detailed information, please review the source code and code comments inside the RmsApi.axi Include File. Additionally, please see the NetLinx Programming sections in this document where the usage of many of these functions in the RmsApi are demonstrated: See Programming - RMS Required Modules on page 45. See Programming - Asset Management on page 47. See Programming - Client Messaging on page 109. See Programming - Advanced Topics on page 111.
The RMS Enterprise SDK (v4) RMS Duet Device Monitoring Modules The RMS Enterprise SDK includes default asset monitoring and management implementations for the following Duet device types: RMS Duet Device Monitoring Modules • Audio Conferencer • Monitor • Camera • Receiver • Digital Satellite System • Settop Box • Document Camera • Switcher • Digital Video Recorder • TV • Disc Device (DVD, CD) • Video Conferencer • Light System • Video Projector Each Duet device that is intended to be used wit
The RMS Enterprise SDK (v4) The following code snippet illustrates a defined Duet module and its corresponding RMS Duet device monitoring module.
The RMS Enterprise SDK (v4) This does not mean that you have to implement Duet-based devices, however the NetLinx programmer is responsible for emulating the SNAPI channel/level/command API for a particular device. For example, to allow the RMS NetLinx monitoring module to track a device port, the NetLinx programmer must implement the SNAPI status channel (#255) for device power. When the physical device power is turned on, the NetLinx programmer should set channel #255 to the ON state.
The RMS Enterprise SDK (v4) dvVideoProjector) For more detailed information, review the source code provided for each RmsNlXxxxxxMonitor module. Additionally, see the Programming - Asset Management section on page 47 for more details on programming for asset management. Sample Source & Workspace Files The RMS Enterprise Software Development Kit provides a number of source code examples both for the Duet-based implementation and the NetLinx-based implementation.
The RMS Enterprise SDK (v4) 38 RMS Enterprise - NetLinx Programmer’s Guide
Getting Started Getting Started Source Code Samples The RMS Enterprise Software Development Kit (SDK) provides a number of source code examples both for the Duet-based implementation and the NetLinx-based implementation. These examples can be found in the SDK installation directory and are also included in each of the two sample workspaces.
Getting Started Understanding the RMS Client Connection Lifecycle When the RMS client is loaded on the NetLinx platform, it follows a strict connection lifecycle. It may be helpful as a NetLinx programmer to understand the connection states and how the RMS client transitions through the connection lifecycle. The RMS Client contains the following connection states (FIG.
Getting Started INIT When the NetLinx system starts and loads all modules and the user program, the RMS Client starts in the INIT state. Upon entering this state, the RMS Client looks at the RMS configuration settings to determine if the RMS Client is enabled and contains valid RMS server path settings. If the RMS Client configuration is disabled or if any of the RMS server path settings are missing, the RMS Client will transition to the DISABLED state.
Getting Started ONLINE-UNREGISTERED When the RMS Client enters the ONLINE-UNREGISTERED state, it means that the RMS Client Gateway has successfully been registered with the RMS system, but the Client Gateway has not been approved/accepted by a RMS administrator and assigned to a location in the RMS system. In this state, the RMS Client will not perform any asset management or any other functions.
Getting Started FIG. 19 RMS Client Gateway Management page - Unregistered Client Gateways From the Hotlist or from the Client Gateway management page, an administrator can “Assign” the client gateway to an existing or new location (FIG. 20). FIG. 20 Assign Client Gateway If assigning to an existing location you will also be prompted with the opportunity to replace an existing client gateway if this new client were a replacement for a defective control system master.
Getting Started If you select Create a New Location, you will be prompted with a location entry dialog to enter the new location information and licensing. After completing your Client Gateway assignment, the RMS Client will be re-initialized. It may take a few minutes for it to come back online and begin registering assets with the RMS system.
Programming - RMS Required Modules Programming - RMS Required Modules Overview To implement the RMS Client there are a couple of modules that are required to be implemented in the NetLinx user program. Example snippets are listed below but it is suggested that you read each related help topic for each RMS SDK component in full detail to get a greater understanding of the purpose and usage for each component.
Programming - RMS Required Modules DEFINE_MODULE 'RmsClientGui_dr4_0_0' mdlRMSGUI(vdvRMSGui, dvRMSTP, dvRMSTP_Base); // // AMX Touch Panel Monitor // // - include a touch panel monitoring module instance for each // touch panel device you wish to monitor.
Programming - Asset Management Programming - Asset Management Asset Monitoring Modules All RMS asset monitoring modules in the RMS SDK implement the RmsMonitorCommon.axi Include File. The RmsMonitorCommon.axi Include File implements the underlying basic requirements and workflow required for asset management.
Programming - Asset Management Asset Registration - Required & Optional Information Asset Type (String) This is a unique identifier for an asset type that categorizes this asset as a specific asset type. [REQUIRED] • All the default RMS provided asset types are defined in the RmsApi.axi Include File as constants. • RMS Enterprise also supports custom user defined asset types. Client Key (String) This is a unique identifier for this asset.
Programming - Asset Management Asset Types The default RMS asset types are defined as constants in the RmsApi.axi Include File. Users can create new custom asset types in the RMS Web User Interface and custom assign programming keys.
Programming - Asset Management Asset Registration Functions The Asset Registration functions in the RmsApi.axi Include File are described in the following table: Asset Registration Functions RmsAssetRegister Description: This function is used to register a new asset with the RMS system. This method is the general use asset registration method. This method should be used for custom implemented NetLinx controlled devices and any asset that is not AMX hardware.
Programming - Asset Management Asset Registration Functions (Cont.) RmsAssetRegister AmxDevice Description: This method is the used exclusively to perform asset registration for AMX hardware based devices. This method should only be used when registering a AMX hardware based device. The RMS Client will interrogate the NetLinx device information data structure from the NetLinx device manager and include the NetLinx device information with the asset registration.
Programming - Asset Management Asset Registration Functions (Cont.) RmsAssetRegister DuetDevice Description: This method is used exclusively to perform asset registration for Duet based devices. This method should only be used when registering a device that is using a Duet device module. The RMS Client will interrogate the Duet device module to obtain the default device information, parameters, metadata properties, and control methods.
Programming - Asset Management Asset Registration Functions (Cont.) RmsAssetRegistration Description: This function is used to perform the registration on a fully populated RmsAsset data object. Submit Note: This function is typically not accessed directly, but rather called by a another asset registration wrapper function.
Programming - Asset Management Asset Registration Functions (Cont.) RmsAssetExclude Description: This function is used to define an exclusion an any asset attempting to register using the provided asset client key string identifier.
Programming - Asset Management Each asset parameter requires the following information: Asset Parameters - Required & Optional Information Key (String) [REQUIRED] This is a unique identifier for this asset parameter. This ID string must be uniquely scoped for this asset. Parameter value updates and reset notifications will use this key identifier when operating on this parameter. Name (String) Friendly name for this asset parameter.
Programming - Asset Management Asset Parameters - Required Information (Cont.) Minimum Value (Signed Long) [OPTIONAL] This parameter attribute only applies to parameters of a numeric data type: Number, Decimal, Level. It is optional for data types Number and Decimal and required for data type Level. This attribute specifies the lowest possible value that this parameter value can reach.
Programming - Asset Management Asset Parameters Registration and Update Functions The Asset Parameters Registration and Update functions in the RmsApi.axi Include File are described in the following table: Asset Parameters Registration and Update Functions RmsAssetParameter EnqueueEnumeration Description: This function is used to place an asset parameter registration in queue for a specified asset client key. The asset parameter being registered is of asset parameter data type: ENUMERATION.
Programming - Asset Management Asset Parameters Registration and Update Functions (Cont.) RmsAssetParameter EnqueueDecimal WithBargraph Description: This function is used to place an asset parameter registration in queue for a specified asset client key.
Programming - Asset Management Asset Parameters Registration and Update Functions (Cont.) RmsAssetParameter EnqueueLevel Description: This function is used to place an asset parameter registration in queue for a specified asset client key.
Programming - Asset Management Asset Parameters Registration and Update Functions (Cont.) RmsAssetParameter EnqueueNumber WithBargraph Description: This function is used to place an asset parameter registration in queue for a specified asset client key.
Programming - Asset Management Asset Parameters Registration and Update Functions (Cont.) RmsAssetParameter EnqueueString Description: This function is used to place an asset parameter registration in queue for a specified asset client key.
Programming - Asset Management Asset Parameters Registration and Update Functions (Cont.) RmsAssetParameter Enqueue Description: This function is used to place an asset parameter registration in queue for a specified asset client key.
Programming - Asset Management Asset Parameters Registration and Update Functions (Cont.) RmsAssetOnlineParameter Enqueue Description: This function is used to queue an asset online parameter for a specified asset key.
Programming - Asset Management Asset Parameters Registration and Update Functions (Cont.) RmsAssetParameterSubmit Description: This function is used to submit any pending asset monitored parameter that are currently in queue waiting to be registered with RMS.
Programming - Asset Management Registering Asset Parameters Thresholds During asset parameter registration you can also register one or more asset parameter thresholds. Asset parameter thresholds are used in RMS as alerting triggers for individual parameter values if they exceed some established threshold value. The RmsApi Include File (which is already included by each asset monitoring module) provides the following wrapper function for registering asset parameter thresholds with RMS.
Programming - Asset Management // create a threshold for when the OVERCURRENT alarm occurs RmsAssetParameterThresholdEnqueue(assetClientKey, 'pdu.overcurrent.alarm', 'Overcurrent', RMS_STATUS_TYPE_MAINTENANCE, RMS_ASSET_PARAM_THRESHOLD_COMPARISON_EQUAL, 'true'); << << << << << << asset key >> param key >> threshold name >> status type >> compare op >> threshold value >> Asset Parameter Thresholds Functions The Asset Parameter Thresholds functions in the RmsApi.
Programming - Asset Management Asset Parameter Thresholds Functions (Cont.) RmsAssetParameter Description: This function is used to add an asset parameter threshold on the asset parameter currently pending in the asset ThresholdEnqueueEx parameter registration queue. This EXTENDED function accepts the data structure RmsAssetParameterThreshold as an argument.
Programming - Asset Management Each asset parameter value update requires the following information: Asset Parameter Value Updates - Required Information Asset Key (String) [REQUIRED] Parameter Key (String) [REQUIRED] Parameter Operation (String) This is the operation to perform against the current parameter value with the new value provided in the update call. [REQUIRED] A set of the available update operations are listed as constants in the RmsApi.
Programming - Asset Management Asset Parameter Set Value Functions (Cont.) RmsAssetParameter SetValueNumber Description: This function is used to set a new asset parameter value to the RMS server immediately.
Programming - Asset Management Asset Parameter Set Value Functions (Cont.) RmsAssetParameter SetValue Description: This function is used to set a new asset parameter value to the RMS server immediately.
Programming - Asset Management Asset Parameter Set Value Functions via Update Queue The Asset Parameter Set Value functions (via Update Queue) in the RmsApi.axi Include File are described in the following table: Asset Parameter Set Value Functions via Update Queue RmsAssetParameter Description: This function is used to set a new asset parameter value to the RMS server. The update is not sent EnqueueSetValueBoolean immediately, but rather placed in an update queue waiting for a submission call.
Programming - Asset Management Asset Parameter Set Value Functions via Update Queue (Cont.) RmsAssetParameter EnqueueSetValueLevel Description: This function is used to set a new asset parameter value to the RMS server. The update is not sent immediately, but rather placed in an update queue waiting for a submission call.
Programming - Asset Management Asset Parameter Set Value Functions via Update Queue (Cont.) RmsAssetParameter EnqueueUpdateValue Description: This function is used to update an asset parameter value on the RMS server. The update is not sent immediately, but rather placed in an update queue waiting for a submission call.
Programming - Asset Management Asset Parameter Set Value Functions via Update Queue (Cont.) RmsAssetParameter UpdatesSubmit Description: This function is used to submit all pending asset parameter value updated to the RMS server.
Programming - Asset Management The following code snippet provides an example of queuing asset parameter value updates and sending them in a final submit call. // battery level RmsAssetParameterEnqueueSetValueLevel(assetClientKey, 'touch.panel.battery.level', panelInfo.batteryLevel); // battery charging RmsAssetParameterEnqueueSetValueBoolean(assetClientKey, 'touch.panel.battery.charging', panelInfo.
Programming - Asset Management Asset Metadata Properties - Required Information (Cont.) Data Type (String) Data type for this asset metadata property value. The following set of constants are defined for the available data types in the RmsApi.axi Include File.
Programming - Asset Management Asset Metadata Registration Functions The Asset Metadata Registration functions in the RmsApi.axi Include File are described in the following table: Asset Metadata Registration Functions RmsAssetMetadata Description: This function is used to place an asset metadata property registration in queue.
Programming - Asset Management Asset Metadata Registration Functions (Cont.) RmsAssetMetadata Description: This function is used to place an asset metadata property registration in queue.
Programming - Asset Management Asset Metadata Registration Functions (Cont.) RmsAssetMetadata Description: This function is used to place an asset metadata property registration in queue.
Programming - Asset Management Asset Metadata Registration Functions (Cont.) RmsAssetMetadata Description: This function is used to place an asset metadata property registration in queue.
Programming - Asset Management Asset Metadata Registration Functions (Cont.) RmsAssetMetadata Description: This function is used to place an asset metadata property registration in queue.
Programming - Asset Management Asset Metadata Registration Functions (Cont.) RmsAssetMetadata Description: This function is used to place an asset metadata property registration in queue. Enqueue This function registers an asset metadata property defined by the RmsAssetMetadataProperty data structure argument.
Programming - Asset Management Asset Metadata Registration Functions (Cont.) RmsAssetMetadata Description: This function is used to submit any pending asset metadata properties that are currently in queue waiting to be Submit registered with RMS.
Programming - Asset Management Synchronizing Asset Metadata Properties The following callback method will be invoked in each asset monitoring module when it is time to perform the Asset metadata synchronization with RMS.
Programming - Asset Management Asset Metadata Update Functions The Asset Metadata Update functions in the RmsApi.axi Include File are described in the following table: Asset Metadata Update Functions RmsAssetMetadata Description: This function is used to update and existing asset metadata property value.
Programming - Asset Management Asset Metadata Update Functions (Cont.) RmsAssetMetadata Description: This function is used to update and existing asset metadata property value.
Programming - Asset Management Asset Metadata Update Functions (Cont.) RmsAssetMetadata Description: This function is used to update and existing asset metadata property value.
Programming - Asset Management Asset Metadata Update Functions (Cont.) RmsAssetMetadata Description: This function is used to update and existing asset metadata property value.
Programming - Asset Management Asset Metadata Update Functions (Cont.) RmsAssetMetadata Description: This function is used to update and existing asset metadata property value.
Programming - Asset Management Asset Metadata Update Functions (Cont.
Programming - Asset Management Registering Asset Control Methods The following callback method will be invoked in each asset monitoring module when it is time to perform the asset control method registration with RMS. (***********************************************************) (* Name: RegisterAssetControlMethods *) (* Args: -none*) (* *) (* Desc: This is a callback method that is invoked by *) (* RMS to notify this module that it is time to *) (* register this asset's control methods with RMS.
Programming - Asset Management Asset Control Method Arguments - Required Information (Cont.) Default Value (String) Provide a default argument value that is preselected for this asset control method argument. [OPTIONAL] Minimum Value (Signed Long) [OPTIONAL] Maximum Value (Signed Long) This attribute only applies to control method arguments of a numeric data type: Number, Decimal, Level. • It is optional for data types Number and Decimal and required for data type Level.
Programming - Asset Management Asset Control Methods Registration Functions The Asset Control Methods Registration functions in the RmsApi.axi Include File are described in the following table: Asset Control Methods Registration Functions RmsAssetControlMethod Enqueue Description: This function is used to place an asset control method registration in queue in the RMS client.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentString Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentBoolean Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentNumber Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentNumberEx Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server. This EXTENDED function provides the additional arguments to provide min, max, and step values.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentDecimal Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentLevel Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server. The asset control method argument being added is of type: LEVEL.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentEnum Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server. The asset control method argument being added is of type: ENUMERATION. Enumeration is provided as a pipe '|' separated list of strings.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentEnumEx Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server. The asset control method argument being added is of type: ENUMERATION. This EXTENDED function support enumeration values provided as a multi-dimensional array.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod ArgumentEnqueue Description: This function is used to add an asset control method argument to an asset control method registration that is currently in queue and has not yet been submitted to the RMS server. This method accepts a RmsAssetControlMethodArgument data type argument.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethods Description: Submit This function is used to submit any pending asset control methods that are currently in queue waiting to be registered with RMS.
Programming - Asset Management Asset Control Methods Registration Functions (Cont.) RmsAssetControlMethod Delete Description: This function is used to delete an existing asset control method from the RMS server.
Programming - Asset Management Executing Asset Control Functions The following callback method will be invoked in each asset monitoring module when it is time to execute an asset control method. The NetLinx programmer can then take specific action based on the provided method key and parse any method arguments from the provided arguments character array. Arguments will remain packed (encoded) in the character array, and use the "RmsParseCmdParam" function to extract each method argument.
Programming - Asset Management Excluding Default Asset Parameters If the RMS Client and SDK register an asset parameter by default that you don't want exposed in your system, you can define an exclusion by calling the following method before the asset registration takes place. The suggested place to put this exclude call would be immediately after the vdvRMS virtual device comes online.
Programming - Asset Management Excluding Default Asset Metadata Properties If the RMS Client and SDK register an asset metadata property by default that you don't want exposed in your system, you can define an exclusion by calling the following method before the asset registration takes place. The suggested place to put this exclude call would be immediately after the vdvRMS virtual device comes online.
Programming - Asset Management Excluding Default Asset Control Methods If the RMS Client and SDK register an asset control method by default that you don't want exposed in your system, you can define an exclusion by calling the following method before the asset registration takes place. The suggested place to put this exclude call would be immediately after the vdvRMS virtual device comes online.
Programming - Client Messaging Programming - Client Messaging Listening for Client Display Messages If you have implemented the RMS Application GUI modules and integrated the RMS touch panel pages, then client display messages from RMS are automatically handled and displayed to the touch panels.
Programming - Client Messaging Sending Help Requests to RMS Server Sending a help request to the RMS system is very simple. A convenience method exposed in the RmsApi.axi Include File wraps the raw Send Command to the vdvRMS virtual device.
Programming - Advanced Topics Programming - Advanced Topics Listening for RMS Notification Events RMS Enterprise introduces a SUBSCRIBER / EVENT LISTENER pattern for handling event notifications emitted from the RMS Client via the RMS NetLinx Adapter as command data events over the (vdvRMS) RMS NetLinx virtual device interface. This pattern is implemented via the inclusion of the RmsEventListener.axi Include File via the use of compiler directives and callback methods.
Programming - Advanced Topics // CALLBACK METHOD FOR RMS CLIENT EXCEPTION EVENT NOTIFICATIONS DEFINE_FUNCTION RmsEventException (CHAR exceptionMessage [], CHAR commandHeader []) { // IMPLEMENT CUSTOM EXCEPTION HANDLING HERE } Asset Power / Energy Consumption RMS Enterprise will automatically assume power consumption rates (Watts) based on the asset type an asset is defined with and based on the power state of the device.
Programming - Advanced Topics You'll notice above that a mixture of virtual and real devices are being assigned to have their source usage tracked. Non-controlled devices should have their source usage tracked by passing in the virtual device. All controlled devices should be tracked by passing in the actual device.
Programming - Advanced Topics If you need to implement some logic based on System Power state on a specific asset/device, then there is already a callback method stub implemented inside each device monitor module.
Programming - Advanced Topics If you need to implement some logic based on System Mode changes on a specific asset/device then there is already a callback method stub implemented inside each device monitor module.
Programming - Advanced Topics This event subscription and event notification callback method indicates when the RMS client connection state changes: #DEFINE INCLUDE_RMS_EVENT_CLIENT_STATE_CHANGE_CALLBACK DEFINE_FUNCTION RmsEventClientStateChanged(CHAR oldState[], CHAR newState[]) { } Proxy Custom Commands Through RMS The RMS NetLinx virtual device interface supports a special command syntax for NetLinx programmers to implement their own custom messaging.
RMS Duet Module Properties RMS Duet Module Properties Overview When a Duet device is registered with RMS, RMS can look at RMS specific Duet module properties for overriding device specific information. These properties allow a programmer to override the default implementation and specify device specific unique information. If not provided, RMS will use a fallback mechanism to determine the most appropriate values. These fallback properties are also listed below.
RMS Duet Module Properties RMS Duet Module Properties (Cont.) RMS-Asset-Make-Url This property will define the asset's manufacturer website URL used when registering this asset with the RMS server. This property will not override an asset manufacturer URL that was explicitly provided in a RMS Duet Asset registration call. If not provided, the fallback Duet module property of 'Device-Make-Url' will be used to determine the asset manufacturer website URL.
HAS-PROPERTIES HAS-PROPERTIES Duet Module HAS-PROPERTIES The RMS 4.0 SDK observes the pre-defined set of HAS-PROPERTIES defined by the Duet Device Module to help identify which features that a module supports. If the HAS-PROPERTY is missing or set to "false" for each of the defined HAS-PROPERTIES below, the RMS Duet Module Monitor will exclude the respective asset metadata properties, monitoring parameters, and control methods based on the feature.
HAS-PROPERTIES Duet Module HAS-PROPERTIES (Cont.
RMS NetLinx Virtual Device API RMS NetLinx Virtual Device API Overview The RMS NetLinx virtual device API provides the lowest level API and direct access to the RMS Engine running on the NetLinx platform. The RMS NetLinx Adapter module must be defined in the user program code to define a NetLinx virtual device and connect it to the RMS Engine. This section defines all the channels, levels, and Send Commands exposed by the RMS Engine via the RMS NetLinx Adapter.
RMS NetLinx Virtual Device API RMS Command Escaping Functions The Command Escaping Functions in the RmsApi.axi Include File are described in the following table: RMS Command Escaping Functions RmsParseDPS FromString Description: This function is used to parse a string and extract a D:P:S device instance.
RMS NetLinx Virtual Device API RMS Command Escaping Functions (Cont.) RmsPackCmdParam Description: Use this function to package parameter for module SEND_COMMAND or SEND_STRING. Wraps the parameter in double-quotes if it contains the separator. This function assumes the standard Duet parameter separator ','. Parameters: • (1) IN - sndcmd/str to which parameter will be added • (2) IN - sndcmd/str parameter Returns: Packed parameter wrapped in double-quotes if needed, added to the command.
RMS NetLinx Virtual Device API RMS Command Escaping Functions (Cont.) RmsParseCmdHeader Description: Use this function to parse out parameters from module SEND_COMMAND or SEND_STRING. Parses the strings sent to or from modules extracting the command header. Command separating character assumed to be '-', Duet standard Parameters: • (1) IN/OUT - sndcmd/str data Returns: Parsed property/method name, still includes the leading '?' if present.
RMS NetLinx Virtual Device API RMS Command Escaping Functions (Cont.) RmsParseCmdParam Ex Description: Use this function to parse out parameters from module SEND_COMMAND or SEND_STRING. Parses the strings sent to or from modules extracting the parameters. • A single param is picked of the cmd string and removed, through the separator. • The separator is NOT returned from the function.
RMS NetLinx Virtual Device API RMS Command Escaping Functions (Cont.) RmsParseCmdParam Ex (Cont.) Syntax (Cont.): CASE 2: //ST_COLLECT { // If in quotes, just grab the characters IF (bInquotes) { // Ah...
RMS NetLinx Virtual Device API Unicode Strings/Commands RMS Enterprise supports Unicode characters for international installations. The RMS NetLinx Virtual Device API supports all Send Commands sent to the RMS virtual device as NetLinx WIDECHAR character arrays. The entire command string including the command header must be sent as a WIDECHAR array. Example: // this example includes a UNICODE string.
RMS NetLinx Virtual Device API RMS Client Channels (Cont.) Channel Description 255 - CLIENT - SYSTEM POWER (Feedback) This channel state represents the POWER state of the "System". This channel cannot be set, it is supplied as a feedback (read only) property. The following event commands are also issued for system power changes: SYSTEM.POWER.ON SYSTEM.POWER.
RMS NetLinx Virtual Device API RMS Client Logging Instruction Commands & Queries (Cont.) Command Description LOG.SHOW.LEVEL- This command will instruct the RMS client to set the runtime logging output to include the current logger level in the display string. After applying the updated settings, the acknowledgment response command will be returned in the following format: LOG.SHOW.LEVEL- (This option is enabled by default.) LOG.SHOW.
RMS NetLinx Virtual Device API RMS Client Logging Query Commands (Cont.) Command Description ?LOG.LOGGERS This command will query the RMS client to return a listing of all the known RMS loggers and their current state. The query response command will be return a series of response strings for each logger in the following format: LOG.LOGGER-, This option is disabled by default. ?LOG.LOGGER.
RMS NetLinx Virtual Device API RMS Client Query Commands (Cont.) Query Command Description / Response Commands ?SERVER.TIMESYNC.ENABLED This command will query the RMS client to determine if the RMS system is configured to provide time synchronization to the RMS clients. The response command will be returned in the following format: SERVER.TIMESYNC.
RMS NetLinx Virtual Device API RMS Client Query Commands (Cont.) Query Command Description / Response Commands ?CLIENT.ONLINE This command will query the RMS client to determine if the client is currently connected and online with the RMS server. The response command will be returned in the following format: CLIENT.ONLINE- Please note that the client may be connected to the RMS server and thus be online, but may not yet have been registered with the RMS server.
RMS NetLinx Virtual Device API RMS Client Query Commands (Cont.) Query Command Description / Response Commands ?CLIENT.CONNECTION.STATE (Cont.) • ONLINE-UNREGISTERED - The client enters this state when after successfully connecting to the RMS server, registering the client gateway information, and failing to obtain a valid RMS location from the server. The client will remain in this state and periodically request any pending client destined messages.
RMS NetLinx Virtual Device API RMS Client Event Notification Commands (Cont.) Command Description VERSIONS This event notification command is issued when the '?VERSIONS' request is issued in the RMS client. All RMS modules should respond to this request by printing their module name and version to the master's telnet console. SYSTEM.POWER.ON This event notification command is issued when the system power is turned on.
RMS NetLinx Virtual Device API RMS Location Information - Command API RMS Default Location Queries Command Description ?CLIENT.LOCATION This command will query the RMS client to determine the default client assigned location information. The response command will be returned in the following format: CLIENT.
RMS NetLinx Virtual Device API RMS Default Location Event Notification Commands RMS Default Location Event Notification Commands String Description LOCATION- During the RMS client connection and registration initialization sequence, if a default client gateway location is detected, this event notification command will be advertised providing listeners with the location information.
RMS NetLinx Virtual Device API RMS Client Configuration Instruction Commands (Cont.) Command Description CONFIG.CLIENT.NAME- This command will set the default system name displayed in RMS when this system comes online. CONFIG.CLIENT.HEARTBEAT- This command will set the number of seconds to wait between client pending message retrieval requests issued to the RMS server. These requests are also used to let the server know that the system is still alive and online.
RMS NetLinx Virtual Device API RMS Client Configuration Query Commands (Cont.) Query Command Description / Response Command ?CONFIG.CLIENT.NAME This query command determines the default system name displayed in RMS when this system comes online. Response command format: CONFIG.CLIENT.NAME- ?CONFIG.CLIENT.HEARTBEAT This query command determines the number of seconds to wait between client pending message retrieval requests issued to the RMS server. Response command format: CONFIG.CLIENT.
RMS NetLinx Virtual Device API RMS Status Types Query Commands RMS Status Types Query Commands Query Command Description / Response Commands ?STATUS.TYPE This command is used to query the RMS system for a listing of all status types. The response command will be returned in the following format: First a total count is returned. STATUS.TYPE.RECORD-, If the record count is greater than zero, then a series of the following command responses will be sent: STATUS.TYPE.
RMS NetLinx Virtual Device API RMS Asset Registration Commands RMS Asset Registration Commands Command Description ASSET.REGISTER.DEV, This command is used to register a NetLinx-based device asset with the RMS system. If the device uses a NetLinx DPS, then this call should be used to register the asset. , (,) (,) (,) This command will queue the asset for registration.
RMS NetLinx Virtual Device API RMS Asset Registration Commands (Cont.) Command Description ASSET.REGISTER- This command is used to register a non-NetLinx-based asset with the RMS system. If a device or asset does not have an associated NetLinx DPS, then this call should be used to register the asset. , (,) (,) This command will queue the asset for registration.
RMS NetLinx Virtual Device API RMS Asset Registration Commands (Cont.) Command Description ASSET.GLOBAL.KEY- This command sets the asset global key property on an asset that has been queued for registration. The asset client key must be provided to perform the set on the specific asset. , If the ASSET.REGISTER.DEV command was used to register a NetLinx-based device and no explicit asset client key was specified, then the asset client key will be the DPS string.
RMS NetLinx Virtual Device API RMS Asset Registration Commands (Cont.) Command Description ASSET.MANUFACTURER- This command sets the asset manufacturer name and URL properties on an asset that has been queued for registration. The asset client key must be provided to perform the set on the specific asset. , (,) If the ASSET.REGISTER.
RMS NetLinx Virtual Device API RMS Asset Location - Command API RMS Asset Location Query Commands RMS Asset Location Query Commands Query Command Description / Response Commands ?ASSET.LOCATION- This command is used to query the RMS server for asset location information for a specific asset. : The asset client key of the asset you wish to query must be included. This asset client key is typically the D:P:S string in NetLinx systems.
RMS NetLinx Virtual Device API RMS Asset Metadata Properties Registration Commands RMS Asset Metadata Properties Registration Commands Command Description ASSET.METADATA- This command is used to enqueue an asset metadata property for a specific asset in RMS.
RMS NetLinx Virtual Device API RMS Asset Metadata Properties Registration Commands (Cont.) Command Description ASSET.METADATA.UPDATE- This command is used to perform an update on a given metadata property value on a single asset metadata property already defined/registered on the RMS server.
RMS NetLinx Virtual Device API RMS Asset Parameters - Command API RMS Asset Parameters Event Notification Commands RMS Asset Parameters Event Notification Commands String Description ASSET.PARAM.UPDATE- This notification command event is sent from the RMS client virtual device when an asset parameter receives an update value operation. , , , ASSET.PARAM.VALUE, , , ASSET.
RMS NetLinx Virtual Device API RMS Asset Parameters Query Commands (Cont.) Command Description ?ASSET.PARAM- This command is used to query for a specific asset parameter from the RMS server. Arguments: : The asset client key of the asset you wish to query must be included. This asset client key is typically the D:P:S string in NetLinx systems.
RMS NetLinx Virtual Device API RMS Asset Parameters Registration & Update Commands (Cont.) Command Description ASSET.PARAM- (Cont.) • : This property is optional and specifies an explicit asset parameter type. If not provided, the parameter type is assumed to be NONE. The parameter type is used to designate the parameter to a specific parameter profile and behavior in RMS.
RMS NetLinx Virtual Device API RMS Asset Parameters Registration & Update Commands (Cont.) Command Description ASSET.PARAM- (Cont.) If the parameter contains any defined thresholds, then a series of threshold commands will be additionally sent: ASSET.PARAM.
RMS NetLinx Virtual Device API RMS Asset Parameters Registration & Update Commands (Cont.) Command Description ASSET.PARAM.UPDATE- This command will perform an update of the asset parameter value with the RMS server. The asset parameter should already be registered prior to issuing this command.
RMS NetLinx Virtual Device API RMS Asset Control Methods - Command API RMS Asset Control Methods Event Notification Commands RMS Asset Control Methods Event Notification Commands String Description ASSET.METHOD.EXECUTE- This event notification command is issued by the RMS when an instruction is received from the RMS server to execute a control method.
RMS NetLinx Virtual Device API RMS Asset Control Method Registration Commands (Cont.) Command Description ASSET.METHOD.ARGUMENT- This command will add an asset control method argument to a control method currently staged in the control method registration queue.
RMS NetLinx Virtual Device API RMS Asset Control Method Registration Commands (Cont.) Command Description ASSET.METHOD.ARGUMENT.LEVEL- This command will add an asset control method argument of type "LEVEL" to a control method currently staged in the control method registration queue. ,, ,, (,) (,) (,) (,) (,) ASSET.METHOD.
RMS NetLinx Virtual Device API RMS Hotlist - Command API RMS Hotlist Event Notification Commands RMS Hotlist Event Notification Commands String Description HOTLIST.COUNT- This event notification command will be sent when the RMS client detects a change in the number of hotlist records available for the default client location. , , RMS Hotlist Query Commands RMS Hotlist Query Commands Query Command Description / Response Command ?HOTLIST.
RMS NetLinx Virtual Device API RMS Hotlist Query Commands (Cont.) Query Command Description / Response Command ?HOTLIST.RECORD- This command will query the RMS client hotlist record cache and return the requested hotlist record(s). (,)(,) The argument can be either a '*' character or a number representing which index position to start at. If the '*' character is assigned to the start parameter the query will return all hotlist records.
RMS NetLinx Virtual Device API RMS Hotlist Query Commands (Cont.) Query Command Description / Response Command ?HOTLIST.RECORD.CREATED- This command will query the RMS client hotlist record cache and return the requested hotlist record created date(s). (,)(,) The argument can be either a '*' character or a number representing which index position to start at. If the '*' character is assigned to the start parameter the query will return all hotlist records.
RMS NetLinx Virtual Device API RMS Hotlist Query Commands (Cont.) Query Command Description / Response Command ?HOTLIST.RECORD.TYPE- This command will query the RMS client hotlist record cache and return the requested hotlist record type (s). (,)(,) The argument can be either a '*' character or a number representing which index position to start at. If the '*' character is assigned to the start parameter the query will return all hotlist records.
RMS NetLinx Virtual Device API RMS Hotlist Query Commands (Cont.) Query Command Description / Response Command ?HOTLIST.RECORD.DESCRIPTION- This command will query the RMS client hotlist record cache and return the requested hotlist record description(s). (,)(,) The argument can be either a '*' character or a number representing which index position to start at. If the '*' character is assigned to the start parameter the query will return all hotlist records.
RMS NetLinx Virtual Device API RMS Hotlist Query Commands (Cont.) Query Command Description / Response Command ?HOTLIST.RECORD.PARAMETER- This command will query the RMS client hotlist record cache and return the requested hotlist record asset parameter id and name(s). (,)(,) The argument can be either a '*' character or a number representing which index position to start at.
RMS NetLinx Virtual Device API RMS Messaging - Command API RMS Messaging Event Notification Commands RMS Messaging Event Notification Commands String Description MESSAGE.DISPLAY- This event notification command will be sent when the RMS client should display a requested message on all available RMS users interfaces in the location.
RMS NetLinx Virtual Device API RMS Messaging Instruction Commands RMS Messaging Instruction Commands Command Description MESSAGE.DISPLAY- This command will send a RMS display message to all RMS touch panel user interfaces on this client system.
RMS NetLinx Virtual Device API RMS RFID Management - Command API For more information on the RFID reader and RFID tag properties, please see the AMX Anterus product documentation and programming guides. RMS RFID System Event Notification Commands RMS RFID System Event Notification Commands String Description RFID.
RMS NetLinx Virtual Device API RMS RFID System Management Commands (Cont.) Command Description RFID.TAG.ACQUIRED- After all the RFID tags have been registered, any subsequent RFID tag changes must be communicated to the RMS server. , , , , , , RFID.TAG.LOST, , , , RFID.TAG.
RMS NetLinx Scheduling Client API RMS NetLinx Scheduling Client API Overview NetLinx programmers can make use of RMS scheduling information in the following ways: 1. Query RMS for a variety of information about scheduling events. Programmers are provided with both send commands and functions for their queries. 2. Execute commands to perform such tasks as creating or ending events. As with queries, both send commands or function calls are provided. 3.
RMS NetLinx Scheduling Client API Notice in the above sample that the #DEFINE compiler directive is specified before the #IF_DEFINED and #END_IF compiler directives. When #IF_DEFINED and #IF_NOT_DEFINED compiler directives are specified in include files, the include file statements (defined by the #INCLUDE compiler directive) need to be declared after the #DEFINE compiler directive statements. For more information on Compiler Directives, refer to the NetLinx Programming Language Reference Guide.
RMS NetLinx Scheduling Client API RmsEventSchedulingDailyCount (see page 173) RmsEventSchedulingMonthlySummaryUpdated (see page 173) The tables in this section provide detailed descriptions of each scheduling query function. Each row in the tables describes various aspects of each scheduling query function. Each row is defined below: Description: This section provides a description of the basic functionality provided by each query function.
RMS NetLinx Scheduling Client API RmsBookingRequest RmsBookingRequest Description: Request information about a specific booking by booking ID. If location ID is less than 1, the default location will be used. Compiler Directive: #DEFINE INCLUDE_SCHEDULING_BOOKING_RESPONSE_CALLBACK Function Syntax: RmsBookingRequest(CHAR bookingId[], LONG locationId) • bookingId - unique ID of the requested booking event • locationid - LONG location ID Returns: FALSE is returned if booking ID is empty.
RMS NetLinx Scheduling Client API RmsBookingsSummaryDailyRequest RmsBookingsSummaryDailyRequest Description: Query a single daily event summary record by date and location. If location ID is less than 1, the default location will be used. Compiler Directive: #DEFINE INCLUDE_SCHEDULING_BOOKING_SUMMARY_DAILY_RESPONSE_CALLBACK Function Syntax: RmsBookingsSummaryDailyRequest(CHAR summaryDate[], LONG locationId) • summaryDate - date in the form of 'mm/dd/yyyy'.
RMS NetLinx Scheduling Client API RmsBookingNextActiveRequest RmsBookingNextActiveRequest Description: Query the next active booking for a given location. If location ID is less than 1, the default location will be used.
RMS NetLinx Scheduling Client API RmsBookingCreate RmsBookingCreate Description: Compiler Directive: Function Syntax: Create an ad hoc booking event. If location ID is less than 1, the default location will be used. Note: "RmsBookingCreate" is only valid for the current day.
RMS NetLinx Scheduling Client API RmsBookingEnd RmsBookingEnd Description: End a booking event. If location ID is less than 1, the default location will be used. Note: "RmsBookingEnd" is only valid for the active meeting.
RMS NetLinx Scheduling Client API RmsEventSchedulingEventEnded RmsEventSchedulingEventEnded Description: This callback is executed when RMS wants to indicate a booking event has ended.
RMS NetLinx Scheduling Client API RmsGuiApi.axi File The convenience Functions and Send Commands contained in the RmsGuiApi.axi file provide the ability to designate a panel as being for either external or internal use, as well as to define several default settings for the panel’s scheduling interface, as described below. Internal and External Scheduling Panel Designation RMS Scheduling supports the concept of internal and external scheduling panels.
RMS NetLinx Scheduling Client API Setting Defaults for the Scheduling Panel’s UI The following functions provide the ability to set various defaults on the touch panel’s scheduling interface, including default text for meeting Subject, Details, the default time for meeting Duration, as well as removing the keyboard display for bookings: RmsSetDefaultEventBookingSubject RmsSetDefaultEventBookingSubject Change the text string for the default display of the meeting subject.
RMS NetLinx Scheduling Client API Setting The Client Time and Date Format The date and time pattern used by the following functions pattern follows the Java 1.4 SimpleDateFormat conventions. Use the following functions to format the Client time and date format: RmsSetGuiDatePattern RmsSetGuiDatePattern Description: This function is used to manually set a date pattern which will be used for formatting dates on all touch panels.
Duet Device API Implementation Duet Device API Implementation Overview The tables in this section provide detailed descriptions of the standard control functions and associated parameters implemented in the RMS 4.0 Duet Device API, organized by Device Type. The Device Types included in the RMS 4.
AUDIO CONFERENCER Key Bargraph Key Default Value asset.power Has-Power Enum OFF volume.mute Has-Volume Boolean OFF Set Volume Level (0-255) volume.level Has-Volume Level N/A dialer.auto.answer Has-Auto-Answer Boolean N/A Dial Speed Dial Preset dialer.dial.preset Has-Dialer Number N/A dialer.dial.number Has-Dialer String N/A dialer.redial Has-Dialer No Args N/A conferencer.privacy Has-Privacy Boolean ON Set Off Hook (ON|OFF) dialer.
CAMERA Key Set Power (ON|OFF) Register? Data Type Units Bargraph Default Key Value asset.power Has-Power Enum OFF camera.preset Has-Camera-Preset Number N/A asset.online {Always Register} Enum Reset Value Param Type History Track Changes Status Type ASSET_ONLINE Yes MAINTENANCE Control Methods Select Camera Preset (Number: 1 to MAX CAMERA PRESETS) Online (ONLINE|OFFLINE) N/A NO_RESET Power Consumption asset.power.
Key Register? Data Type Units Reset Value Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE N/A NO_RESET POWER_CONSUMPTION Yes N/A Bargraph Default Key Value Set Power (ON|OFF) asset.power Has-Power Enum OFF Set Station (String) tuner.station Has-Station String N/A N/A Control Methods Select Station Preset (1 to MAX STATION PRESETS) tuner.station.preset Has-Station-Preset Number Select Tuner Band (Enum: Band) tuner.
DIGITAL VIDEO RECORDER Key Set Power (ON|OFF) Play Stop Pause Next Control Methods asset.power Has-Power Enum transport.play {Always Register} None transport.stop {Always Register} None transport.pause {Always Register} None None Units Reset Value Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE N/A NO_RESET POWER_CONSUMPTION Yes N/A Bargraph Default Key Value OFF transport.next {Always Register} {Always Register} None transport.
DISC DEVICE Register? Data Type asset.power Has-Power Enum transport.play Has-Disc-Transport None Key Set Power (ON|OFF) Play Stop Pause transport.stop Has-Disc-Transport None transport.
DOCUMENT CAMERA Key Register? Data Units Type Reset Value Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE N/A NO_RESETPOWER_CONSUMPTION Yes N/A N/A Bargraph Key Default Value Set Power (ON|OFF) asset.power Has-Power Enum OFF Select Input Source (Enum: Source) source.input Has-Input-Select Number N/A Upper Light (ON|OFF) document.camera.light.upper.power Has-Upper-Light Boolean ON Lower Light (ON|OFF) document.camera.light.lower.
HVAC Key Register? Reset Value Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE Decimal watts N/A NO_RESET POWER_CONSUMPTION Yes N/A Boolean N/A N/A NO_RESET NONE No N/A NONE Yes N/A Data Bargraph Default Units Type Key Value Set Cool Setpoint (Level) hvac.cool.setpoint Has-CoolSetpoint Number N/A Set Heat Setpoint (Level) hvac.heat.setpoint {Always Register} Number N/A Set Fan (Enum: FanState) hvac.fan.
Control Methods Reset Value Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE N/A N/A NO_RESET NONE No N/A N/A N/A NO_RESET NONE Yes N/A Boolean N/A N/A NO_RESET NONE No N/A Level N/A light.level NO_RESET LIGHT_LEVEL No N/A N/A NO_RESET POWER_CONSUMPTION Yes N/A Key Register? Data Type Set Light On (Zone Name) light.power.on {Always Register} Enum N/A Set Light Off (Zone Name) light.power.
MONITOR Key Set Power (ON|OFF) asset.power Set Volume Mute (ON|OFF) Control Methods Set Volume Level (0-255) volume.mute Register? Data Units Type Has-Power Enum Reset Value Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE Yes N/A N/A Bargraph Key Default Value OFF Duet: Has-Volume Boolean XDD: Has-Volume-Mute-Cycle OFF volume.level Has-Volume Level N/A display.aspect.
Control Methods Key Bargraph Key Default Value N/A NO_RESET NONE No N/A N/A NO_RESET NONE Yes N/A OFF Set Volume Level (0-255) volume.level Has-Volume Level N/A Set Balance (-128 to 128) preamp.balance Has-Balance Level OFF Set Loudness State (ON|OFF) preamp.loudness Has-Loudness Boolean N/A Set Treble Level (0-255) preamp.treble Has-Treble Level OFF Set Bass Level (0-255) preamp.bass Has-Bass Level N/A Select Input Source (Enum: Source) source.
SECURITY SYSTEM Control Methods Set Security State (Enum: SecurityState, Password) Online (ONLINE|OFFLINE) Key Register? Data Type security.system.state {Always Register} Enum String {Always Register} Enum asset.online Power Consumption asset.power.consumption (This parameter is registered and managed by the RMS server.
Key Register? Data Type Units Reset Value Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE N/A NO_RESET POWER_CONSUMPTION Yes N/A N/A NO_RESET NONE No N/A N/A NO_RESET NONE Yes N/A Bargraph Key Default Value Set Power (ON|OFF) asset.power Has-Power Enum OFF Set Station (String) tuner.station Has-Station String N/A tuner.station.preset Has-Station-Preset Number N/A tuner.
SWITCHER Control Methods Key Register? Data Type Units Bargraph Key Default Value Set Volume Mute (ON|OFF) volume.mute Has-Volume Boolean OFF Set Volume Level (0-255) volume.level Has-Volume Level N/A Set Gain Mute (ON|OFF) gain.mute Has-Gain Boolean N/A Set Gain Level (0-255) gain.level Has-Gain Level N/A switcher.
TV Key Set Power (ON|OFF) Control Methods asset.power Data Type Has-Power Enum volume.mute Set Volume Level (0-255) volume.level Has-Volume Set Aspect Ratio (Enum: Aspect Ratio) Units Reset Value Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE Yes N/A Bargraph Key Default Value OFF Duet: Has-Volume Boolean XDD: Has-Volume-Mute-Cycle Set Volume Mute (ON|OFF) OFF Level N/A display.aspect.
Duet Device API Implementation Key Set Power (ON|OFF) asset.power Set Volume Mute (ON|OFF) volume.mute Set Auto Answer (ON|OFF) dialer.auto.answer Set Volume Level (0-255) volume.level Select Input Source (Enum: Source) source.input Set Privacy (ON|OFF) conferencer.privacy Control Methods Set Audible Ring (ON|OFF) dialer.ring.audible Dial Speed Dial Preset dialer.dial.preset Dial Telephone Number (String) dialer.dial.number Redial dialer.redial Set Off Hook (ON|OFF) dialer.
Set Power (ON|OFF) Set Volume Mute (ON|OFF) Key Register? projector.lamp.power Duet: Has-Lamp XDD: Set Power volume.mute Control Methods Set Volume Level (0-255) Param Type History Track Changes Status Type N/A NO_RESET ASSET_ONLINE Yes MAINTENANCE N/A NO_RESET POWER_CONSUMPTION Yes N/A Enum Default Value ON Duet: Has-Volume Boolean XDD: Has-Volume-Mute-Cycle OFF volume.level Has-Volume Level N/A Has-Aspect-Ratio Enum N/A Select Input Source (Enum: Source) source.
AMX TOUCH PANEL Bargraph Key Default Value Register? Enter Setup Pages touch.panel.setup {Always Register} N/A N/A Sleep touch.panel.sleep {Always Register} N/A N/A Wake touch.panel.wake {Always Register} N/A N/A touch.panel.calibrate {Always Register} N/A N/A touch.panel.beep {Always Register} Boolean Boolean N/A Set Brightness Level (1-100) (G4 only) touch.panel.brightness G4 Only Level N/A Set Volume Mute (ON|OFF) (G4 only) touch.panel.volume.
Appendix A: RmsApi - Structures Appendix A: RmsApi - Structures Overview This section provides a consolidated listing of the Structures used in the RmsApi.
Appendix A: RmsApi - Structures RMS Asset Control Method Data Structure STRUCTURE RmsAssetControlMethodArgument RmsAssetControlMethodArgument Data Type Parameter INTEGER Length Comment ordinal CHAR name 50 CHAR description 250 CHAR dataType 30 CHAR defaultValue 30 SLONG minimumValue SLONG maximumValue INTEGER CHAR stepValue enumerationValues 15, 30 RMS Asset Parameter Data Structure STRUCTURE RmsAssetParameter RmsAssetParameter Data Type Parameter Length Comment CHAR key 50 CHAR
Appendix A: RmsApi - Structures RMS Client Gateway Data Structure STRUCTURE RmsClientGateway RmsClientGateway Data Type Parameter Length Comment CHAR uid 100 CHAR name 100 CHAR hostname 100 CHAR ipAddress 50 CHAR ipPort 20 CHAR gateway 100 CHAR subnetMask 100 CHAR macAddress 100 CHAR sdkVersion 20 INTEGER communicationProtocol INTEGER communicationProtocolVersion RMS Location Data Structure STRUCTURE RmsLocation RmsLocation Data Type Parameter INTEGER Length Comment id C
Appendix A: RmsApi - Structures RMS Asset Control Method Data Structure STRUCTURE RmsAssetControlMethod RmsAssetControlMethod Data Type Parameter 198 Length Comment CHAR assetClientKey 50 CHAR methodKey 50 CHAR argumentValues 20, 250 Max 20 arguments RMS Enterprise - NetLinx Programmer’s Guide
Appendix B: RmsSchedulingApi - Structures Appendix B: RmsSchedulingApi - Structures Overview This section provides a consolidated listing of the Structures used in the RmsSchedulingApi.axi file: RMS Event Booking Response Data Structure This structure represents two types of data: 1. A response to a NetLinx command 2. Information initiated by the server In different events some fields may not be meaningful. As an example, for adhoc event creation, attendees will not be populated.
Appendix B: RmsSchedulingApi - Structures RMS Event Booking Monthly Summary Data Structure This structure represents a RMS Booking Monthly Summary Daily counts associated with a monthly summary are represented as a RmsEventBookingDailyCount structure, only a total of the number of entries is provided by dailyCountsTotal STRUCTURE RmsEventBookingMonthlySummary RmsEventBookingMonthlySummary Data Type Parameter LONG location CHAR startDate[RMS_MAX_DATE_TIME_LEN] CHAR startTime[RMS_MAX_DATE_TIME_LEN] CH
Duet Device API Implementation RMS Enterprise - NetLinx Programmer’s Guide 201
AMX. All rights reserved. AMX and the AMX logo are registered trademarks of AMX. AMX reserves the right to alter specifications without notice at any time. Increase Your Revenue through education + knowledge In the ever-changing AV industry, continual education is key to success. AMX University is dedicated to ensuring that you have the opportunity to gather the information and experience you need to deliver strong AMX solutions.