AMX Corporation warrants its products to be free of defects in material and workmanship under normal use for three (3) years from the date of purchase from AMX Corporation, with the following
exceptions:
•Electroluminescent and LCD Control Panels are warranted for three (3) years, except for the display and
touch overlay components that are warranted for a period of one (1) year.
•Disk drive mechanisms, pan/tilt heads, power supplies, and MX Series products are warranted for a period of
one (1) year.
•AMX Lighting products are guaranteed to switch on and off any load that is properly connected to our lighting products, as long as the AMX Lighting products are under warranty. AMX Corporation does guarantee
the
control of dimmable loads that are properly connected to our lighting products. The dimming performance or
quality cannot be guaranteed due to the random combinations of dimmers, lamps and ballasts or transformers.
•Unless otherwise specified, OEM and custom products are warranted for a period of one (1) year.
•AMX Software is warranted for a period of ninety (90) days.
•Batteries and incandescent lamps are not covered under the warranty.
This warranty extends only to products purchased directly from AMX Corporation or an Authorized
AMX Dealer.
All products returned to AMX require a Return Material Authorization (RMA) number. The RMA
number is obtained from the AMX RMA Department. The RMA number must be clearly marked on
the outside of each box. The RMA is valid for a 30-day period. After the 30-day period the RMA will
be cancelled. Any shipments received not consistent with the RMA, or after the RMA is cancelled,
will be refused. AMX is not responsible for products returned without a valid RMA number.
AMX Corporation is not liable for any damages caused by its products or for the failure of its products to perform. This includes any lost profits, lost savings, incidental damages, or consequential
damages. AMX Corporation is not liable for any claim made by a third party or by an AMX Dealer
for a third party.
This limitation of liability applies whether damages are sought, or a claim is made, under this warranty or as a tort claim (including negligence and strict product liability), a contract claim, or any
other claim. This limitation of
liability cannot be waived or amended by any person. This limitation of liability will be effective even
if AMX Corporation or an authorized representative of AMX Corporation has been advised of the
possibility of any such damages. This limitation of liability, however, will not apply to claims for personal injury.
Some states do not allow a limitation of how long an implied warranty last. Some states do not allow
the limitation or exclusion of incidental or consequential damages for consumer products. In such
states, the limitation or exclusion of the Limited Warranty may not apply. This Limited Warranty
gives the owner specific legal rights. The owner may also have other rights that vary from state to
state. The owner is advised to consult applicable state laws for full
determination of rights.
EXCEPT AS EXPRESSLY SET FORTH IN THIS WARRANTY, AMX CORPORATION
MAKES NO OTHER WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING ANY
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. AMX CORPORATION EXPRESSLY DISCLAIMS ALL WARRANTIES NOT
STATED IN THIS LIMITED WARRANTY. ANY IMPLIED WARRANTIES THAT MAY BE
IMPOSED BY LAW ARE LIMITED TO THE TERMS OF THIS LIMITED WARRANTY.
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. The AMX Software consists of generally available programming and development software, product documentation, sample applications, tools and utilities, and miscellaneous technical information. Please refer to the README.TXT file on the compact disc or download for further
information regarding the components of the AMX Software. The AMX Software is subject to restrictions on
distribution described in this License Agreement. YOU MAY NOT LICENSE, RENT, OR LEASE THE AMX
SOFTWARE. You may not reverse engineer, decompile, or disassemble the AMX Software.
INTELLECTUAL PROPERTY.
The AMX Software is owned by AMX and is protected by United States copyright laws, patent laws, international treaty provisions, and/or state of Texas trade secret laws. Licensee may make copies of the AMX Software solely for backup or archival purposes. Licensee may not copy the written materials accompanying the
AMX Software.
TERMINATION. AMX RESERVES THE RIGHT, IN ITS SOLE DISCRETION, TO TERMINATE THIS
LICENSE FOR ANY REASON AND UPON WRITTEN NOTICE TO LICENSEE.
In the event that AMX terminates this License, the Licensee shall return or destroy all originals and copies of
the AMX Software to AMX and certify in writing that all originals and copies have been returned or destroyed.
PRE-RELEASE CODE.
Portions of the AMX Software may, from time to time, as identified in the AMX Software, include PRERELEASE CODE and such code may not be at the level of performance, compatibility and functionality of the
final code. The PRE-RELEASE CODE may not operate correctly and may be substantially modified prior to
final release or certain features may not be generally released. AMX is not obligated to make or support any
PRE-RELEASE CODE. ALL PRE-RELEASE CODE IS PROVIDED "AS IS" WITH NO WARRANTIES.
LIMITED WARRANTY.
AMX warrants that the AMX Software will perform substantially in accordance with the accompanying written
materials for a period of ninety (90) days from the date of receipt. AMX DISCLAIMS ALL OTHER WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH REGARD TO THE AMX SOFTWARE. THIS LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS. Any supplements or updates to
the AMX SOFTWARE, including without limitation, any (if any) service packs or hot fixes provided to you after
the expiration of the ninety (90) day Limited Warranty period are not covered by any warranty or condition,
express, implied or statutory.
LICENSEE REMEDIES.
AMX's entire liability and your exclusive remedy shall be repair or replacement of the AMX Software that does
not meet AMX's Limited Warranty and which is returned to AMX. This Limited Warranty is void if failure of the
AMX Software has resulted from accident, abuse, or misapplication. Any replacement AMX Software will be
warranted for the remainder of the original warranty period or thirty (30) days, whichever is longer. Outside the
United States, these remedies may not available.
NO LIABILITY FOR CONSEQUENTIAL DAMAGES. IN NO EVENT SHALL AMX BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY
LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THIS AMX SOFTWARE, EVEN IF AMX HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME STATES/COUNTRIES DO
NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL
DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.
U.S. GOVERNMENT RESTRICTED RIGHTS. The AMX Software is provided with RESTRICTED RIGHTS.
Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph
(c)(1)(ii) of The Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 or subparagraphs (c)(1) and (2) of the Commercial Computer Software Restricted Rights at 48 CFR 52.227-19, as applicable.
This Agreement replaces and supercedes all previous AMX Software License Agreements and is governed by
the laws of the State of Texas, and all disputes will be resolved in the courts in Collin County, Texas, USA.
Should you have any questions concerning this Agreement, or if you desire to contact AMX for any reason,
please write: AMX Corporation, 3000 Research Drive, Richardson, TX 75082.
The Resource Management Suite products are PC server applications designed to
manage rooms and equipment. The RMS server also monitors equipment in the
rooms and sends notifications for room problems and help requests. The RMS
server allows for the logging of room and device use, errors that occur, and
offline events. The RMS server offers a variety of build-in reports for historical
and statistical analysis, as well as device monitoring through a user extensible
framework. This framework allows you to customize what devices should be
monitored, the conditions that indicates a problem or fault, and what type of
problem or fault this condition represents. The RMS server generates
notifications and routes them to different personnel when a fault condition
occurs, routing such notifications to the appropriate personnel as determined by
the notification configuration.
The RMS Software Development Kit (SDK) is composed of a series of modules
that allow users to monitor equipment errors and usage, view appointments,
display welcome images and messages, and view current appointment details
from any NetLinx compatible touch panel. Users can create presets to be
executed when a meeting starts from the actions available through i!-
ConnectLinx.
i!-ConnectLinx provides the mechanism to expose actions to the RMS server and
to manage action execution on the NetLinx system. In the RMS web pages users
can create control functions which are essentially macro sequences of
i!-ConnectLinx actions. These control function macros can be directly executed
or scheduled from the RMS web pages. i!-ConnectLinx handles these requests
and presents it to the NetLinx program for execution. See the i!-ConnectLinx
help file for details on programming i!-ConnectLinx.
RMS NetLinx Programmer’s Guide
1
Overview
2
RMS NetLinx Programmer’s Guide
System Requirements
System Requirements
The RMS SDK is a set of NetLinx and TPDesign files that are included in your
control system programs. To utilize this SDK, you will need the following
applications installed:
NetLinx Studio 2.5 (or later)
TPDesign 4 v2.6 (or later) for G4 panels
TPDesign 3 v3.16 (or later) for G3 panels
RMS NetLinx Programmer’s Guide
3
System Requirements
4
RMS NetLinx Programmer’s Guide
Concepts
Concepts
Network Configuration
The RMS application is a client/server application where the NetLinx system acts
as the client and the RMS application server listens for connections from NetLinx
systems. NetLinx and the RMS application server communicate using TCP/IP
sockets. In order to establish communication, each NetLinx system must be able
to resolve and connect to the RMS application server. This can be accomplished
with a variety of Network configurations including local area networks (LAN),
wide area networks (WAN), and the Internet.
In order to communicate with RMS, a NetLinx system must have the RMS
modules added to its programming. The RMSEngineMod module includes the
core API and communication stack that allows Netlinx to communicate with the
RMS server.
Since each NetLinx system acts as the client, it must be configured to
communicate to the RMS server using the 'SERVER-' command in NetLinx
programming. NetLinx can accept either an IP address or a HostName for the
server. NetLinx supports DNS so if you are using a HostName, the HostName
must be registered with the DNS server that NetLinx has been configured to use.
The DNS server configuration will be picked up automatically through DHCP if
the DNS servers are registered with the DHCP server. For more information on
configuring DNS servers in NetLinx, see the NetLinx master’s instruction
manual.
Optionally, the server IP or host name can be placed in a file called ServerInfo.txt
and placed in the RMS directory of the NetLinx master's file system. If this file is
present, the RMS communication module ignores the SERVER- command and
uses the address supplied in the file. Enter the IP address or hostname on a single
line using a text editor and FTP the file to the NetLinx master. If the RMS
directory does not exist, you can create it and place the file in the directory.
By default, NetLinx and the RMS server will communicate using TCP/IP port
3839. Port 3839 is registered to AMX Resource Management Suite with IANA
(http://www.iana.org/assignments/port-numbers). This can be changed to suit
your particular facility but it must be changed in both the RMS server software
RMS NetLinx Programmer’s Guide
5
Concepts
and each NetLinx system. In the RMS server, this is accomplished through the
Configuration Wizard. In NetLinx, this is accomplished through the 'SERVER-'
command in NetLinx programming.
If using the ServerInfo.txt file, append a ":" and the port number to the server IP
address or host name.
MeetingManager 1.0 used port 9090 for communications. If you are upgrading
from MeetingManager 1.0, you may wish to continue to use port 9090. During
the upgrade process, you are prompted to change to port 3839 or continue to use
port 9090. If you change to port 3839, you need to upgrade all NetLinx systems
to use the modules from the RMS 2.0 SDK. You can use port 9090 with both
MeetingManager 1.0 and 2.0 NetLinx systems.
Once a NetLinx system has been programmed with the RMS modules and the
server's IP address or HostName, the NetLinx system automatically connects to
the RMS server.
Install Checklist
Is the RMS server's host name registered with your DNS server?
Yes• Configure each NetLinx system to point the correct DNS server and supply the
HostName to the NetLinx programmer to use in the 'SERVER-' command. The
DNS server configuration will be picked up automatically through DHCP if the
DNS servers are registered with the DHCP server.
No• Determine the IP address of the RMS server and supply this to the NetLinx
programmer to use in the 'SERVER-' command.
Do you want to use 3839 as the TCP/IP port for communications between Netlinx
and the RMS server?
Yes• No changes need to be made in either the RMS server or NetLinx.
No• Configure the TCP/IP in the RMS server using the Configuration Wizard and
supply the new port to the NetLinx programmer to use in the 'SERVER-'
command.
6
RMS NetLinx Programmer’s Guide
Concepts
Device Monitoring Framework
RMS provides device monitoring through a user extensible framework. This
framework allows you to customize what devices are monitored, the conditions
that indicate a problem or fault, and what type of problem or fault this condition
represents. RMS generates notifications when a fault condition occurs, as
determined by the notification configuration.
Each room has one or more monitored devices. Each device can be a physical
device, such as a video projector, or a logical device, like the RMS software.
However, each monitored device must be associated with a NetLinx-connected
device. In the case of a video projector, this device would be the IR card, Serial
Card or IP Socket used to communicate with the projector. The RMS software is
associated with the NetLinx master itself.
Each monitored device has one or more device parameters that represent
monitored items. For instance, monitoring lamp hours of a video projector is
accomplished through a "Lamp Hours" parameter that belongs to the "Video
Projector" device. All parameters must be associated with a device.
In order to monitor a device, the NetLinx system must register the device and one
or more parameters with RMS. For instance, monitoring of lamp hours of the
video projector is only available if the NetLinx system has added the appropriate
code. In many cases, this is as simple as adding a RMS support module.
RMS NetLinx Programmer’s Guide
7
Concepts
Device Values
Each monitored device has a set of values used in its description. These values
are supplied when the device is registered and consist of the following:
Device Values
Device NumberThis is the device number of the device, as defined in the NetLinx
program. Devices are tracked by Device ID so this value must be
unique within the devices of a given room. For instance, you can have
multiple "1:1:0" devices as long as there is only one device with a
Device ID of "1:1:0" in the room.
NameThis is the name of device. This name is displayed on the
administrators console and readily identifies the device.
ManufacturerThis is the manufacturer of the device. If this value is not supplied
during registration, the manufacturer of the NetLinx-connected device
will be used.
ModelThis is the model number of the device. If this value is not supplied
during registration, the model name of the NetLinx-connected device
will be used.
Device TypeThis is the device type of the NetLinx-connected device. This might be
"NI-2000" or "NXP-TPI/4 Touch Panel". This is available for Axcess
and NetLinx devices. This information is registered automatically by
the RMS server.
Serial NumberThis is the serial number of the NetLinx-connected Device. This is only
available for NetLinx devices. This information is registered
automatically by the RMS server.
Firmware Version This is the firmware version of the NetLinx-connected device. This is
only available for NetLinx devices. This information is registered
automatically be the RMS server.
Address and
Address Type
This is the physical address and address type for the
Netlinx-connected device. This information describes how the device
is connected to the NetLinx master. A device connected via ICSNet
will display "ICSNet" for the address type and the hardware's network
address for the address. A device connected via IP will display
"TCP/IP" for the address type and the IP address for the address.
Axcess devices will display "AXLink" for both values. This information
may be useful for diagnosing device connectivity problems.
This information is registered automatically by the RMS server.
8
RMS NetLinx Programmer’s Guide
Concepts
Parameter Values
Each parameter has a set of values used to determine what conditions indicate a
problem and what type of problem this condition represents. These values are
supplied when the parameter is registered and consist of the following:
Parameter Values
NameThis is the name of parameter. This name is displayed on the
Parameter TypeThis value indicates if this value is a number or a string. This
Value and UnitsThis is the current value of the parameter. Units are appended
Threshold Value and
Comparison Operator
RMS server console and readily identifies the parameter.
Parameters are tracked by name so this name must be unique
within the parameters of a given device. For instance, you can
have multiple "Lamp Hours" parameters as long as there is
only one "Lamp Hours" parameter per monitored device.
information is used to determine how to perform certain
operation, such as addition and comparisons between the new
and threshold values. For instance, comparing "10" and "2" as
strings results in "10" less than "2" but comparing them as
numbers results in "2" less than "10".
to the value when displayed in the web console.
The threshold value is the value for which this parameter is
considered to indicate a problem or fault. The comparison
operator is used to detect when the value changes from the
un-faulted to the faulted condition. The comparison operators
"Less Than", "Less Than or Equal To", "Greater Than",
"Greater Than or Equal To", "Equal To", and "Not Equal To"
can be used for string and number parameters. The
comparison operators "Contains" and "Does Not Contain" are
primarily used for string parameters.
For example, "Lamp Hours" might have a threshold value of
1000 and any value over this would require maintenance. The
comparison operator would then be "Greater Than". When this
parameter changes from a value that is not greater than 1000
to a value that is greater than 1000, the fault status is set.
When the value changes from a value greater than 1000 to a
value not greater than 1000, the fault status is cleared. These
value are supplied during registration but can be modified by
the administrator from the RMS server console.
RMS NetLinx Programmer’s Guide
9
Concepts
Parameter Values
Status TypeThe status represents the type of problem a faulted condition
represents. Status Types include "Help Request",
"Maintenance Request", "Room Communication Error",
"Control System Error", "Network Error", "Security", and
"Equipment Usage."
For example, when "Lamp Hours" changes from an un-faulted
(not greater than 1000) to a faulted (greater than 1000), this
change represents a "Maintenance Request" status that
requires an AV technician to repair the equipment. If the
"Device Online" parameter changes from "Online" to "Offline",
this change could represent a "Security" or "Control System
Error" status.
These value are supplied during registration but can be
modified by the administrator from the RMS server
console.
Reset Flag and Reset
Val ue
Minimum and Maximum
Values
Enumeration ListThis value is used to restrict the range of the threshold and
These values determine if and how the parameter can be reset
from the RMS server console. If the Reset Flag is set, then the
administrator can reset the value remotely. When the administrator selects "Reset" from the console, the Reset Value is copied to the Value and the faulted condition is cleared. These
values are useful for parameters such as VCR "Run Time"
which would be manually reset when the VCR is cleaned.
These values are used to restrict the range of the threshold
and reset values that the administrator can enter on the
RMS server console. These values would be used when the
parameter represents a value with a bounded range, such as a
Vol u me Level.
reset values that the administrator can enter on the
RMS server console. This value would be used when the
parameter represents a value with a bounded list, such as a
list containing the values Power On and Power Off.
All parameters must be registered by the NetLinx system. The administrator
cannot add parameters from the RMS console. The administrator can modify
Threshold Value, Comparison Operator, and Status Type for any parameter. This
provides the administrator with the ability to set their own thresholds and
re-classify messages based on their facility. For instance, an administrator can set
the Video projector's "Lamp Hours" threshold to the expected lamp life of a
newly replaced lamp or change the "Device Communicating" parameter from a
"Control System Error" to a "Security" status if the projector is in danger of being
stolen.
10
RMS NetLinx Programmer’s Guide
Concepts
Status Types
RMS supports the following status types for device monitoring: "Help Request",
"Maintenance Request", "Room Communication Error", "Control System Error",
"Network Error", "Security", and "Equipment Usage."
While there are no firm rules for what these status types mean and how they are
used, AMX provides the following description of each status type and
recommends that your usage is consistent with these descriptions.
Status Types
Help RequestA user generated help request such as a help button on the
touch panel.
Maintenance RequestA user or monitored equipment generated maintenance
Room Communication Error A loss of communication between the room and the
Control System ErrorAny error that represents a control system error, such as an
Network ErrorAny network related error. These would most commonly be
SecurityAny security related issue. It might be appropriate to
Equipment UsageAny issue that does not require repair or maintenance and
request. Maintenance issues would include items that
require a technician to visit the room.
RMS server.
offline device or loss of communication with a device.
associated with loss of communication with devices that
communicate via IP.
classify issues that might normally be classified as Control
System or Network errors as Security issues instead. This
might include a touch panel going offline or loss of
communication with a projector depending on the physical
security of these devices.
that is mainly used for status.
RMS NetLinx Programmer’s Guide
11
Concepts
Notification Process
As NetLinx sends parameter updates to the RMS server, the RMS server checks
to see if the parameter's threshold value has been reached. This comparison is
made by checking the previous value of the parameter against the threshold and
by checking the new version of the parameter against the threshold using the
threshold comparison operator. If the comparison for the old value is False and
the comparison for the new value is True, then the parameter triggers an Alert
message. If the comparison for the old value is True and the comparison for the
new value is False, then the parameter triggers an Advise message. Therefore an
Alert message is generated when a parameter reaches its threshold, and an
Advise message is generated when a parameter returns to its normal operating
range.
Alert Messages
When an Alert message occurs, the RMS server first checks to see if message
should be logged to the various log services. A message is created for each log
service using the Log Text of the parameter's Alert template, or the default
template if a custom template has not been assigned. Next, the RMS server
checks for any notifications in the Notification List matching the group, room,
and status type for the parameter and dispatch any messages via SMTP or SNPP
as needed using the appropriate text from the template assigned to the parameter.
Advise Messages
When an Advise message occurs, the RMS server first checks to see if the
parameter is configured for sending Advise messages. If not, no messages are
sent and no Log entries are created. If the parameter has been configured for
Advise messages, the message is logged and dispatched via SMTP an SNPP as
described above. However, the Advise template assigned to the parameter, or the
default Advise template if no template has been assigned to the parameter, is used
to generate the text for the log entries and messages.
For instance, if the previous value for Projector Lamp Hours is 999 and the new
value is 1001 and the threshold is set to 1000 and the threshold operator is set as
"Greater Than", the RMS server checks to see if the previous value compared to
the threshold, i.e. 999 is Greater than 1000 is False, has a different result than the
new value compared to the threshold, i.e. 1001 is Greater than 1000 is True. This
12
RMS NetLinx Programmer’s Guide
Concepts
change results in an Alert message being logged using the RMS logging settings.
Also, a message is sent to all users registers for a notification matching the
parameters group, room and status type.
If the Lamp Hours changes from 1001 to 999, the RMS server triggers an Advise
message. If the parameter is configured to send Advise messages, the message is
sent to the log and to all users registered for a notification matching the
parameters group, room, and status type.
RMS NetLinx Programmer’s Guide
13
Concepts
14
RMS NetLinx Programmer’s Guide
Upgrading from MeetingManager 1.0
Upgrading from
MeetingManager 1.0
Basic Changes
If you are currently running MeetingManager 1.0 NetLinx code, you should plan
to migrate to the new RMS 2.0 SDK. The RMS 2.0 SDK offers a more flexible
and complete API and improved reporting capabilities for the RMS Server
administrator.
In general, migrating from MeetingManager 1.0 SDK to RMS 2.0 SDK is a
simple process. The RMS 2.0 SDK requires the following changes:
All "MeetingManager" modules should be changed to "RMS' modules.
For instance, "MeetingManagerProjectorMod" should be changed to
"RMSProjectorMod".
"The MeetingManager SDK include file,
"MeetingManagerDeviceMonitor.axi" has been changed to
"RMSCommon.axi"
All SDK constants functions names including "MM" have been
changed to "RMS". For instance, "MMNetLinxDeviceOnline" is now
"RMSNetLinxDeviceOnline" and "MM_PARAM_SET" is now
"RMS_PARAM_SET"
Many of the SDK changes can be handled by using RMS CodeCrafter; it can
import data from a MeetingManager 1.0 Device Monitoring Worksheet and
generate an include file that uses the new RMS 2.0 SDK. However, changes to
your code will be required. The new parameter access functions will be named
"RMSSet…" instead of "MMSet…". You need to change your code to call the
"RMSSet…" functions in order to use the code generated by RMS CodeCrafter.
If you have not used the MeetingManager 1.0 Device Monitoring worksheet,
your code will need to be changed by hand. The easiest way to make this change
is to change all "MeetingManager…" modules to "RMS…" modules. For
instance, "MeetingManagerProjectorMod" should be changed to
"RMSProjectorMod". Additionally, you will need to copy the RMS module TKO
RMS NetLinx Programmer’s Guide
15
Upgrading from MeetingManager 1.0
files from the RMS 2.0 SDK directory to your project directory in order to
compile.
In addition, all "MM…" API functions and constants should be changed to use
the "RMS…" function or constant, which is as simple as changing "MM" to
"RMS". To avoid making these tedious changes, you could overwrite your
existing MeetingManagerDeviceMonitor.axi from the MeetingManager 1.0 SDK
with the MeetingManagerDeviceMonitor.axi from the RMS 2.0 SDK. This new
file will define all the MeetingManager 1.0 SDK functions and constants and, in
the case of functions, will call the RMS equivalents. Using
MeetingManagerDeviceMonitor.axi in new projects is not recommended.
These changes constitute the bulk of the RMS 2.0 SDK changes. The new
modules will enable most of the new functionality available in RMS 2.0 servers.
There may be a couple of other changes required to take full advantage of the
RMS 2.0 SDK so check the next sections to see if they apply to your program.
After making this change, you will need to recompile and download your code.
Lamp Hours
In order to take full advantage of the Lamp Hours reporting and Manage Lamp
Hours view, Projector Lamp Hours must be reported to the RMSProjectorMod
support module. If you created your own "Lamp Hours" parameter, the code in
your program is sending the lamp hour value directly to MeetingManager.
In order to take advantage of the new Lamp Hours features, change your call that
notifies the RMS server of the lamp hours change to:
RMSSetLampHours(Projector Device, Lamp Hours)
For instance, if you have a Named device called "Projector" with a real device
called dvProj and a parameter for this device named "Lamp Hours", the
MeetingManager 1.0 Device Monitoring Worksheet created a function called
MMSetProjectorLampHours() which your code called to notify MeetingManager
of the Lamp Hours change. You will want to change your code from:
MMSetProjectorLampHours(Value)
To
RMSSetLampHours(dvProj,Value)
16
RMS NetLinx Programmer’s Guide
Upgrading from MeetingManager 1.0
If you did not use the worksheet, your code probably calls MMChangeParam() to
notify MeetingManager of the Lamp Hours change. You will want to change
your code from:
MMChangeParam (dvProj,MM_PARAM_SET,Value)
To
RMSSetLampHours(dvProj,Value)
Communication Timeout
In MeetingManager 1.0, communication timeout for a source other than a
Projector or a VCR was handled by creating a named device and a parameter for
that device called "Device Communicating". This method will still work under
RMS 2.0 without changes.
However, a new report in RMS 2.0, Device Communicating Quality of Service,
requires that device communications be monitored using a support module, such
as RMSProjectorMod or RMSTransportMod. To handle devices other than
projectors and VCRs, a new support module, RMSBasicDeviceMod, was added.
RMSBasicDeviceMod monitors a device for Power, Communication Status,
Control Failure (optional), and IP Address. This module simplifies monitoring
device communications.
To use this new module, make the following changes to your programming:
Remove the registration of the named device and the "Device
Communicating" parameter.
Remove the calls to parameter access function, such as
MMSetDeviceCommunicating(), in your code, which should be
located under the DATA_EVENT for the device to be monitored.
Include a new RMSBasicDeviceMod module for the device to be
monitored.
Call RMSSetDeviceInfo() to set the name, manufacturer, and model of
the device to be monitored.
Call RMSSetCommunicationTimeout() to change the default timeout
from 300 seconds to another value unless the 30 second default is OK
for your program.
Make sure to leave a polling command that elicits a response from the device.
The RMSBasicDeviceMod will expect to receive a string from the device every
RMS NetLinx Programmer’s Guide
17
Upgrading from MeetingManager 1.0
30 seconds, or any value you set using RMSSetCommunicationTimeout (). If a
string is not received within the timeout period, a loss of device communication
is reported to the RMS server.
If you are using RMS CodeCrafter output that imported the custom "Device
communicating" parameter from a MeetingManager 1.0 worksheet, simply
change the Module type for the device from "Custom (No Module)" to "Basic
Device", and delete the "Device Communicating" parameter.
Custom Source Usage
In order to take full advantage of the Source Usage reporting and Manage Source
Usage view, Source Usage must be reported to the RMSSrcUsageMod support
module. The new RMSSrcUsageMod is backwards compatible with the old
module. If you are only using standard sources and you have not customized
MeetingManagerSrcUsageMod module for custom sources, you only need to
change the DEFINE_MODULE line to use RMSSrcUsageMod, recompile, and
download.
If you have customized MeetingManagerSrcUsageMod with custom sources, as
indicated by a value of MM_MAX_CUSTOM_SOURCES greater than 0 in your
customized version of MeetingManagerSrcUsageMod.axs, you will need to
migrate these custom sources to the RMSSrcUsageMod.axs file.
RMSSrcUsageMod supports custom sources in two ways. The first way is the
same as MeetingManagerSrcUsageMod, where you can set
MM_MAX_CUSTOM_SOURCES to the number of custom sources and add
source names to MM_CUSTOM_SOURCES. This method is deprecated in RMS
2.0 although it still works.
The recommended method for adding custom sources to RMSSrcUsageMod is
through custom i!-ConnectLinx actions. RMSSrcUsageMod will watch for the
registration of custom i!-ConnectLinx actions and automatically register any
actions starting with "Select " as a source select. For instance, if your system has
a Reel to Reel player, which is not supported in i!-ConnectLinx as a standard
source, you can track the usage of this source in the RMS server by registering
this as a custom actions called "Select Reel to Reel":
SEND_COMMAND vdvCLActions,'ADD ACTION-1,Select Reel To
Reel,,Sources'
18
RMS NetLinx Programmer’s Guide
Upgrading from MeetingManager 1.0
RMSSrcUsageMod will extract the text after "Select " and register the remaining
text as a custom source, Reel to Reel in this case. RMSSrcUsageMod will then
monitor the channel specified in the ADD ACTION command, channel 1 in this
case, and when the channel turns on, RMSSrcUsageMod will start a timer and
time the usage of Reel to Reel.
For more information i!-ConnectLinx programming, see the i!-ConnectLinx help
file installed with the RMS SDK.
Source Usage and Multiple Displays
In MeetingManager 1.0, tracking source usage for multiple displays was
accomplished by using multiple copies of MeetingManagerSrcUsageMod, where
one MeetingManagerSrcUsageMod was added for each display. Each source was
timed from the moment the source was turned on until another source was turned
on or the system was turned off. Multiple MeetingManagerSrcUsageMod
modules allow tracking of one or more sources at the same time since each
MeetingManagerSrcUsageMod module could track one source.
While this method still works in RMS 2.0, RMSSrcUsageMod supports a new
method for tracking multiple sources. RMSSrcUsageMod supports a new
command, Multisource, which tells RMSSrcUsageMod that it should track each
source independently.
In this mode, RMSSrcUsageMod times each source from the time the source is
turned on until the source is turned off. RMSSrcUsageMod allows multiple
sources to be active at the same time and tracks these sources independently.
System Off no longer plays a role in source usage; source usage is determined by
the state of the i!-ConnectLinx channel for each individual source.
Since this new mode monitors source usage channels differently, your
programming may need to change. MeetingManagerSrcUsageMod assumed all
sources, including system off, were mutually exclusive and the OFF states of the
channels were ignored. For instances, selecting a source could be accomplished
with
Select VCR:
PULSE[vdvCLActions,1011]
Select DVD: PULSE[vdvCLActions,1014]
System Off: PULSE[vdvCLActions,1002]
RMS NetLinx Programmer’s Guide
19
Upgrading from MeetingManager 1.0
When using RMSSrcUsageMod in Multisource mode, RMSSrcUsageMod does
not assume sources are mutually exclusive, the OFF states are used to stop source
usage timing and system off is ignored. Selecting a source now requires this
where CurrentSource is a variable representing the currently selected source. If
your system supported both a main source and a preview source, your code might
look like this:
[vdvCLActions,1011] = (CurrentSource = VCR OR PreviewSource =
VCR)
[vdvCLActions,1014] = (CurrentSource = DVD OR PreviewSource =
DVD)
The code produced by RMS CodeCrafter is similar in concept to the code above
and will work for either Single-source or Multi-source source usage tracking.
To take advantage of this new feature in RMS 2.0 when using RMS CodeCrafter,
simply check the "Using multiple display devices" checkbox on the "Room
Information/Options" page. If you are not using RMS CodeCrafter, make the
following programming changes in your code:
Remove all instances of MeetingManagerSrcUsageMod except one,
along with the i!-ConnectLinx device definitions associated with these
modules.
Change the remaining instance of MeetingManagerSrcUsageMod to
RMSSrcUsageMod.
In DEFINE_START, call this function: RMSSetMultiSource(TRUE).
Make sure your activations of i!-ConnectLinx source channels use ON
and OFF or feedback assignments instead of PULSE.
20
RMS NetLinx Programmer’s Guide
Upgrading from MeetingManager 1.0
Time Synchronization
In MeetingManager 1.0, time synchronization for the master was accomplished
by using i!-TimeManager. Starting with RMS 2.0, time synchronization is built
into the RMS Suite. Each NetLinx system's time is automatically updated based
on the RMS server's time while accounting for the time zone and Daylight Saving
settings of the server and each room.
If you are running RMS SDK 2.0, you no longer need to include i!-TimeManager
in your program. However, there are ways to configure RMS to allow i!-
TimeManager to handle time synchronization. If the RMS SDK automatically
detects that i!-TimeManager is present, based on the device vdvTMEvents being
defined, then the RMS SDK will automatically defeat the RMS time
synchronization. You can manually disable the RMS time synchronization by
calling this function:
RMSDisableTimeSync()
If the RMS SDK automatically disables time synchronization because it
determined that i!-TimeManager was present, the following entry will appear in
the log (note the line number may differ):
RMS: Detected i!-TimeManager, disabling RMS Time Sync
(RMSCommon.axi line 930)
RMS NetLinx Programmer’s Guide
21
Upgrading from MeetingManager 1.0
Migrating from The Device Monitoring
Worksheet to RMS CodeCrafter
If you installed MeetingManager prior to version 2.1 you may have used the
Device Monitoring Worksheet to generate your device monitoring code. All
changes mentioned in Upgrading from MeetingManager 1.0 section on page 15
are still necessary but it is easier to do with the assistance of RMS CodeCrafter.
To bring your worksheet into CodeCrafter for editing:
1. Dowload RMS CodeCrafter from AMX.com if you do not already have the
application (the application is included in the RMS 3.0 SDK installation for
your convenience).
2. Install and open RMS CodeCrafter.
3. Select File > Open > Import Spreadsheet.
4. Locate your MeetingManager Device Monitoring Worksheet (.XLS).
5. Click Open.
Consult the RMS CodeCrafter instruction manual for further information on
using the RMS CodeCrafter application.
22
RMS NetLinx Programmer’s Guide
Getting Started
Getting Started
In order to monitor devices from an RMS system, you will need to add
programming to your NetLinx project. Only the devices and parameters that you
register from NetLinx can be monitored; the administrator cannot add parameters
from the RMS console.
While all of the device monitoring programming can be done manually, RMS
CodeCrafter can generate code for your project. From this program, you can
enter the information for the device monitoring and then generate an Include
(AXI) file. The Include (AXI) file contains the necessary code to register
monitored devices. Once the Include file is created, you need to include this file
in your main program with an #INCLUDE statement and make sure the RMS
device is defined. Also, you need to add code to set the values of any custom
parameters.
If you're upgrading an existing MeetingManager 1.0 installation, and
used the Device Monitoring Worksheet to generate your RMSMain
file, please reference Migrating from The Device Monitoring
Worksheet to RMS CodeCrafter section on page 22 for infor mation
on how to import your worksheet into RMS CodeCrafter.
Using RMS CodeCrafter
To use RMSCodeCrafter, create a new RMSCodeCrafter project by opening the
program from the AMX Resource Management Suite > RMSCodeCrafter
Program Folder. For details on operating the program, see the
RMSCodeCrafter help file.
The RMS SDK consists of a series of modules to simplify device monitoring
programming. Device monitoring modules handle the registration of devices and
parameters, and keeping track of lamp hours and transport run time. In most
cases, adding device monitoring is achieved by selecting the appropriate device
monitoring module and adding code to inform the module of important device
changes. The RMS support modules register and monitor the following
parameters:
Basic Device (RMSBasicDeviceMod):
Device Online/Offline, Power, Communication Status for Serial devices, Control
Failure (Optional), IP Address of Socket-based devices.
RMS NetLinx Programmer’s Guide
23
Getting Started
Projector (RMSProjectorMod):
Device Online/Offline, Power, Lamp Hours, Communication Status for Serial
devices, Control Failure (Optional), IP Address of Socket-based devices.
Transport (RMSTransportMod):
Device Online/Offline, Power, Run Time, Communication Status for Serial
devices, Control Failure (Optional), IP Address of Socket-based devices.
Slide Projector (RMSSldProjMod):
Device Online/Offline, Power, Lamp Hours
The following diagram is a visual description of the architecture of the
RMSMain.axi and the RMS support modules:
FIG. 1 Architecture of The RMSMain.axi And The RMS Support Modules
24
RMS NetLinx Programmer’s Guide
Getting Started
Interfacing with the RMS SDK
Once you have used RMS CodeCrafter to generate the device monitoring code
for your system, you will need to communicate device status to the RMS support
modules.
First, you will need to notify RMS when the system power is turned on and off.
To notify RMS when the system power is ON, call this function:
RMSSetSystemPower(TRUE)
To notify RMS when the system power is turned off, call this function:
RMSSetSystemPower(FALSE)
Next, you will need to notify RMS when device power is turned on and off. If
you are using an AMX Comm module to communicate to your device, the RMS
support modules will automatically communicate with the Comm module to
determine power status. If you are using a power sensing device to monitor power
and the power sending status appears on channel 255 of the real device, the RMS
support modules will automatically detect power status. To notify RMS when the
device power is ON, call this function:
RMSSetDevicePower(DeviceIdentifier,TRUE)
Where DeviceIdentifier is the identifier for the real device, such as
dvProj.
To notify RMS when the device power is OFF, call this function:
RMSSetDevicePower(DeviceIdentifier,FALSE)
Where DeviceIdentifier is the identifier for the real device, such as
dvProj.
For projectors, you will need to notify RMS when the lamp hours changes If your
projector does not support a lamp hours command, you need to make sure you
notify RMS of the projector power using RMSSetDevicePower(). The
RMSProjectorMod module will estimate lamp hours using projector power, if
you are using an AMX Comm module to communicate to your device, the
RMSProjectorMod will communicate with the Comm module to determine lamp
hours automatically.
If your projector supports a lamp hours command, it is recommended you add
code to poll and parse lamp hours. Once you have obtained lamp hours from your
projector, notify RMS by calling this function:
RMSSetLampHours(DeviceIdentifier,Value)
RMS NetLinx Programmer’s Guide
25
Getting Started
Where DeviceIdentifier is the identifier for the real device, such as
dvProj, and Value is the lamp hour's value.
For transport devices, you will need to notify RMS when the transport state
changes. If you are using an AMX Comm module to communicate to your
device, the RMSTransportMod will communicate with the Comm module to
determine transport state automatically. If you are using an AMX system call
with no feedback offset, i.e. FIRST is 0, RMSTransportMod will communicate
with the SYSTEM_CALL to determine transport state automatically.
To notify RMS of the transport state for a custom transport implementation, use
this function:
RMSSetTransportState(DeviceIdentifier,State)
Where DeviceIdentifier is the identifier for the real device, such as
dvVCR, and State is the transport state: Play=1, stop-2, Pause=3,
FFwd=4, Rew=5, SrchFwd=6, SrchRev=7, Record=8.
For serial devices, including, RS232 and IP controlled devices, you need to add
some polling commands to these device in order to allow the RMS support
module to properly report the Device Communicating parameter. The
RMSBasicDeviceMod, RMSProjectorMod and RMSTransportMod expect to
receive a string from the device every 30 seconds. If a string is not received
within the timeout period, a loss of device communication is reported to the RMS
server.
The default value for the Device Communicating timeout is 30 seconds. If this
value works fine for your device, all you need to do is add the polling for the
device. If you want to change the timeout, set the Device Communicating timeout
for a monitored device, which will in turn call RMSSetCommunicationTimeout()
to change the default timeout. The timeout time is specified in 1/10 seconds. If
you want to disable the Device Communicating parameter, set the timeout to 0.
26
RMS NetLinx Programmer’s Guide
Getting Started
Service Mode
RMS supports a service mode where no errors will be reported. Service mode is
designed to allow a technician to work on a room without causing error reports.
For instance, if a projector needs to be replaced or serviced, RMS would report
Device Not Communicating when the technician disconnected the power cable or
communication cable. To prevent this error from being reported to RMS, put
RMS in service mode using the 'SERVICE-ON' command. When the work is
completed, exit service mode using the 'SERVICE-OFF' command.
Since service mode bypasses error reporting, it represents a security problem. For
instance, in service mode no error is reported when the projector stops
communicating even if it is being disconnected by unauthorized personnel.
Therefore, service mode does not appear as a button on a touch panel. Service
mode should be implemented in an appropriate method for the facility. These
methods may include:
A button on a protected touch panel page
A button on a protected web-based touch panel page
A switched connected to an IO port on a NetLinx system accessible
only by technicians.
A key-activated switch connected to an IO port on a NetLinx system.
Device Parameter Persistence
Monitored devices and parameters are registered with RMS the first time a
NetLinx system connects to the RMS server. These devices and parameters are
stored internally in RMS. When NetLinx connects and sends device and
parameter registration, any devices and parameters that already exists in RMS are
not overwritten. This allows the administrator to change a value, such as the lamp
life threshold of a projector, and the value will not be lost even if the NetLinx
systems disconnects and reconnects.
As a result, changes to device monitoring NetLinx code will not take affect if the
changes are made to devices or parameters that already exists in RMS. For
instance, if you change the threshold value for a parameter or delete a device or
parameter and reload the NetLinx code, the new threshold will not be used and
any deleted device or parameters will still appear in RMS.
RMS NetLinx Programmer’s Guide
27
Getting Started
To clear out all monitored devices and parameters, delete the room and then add
the room back. Deleting a room from RMS deletes all associated monitored
devices and parameters from the RMS server.
Optionally, you can delete a device or a parameter from the RMS console
provided the device is not the "System" device and the parameter is not one of its
parameters.
28
RMS NetLinx Programmer’s Guide
Custom Device Monitoring Programming
Custom Device Monitoring
Programming
The RMS SDK is made up of a series of modules and include files. The following
diagram is a visual description of the architecture of the RMSMain.axi and the
RMS support modules:
FIG. 2 Architecture of The RMSMain.axi And The RMS Support Modules
RMS NetLinx Programmer’s Guide
29
Custom Device Monitoring Programming
RMSCommon.axi
RMSCommon.axi is an included file designed to help perform many device
monitoring tasks. This file provides device-monitoring constants, functions that
generate device monitoring SEND_COMMANDs to RMS, as well as providing a
"callback" function for important device monitoring RMS events.
In order to use this include file, your program will need to define the RMS device
and a couple of functions. The include file sends commands to and creates an
event for the RMS device, vdvRMSEngine. You must create this device in your
program. In your code, the device definition needs to be defined as:
DEFINE_DEVICE
vdvRMSEngine = 33001:1:0
The virtual device number needs to be unique and not conflict with any other
virtual device defined in your program.
RMS will notify your program when it is time to register devices and parameters
and when the administrator resets a parameter from the RMS console. RMS
sends these events to your program as a string from vdvRMSEngine. The event
processing section in this include file will process these strings, parse the
parameters and call a function in your program to notify you of the event. These
functions need to be defined in your program whether you use them or not,
otherwise the compiler will generate an error since it cannot find these functions.
The two functions you need to include are:
RMSDevMonRegisterCallback()
This function is called when RMS engine module connects to the RMS server.
Since the RMS engine module does not store any information about monitored
devices and their parameters, this information must be sent to the RMS only
when the module is connected to the server. If you want to add any custom device
monitoring code, you can register your device and parameters in this function. In
your code, the function needs to be defined as:
DEFINE_FUNCTION RMSDevMonRegisterCallback()
{
}
30
RMS NetLinx Programmer’s Guide
Custom Device Monitoring Programming
RMSDevMonSetParamCallback()
The function is called when the RMS administrator chooses "Reset" for a
parameter that can be reset on the RMS console. You can determine which
parameter was reset by checking the value of dvDPS and cName. All parameters
values are sent as a string so you will need to convert it appropriately. In your
The RMS engine module will automatically register the "System" device that is
associated with the NetLinx Master, Device ID 0:1:0. RMS will automatically
register four parameters for this device. They are "System Power," "Help
Request," "Maintenance Request", and "Service Mode." In addition, the system
will monitor room communication status for each room. These parameters
require no programming on your part for registration. However, you will need to
add support for system power. RMS registers and manages this parameter for you
but you need to notify RMS when the system power is turned On or Off. You can
do this in one of four ways:
Tur n Sys t em O n:
RMSSetSystemPower(TRUE)
SEND_STRING vdvRMSEngine,'POWER=1'
PULSE[vdvRMSEngine,27]
ON[vdvCLActions,1001]
Turn System Off:
RMSSetSystemPower(FALSE)
SEND_STRING vdvRMSEngine,'POWER=0'
PULSE[vdvRMSEngine,28]
ON[vdvCLActions,1002]
The last way to inform RMS utilizes the i!-ConnectLinx device. If you add the
programming to your system to allow i-ConnectLinx to control power using the
RMS NetLinx Programmer’s Guide
31
Custom Device Monitoring Programming
standard power channels and provide feedback to i!-ConnectLinx for system
power, this information will automatically be read by RMS.
See the RMS engine module definition for details about the module and its
parameters.
Example:
//This registers the dvRelay device under the name “Rack Power”
//- called in the online event for dvRelay
RMSRegisterDevice(dvRELAY,'Rack Power','AMX','NI-3000 Relay')
//This sets the parameters for the registered device - called in
//the online event for dvRelay
This function will need to be called in two places. Call RMSRegisterDevice () in
the RMSDevMonRegisterCallback() function to make sure it is registered when
the RMS engine module connects to the RMS server. Also, call
RMSRegisterDevice () when the NetLinx-connected device reports online. This
function will automatically register the Online/Offline parameter and set this
value to Online.
The RMSRegisterDevice() function and the corresponding RMS
SEND_COMMAND that it generates will only work for devices that are
currently online. This is because RMS tracks information such as firmware
version and serial number that are only available when the device is online.
Registering Parameters
Before registering a parameter, the device with which the parameter is associated
must have been previously registered. However, if a support module RMS has
registered the device already, you do not need to re-register it. For instance, you
may want to add a parameter to the "System" device, 0:1:0. In this case, simply
register the parameter for device 0:1:0.
46
RMS NetLinx Programmer’s Guide
Custom Device Monitoring Programming
The combination of Number and String parameters types and enumeration lists
provide four unique kinds of parameters to the NetLinx program. These are:
Registering Parameters
Number Parameter Number parameters are parameters of type number with no
enumeration list. These are commonly used for values that are
programmatically available and displayed in numeric form. Examples
of number parameters are projector lamp hours and VCR run time.
String ParameterString parameters are parameters of type string with no enumeration
Enum ParameterEnum parameters are parameters of type string with an enumeration
Index ParameterIndex parameters are parameters of type number with an
list. These are commonly used for values that are programmatically
available and displayed in text form. Examples of string parameters
are help or maintenance request.
list. These are commonly used for values that are programmatically
available and displayed in text form where the text is expected to be
limited to a list. The value NetLinx sends for an enumeration
parameter needs to exist in the enumeration list. However, the
administrator will only be allowed to pick a threshold or reset value
from the enumeration list. An example of an enum parameter is the
currently selected source. The "|" character is used to separate
values in the enumeration list.
enumeration list and are similar to the Enum parameter. However,
these are commonly used for values that are programmatically
available numerically but displayed in text form where the text is
expected to be limited to a list. The value NetLinx sends for an
enumeration parameter must exist in the enumeration list. However,
the value sent from NetLinx represents the index into the
enumerated list instead of the actual value. An example of Enum
parameters is power. The value for power is often available
programmatically as a zero or a one but should be displayed as "Off"
or "On." This is accomplished by sending a value of zero or one to
RMS and providing an enumeration list of "Off|On" where the "|"
character is used to separate values in the enumeration list.
RMS NetLinx Programmer’s Guide
47
Custom Device Monitoring Programming
The include file provides four functions for registering these parameters. They
are:
RMSRegisterDeviceNumberParam(dvDPS,
cName,
slThreshold,
nThresholdCompare,
nThresholdStatus,
bCanReset,
slResetValue,
nInitialOp,
slInitial,
slMin,
slMax)
RMSRegisterDeviceIndexParam(dvDPS,
cName,
nThreshold,
nThresholdCompare,
nThresholdStatus,
bCanReset,
nResetValue,
nInitialOp,
nInitial,
cEnumList)
RMSRegisterDeviceStringParam(dvDPS,
cName,
cThreshold,
nThresholdCompare,
nThresholdStatus,
bCanReset,
cResetValue,
nInitialOp,
cInitial)
48
RMS NetLinx Programmer’s Guide
Custom Device Monitoring Programming
RMSRegisterDeviceEnumParam(dvDPS,
cName,
cThreshold,
nThresholdCompare,
nThresholdStatus,
bCanReset,
cResetValue,
nInitialOp,
cInitial,
cEnumList)
Optionally, you can register a parameter with a Unit field. The Units field will be
displayed next to the parameter value and threshold. You might want to use a
Unit field to add a "V" if you or monitoring voltage or "%" if you are monitoring
percentage. Two additional registration functions allow for the units field and can
be used in place of the above functions:
RMSRegisterDeviceNumberParamWithUnits(dvDPS,
cName,
cUnits,
slThreshold,
nThresholdCompare,
nThresholdStatus,
bCanReset,
slResetValue,
nInitialOp,
slInitial,
slMin,
slMax)
RMS NetLinx Programmer’s Guide
49
Custom Device Monitoring Programming
RMSRegisterDeviceStringParamWithUnits(dvDPS,
cName,
cUnits,
cThreshold,
nThresholdCompare,
nThresholdStatus,
bCanReset,
cResetValue,
nInitialOp,
cInitial)
This function will need to be called in two places. Call
RMSRegisterDevicexxxParam () in the RMSDevMonRegisterCallback()
function to make sure it is registered when the RMS engine module connects to
the RMS server. Also, call RMSRegisterDevicexxxParam () when the NetLinx-
connected device reports online.
The dvDPS is the device number of the device this parameter is associated with
and cName is the name of the parameter to register.
nThresholdCompare can be one of the following values:
RMS_COMP_NONE (0),
RMS_COMP_LESS_THAN (1),
RMS_COMP_LESS_THAN_EQ_TO (2),
RMS_COMP_GREATER_THAN (3),
RMS_COMP_GREATER_THAN_EQ_TO (4),
RMS_COMP_EQUAL_TO (5),
RMS_COMP_NOT_EQUAL_TO (6),
RMS_COMP_CONTAINS (7),
RMS_COMP_DOES_NOT_CONTAIN (8).
This value, along with slThreshold, nThreshold, or cThreshold, will be used to
test to see when the parameter indicates a fault as determined by the threshold
comparison changing from false to true (i.e. Value > 10).
The nThresholdStatus can be one of the following:
50
RMS NetLinx Programmer’s Guide
Custom Device Monitoring Programming
RMS_STAT_NOT_ASSIGNED (1),
RMS_STAT_HELP_REQUEST (2),
RMS_STAT_ROOM_COMM_ERR (3),
RMS_STAT_CONTROLSYSTEM_ERR (4),
RMS_STAT_MAINTENANCE (5),
RMS_STAT_EQUIPMENT_USAGE (6),
RMS_STAT_NETWORK_ERR (7),
RMS_STAT_SECURITY_ERR (8).
One of these values classifies a fault with this parameter as a Help Request,
Room Communication Error, Control System Error, Maintenance, Equipment
usage, Network Error, or Security issue.
bReset and slResetValue, nResetValue or cResetValue are used to allow the
administrator to manually reset the value. If bReset if False, then then
slResetValue, nResetValue and cResetValue are ignored.
nInitialOp and slInitial, nInitial and cInitial are used to set the value of the
parameter at the time it is registered. nInitialOp can be one of the following
values:
RMS_PARAM_SET (0),
RMS_PARAM_INC (1),
RMS_PARAM_DEC (2),
RMS_PARAM_MULTIPLY (3),
RMS_PARAM_DIVIDE (4),
RMS_PARAM_UNCHANGED (6).
This eliminates the need to send a separate set parameter messages after the
parameter is registered. These constants allow you to control whether the
supplied value is set, added to, subtracted from, multiply with, divided by the
number in the database or if you simply want the value in the database to remain
the same. slInitial, nInitial and cInitial are the value with which the operation will
be performed.
slMin, slMax and eEnumList are used to limit the administrator’s selection of the
threshold and reset values. The "|" character is used to separate values in the
RMS NetLinx Programmer’s Guide
51
Custom Device Monitoring Programming
enumeration list. For Number parameters, slMin and slMax define the range the
value is expected to have. For Index and Enum, cEnumList contains the allowed
values of the parameter.
Setting Parameter Values
You can set a parameter value any time after the RMS engine module has
connected to the RMS server. Before setting the value of a parameter, the
parameter must be registered.
When registering parameters, you can supply the initial value. Therefore, you
will not need to set the parameter explicitly when it is registered, only subsequent
changes.
The include file provides four functions for setting parameter values. They are:
Set the address of the RMS server. A port
can be specified by adding a colon (:) and a
port number to the end of the IP address or
host name. For example, you can set the
port to 10501 using this command:
'192.168.1.1:10501'.
Request the current server settings from
the module.
Set the root folder of i!-ConnectLinx for this
room. This command can be used to limit
the portion of the i!-ConnectLinx tree available to users when configuring room presets. This command is used when a single
NetLinx master is running more than one
instance of RMS.
Set device info for monitored device. DPS
must be in string form (ex: '5001:1:0').
Name, Manufacturer and Model are
optional.
Add a Number parameter. DPS must be in
string form (ex: '5001:1:0').
• >=Value - Greater Than or Equal to Value
• <=Value - Less Than or Equal to Value
• ==Value -Equal to Value
• !=Value - Not Equal to Value
• <>Value - Not Equal to Value
• >Value - Greater Than Value
• <Value - Less Than Value
• (Value) - Contains Value
• )Value( - Does Not Contain Value
56
RMS NetLinx Programmer’s Guide
NetLinx Modules
Commands and Descriptions (Cont.)
Status can be any of the following:
Reset can be any reset value or 'NO RESET'
for no reset.
Initial Value can be one of the following:
slMin and slMax can be any number from -2147483647 to 2147483647. slMax must be
greater than slMin. Set slMax and slMin to zero or omit the values to not impose a range.
Add a String parameter. See above for
description of all arguments.
Add an Index parameter. See above for
description of all arguments. Enum List is a
list of possible values separated by the '|'
character.
Add an Enum parameter. See above for
description of all arguments. Enum List is a
list of possible values separated by the '|'
character.
Add a Number parameter. See above for
description of all arguments. Units is a text
string of the units to append to the
parameter value when displayed.
Add a String parameter. See above for
description of all arguments. Units is a text
string of the units to append to the
parameter value when displayed.
Add an Index parameter. See above for
description of all arguments. Units is a text
string of the units to append to the
parameter value when displayed.
Add an Enum parameter. See above for
description of all arguments. Units is a text
string of the units to append to the
parameter value when displayed.
Set a parameter value. DPS must be in
string form (ex: '5001:1:0').
• Value - Set Value
• +=Value - Increment by Value
• -=Value - Decrement by Value
• *=Value - Multiply by Value
• \=Value - Divide by Value
• /=Value - Divide by Value
• RESET - reset the value
• NOCHANGE - do not change the value.
Send a help request.
Send a maintenance request.
Extend the current appointment by Minutes.
Get the appointment list for Date.
Get the appointment count for Month and
Year.
Set Date format European format:
Day/Month/Year
Set Date format US format:
Month/Day/Year
Set Time format to 12 hour format:
[01-12]:[00-59] [AM,PM]
Set Time format to 24-hour (military)
format: [00-23]:[00-59]
58
RMS NetLinx Programmer’s Guide
Commands and Descriptions (Cont.)
'DEBUG-CONNECT'
'DEBUG-ON’
'DEBUG-OFF’
'VERSION’
'SERVICE-ON’
'SERVICE-OFF’
'ANSWERQuestionID,Flags,Answer'
'IGNORE SERVER TIME UPDATE'
Turn on debug. (including messages
related to connection to RMS server)
Turn on general debug. (no connection
messages)
Turn off debug. (Default)
Send version information to master debug
port (master messaging)
Turn on service mode. While in service
mode, no errors will be reported.
Turn off service mode. (Default)
Provide an answer to a question.
QuestionID and Flags should be the values
supplied from the QUESTION- string. The
Answer is a text string.
Normally, NetLinx receives a time update
from the RMS server. This command tells
the module to ignore these time updates.
NetLinx Modules
RMS NetLinx Programmer’s Guide
59
NetLinx Modules
Strings
RMSEngineMod listens for the following string from the vdvRMSEngine device.
Strings and Descriptions
'POWER=[Power State]'
Set the system power state. [PowerState] should be 0
for off and 1 for on.
Example: 'POWER=1'
RMSEngineMod sends the following strings to the vdvRMSEngine device.
Strings and Descriptions
'REGISTER'
'SET PARAM[DPS],[Name],[Value]'
'ROOM NAME-[Name]
'ROOM LOCATION[Location]'
'ROOM OWNER-[Owner]'
'WEB SERVER[HostPort]'
'WEB ROOT[Directory]'
'CHANGE-[Date1,Date2,
Date3,...]'
"'APPT COUNT[Month],[Year],
'[Binary Array]"
Signifies that the RMS Engine module has
connected to the RMS server. Upon receiving this
string, it is safe to register devices and parameters.
Set a parameter value in NetLinx. DPS will be in
string form (ex: '5001:1:0'). This string is sent when
the administrator manually resets a parameter from
the RMS console.
The name of the room as defined in the RMS server.
The location of the room as defined in the RMS
server.
The owner of the room as defined in the RMS server.
The host/port of the web server where RMS is
running.
The root directory of RMS on the web server where
RMS is running.
A message indicating that appointments have been
changed for the following dates. Dates are comma
separated and in the format MM/DD/YYYY.
The appointment count for Month and Year. Binary
Array is a character array that contains the counts for
each day as binary value where the first element in
the array is for the first day of Month.
The appointment list summary for Date. Total Appt
provides the total number of appointments for Date.
Binary Appt list is a character array with 48 entries, 1
for each ½ hour time slot for Date. The value in index
1 is the appointment index of the appointment that
occupies the first ½ hour time slot
(12:00am - 12:30 am).
The appointment data for an individual appointment.
Index is a value between 1 and Total Appt form the
'APPT LIST" string. The Binary Data is a
VARIABLE_TO_STRING encoded copy of an
appointment structure. The appointment structure is
defined as _sRMSAppointment in the include file.
This binary data can be passed to the
RMSDecodeAppointmentString() function, defined in
the include file, to convert the data to an appointment
structure.
A message from the RMS console. Flags are the
message flag and Message is the text of the
message. Currently, there are no Flags defined.
A message indicating the current appointment could
not be extended due to a scheduling conflict.
The current RMS server address used by the
module. This is sent in response to a '/SERVER'
command.
The product ID, Product name, and version of the
RMS server this module is connected to. This string
is sent upon connection to the RMS server.
A question sent from the RMS server. The ID and
Flags are used to send the response. A question and
up to 4 answers may be included. All answers are
optional.
A virtual device for communicating to RMSEngineMod
RMSEngineMod module
vdvKB:
The virtual device of the KeyboardMod module for editing text.
dvKB:
An array of touch panel base devices implementing RMSUIMod.
dvTP:
An array of main touch panel devices implementing RMSUIMod. If
any of these panels are G3 panels, make sure the first panel in this array
is a G3 panel. This will instruct the module to use G3 compatible
SEND_COMMAND's.
dvTPWelcome:
An array of welcome touch panel devices implementing RMSUIMod.
If any of these panels are G3 panels, make sure the first panel in this
array is a G3 panel. This will instruct the module to use G3 compatible
SEND_COMMAND's.
All channel and variable text numbers are defined inside the module. If you need
to change them, edit the module and re-compile the module and your program.
64
RMS NetLinx Programmer’s Guide
NetLinx Modules
Touch Panel Pages
RMSUIMod requires the following touch panel pages for dvTP:
mtgmMain
mtmgMtgControl
mtmgViewSchedule
KBKeyboard
RMSUIMod requires the following touch panel pop-up pages for dvTp:
Touch Panel Pop-up Pages
Popup PagePopup Group
mtgmMeetingEndWarningN/A
mtgmMeetingExtendWarningN/A
mtgmHelpResponseN/A
mtgmAppointmentDetailsN/A
mtgmViewSchedule1mtgmViewSchedule
mtgmViewSchedule3mtgmViewSchedule
mtgmMonthSelectmtgmMonthYear
mtgmYearSelectmtgmMonthYear
mtgmHelpMessageKBClients
mtgmMaintenanceMessageKBClients
KBShiftN/A
mtgmHelpQuestionN/A
RMS NetLinx Programmer’s Guide
65
NetLinx Modules
RMSUIMod requires the following touch panel pages for dvTPWelcome:
mtgmWelcomePage
RMSUIMod requires the following touch panel pop-up pages for dvTp:
Touch Panel Pop-up Pages
Popup PagePopup Group
mtgmAppointmentDetails
mtgmViewSchedule1
mtgmViewSchedule3
The RMS Welcome Screen (320x240).tpd file implements the
welcome functionality in multiple pages without popups. See this file
for more details.
N/A
mtgmViewSchedule
mtgmViewSchedule
RMSWelcomeOnlyUIMod Module
Commands
Module Definition
Touch Panel Pages
Commands
RMSWelcomeOnlyUIMod listens for the following commands from the
vdvRMSEngine device.
Commands and Descriptions
'DFORMAT-DAY/MONTH'
'DFORMAT-MONTH/DAY'
'TFORMAT-12 HOUR'
'TFORMAT-24 HOUR'
'DEBUG-ON'
'DEBUG-OFF'
'VERSION'
66
Set Date format European format: Day/Month/Year.
Set Date format US format: Month/Day/Year.
Set Time format to 12 hour format: [01-12]:[00-59]
[AM,PM].
Set Time format to 24-hour (military) format: [00-23]:[0059].
Turn on debug.
Turn off debug. (Default).
Send version information to master debug port (master
messaging).
A virtual device for communicating to RMSEngineMod module.
dvTPWelcome:
An array of welcome touch panel devices implementing RMSUIMod.
If any of these panels are G3 panels, make sure the first panel in this
array is a G3 panel. This will instruct the module to use G3 compatible
SEND_COMMAND's.
All channel and variable text numbers are defined inside the module. If you need
to change them, edit the module and re-compile the module and your program.
Touch Panel Pages
RMSWelcomeOnlyUIMod requires the following touch panel pages for
dvTPWelcome:
mtgmWelcomePage
RMSWelcomeOnlyUIMod requires the following touch panel pop-up pages for
dvTp:
Touch Panel Pop-up Pages
Popup PagePopup Group
mtgmAppointmentDetails
mtgmViewSchedule1
mtgmViewSchedule3
The RMS Welcome Screen (320x240).tpd file implements the
welcome functionality in multiple pages without popups. See this file
for more details.
RMS NetLinx Programmer’s Guide
N/A
mtgmViewSchedule
mtgmViewSchedule
67
NetLinx Modules
RMSHelpUIMod Module
Commands
Module Definition
Touch Panel Pages
Commands
RMSHelpUIMod listens for the following commands from the vdvRMSEngine
device.
Commands and Descriptions
'DFORMAT-DAY/ MONTH'
'DFORMAT-MONTH/ DAY'
'TFORMAT-12 HOUR'
[AM,PM]
'TFORMAT-24 HOUR'
[00-23]:[00-59]
'DEBUG-ON'
'DEBUG-OFF'
'VERSION'
Set Date format European format: Day/Month/Year
Set Date format US format: Month/Day/Year
Set Time format to 12 hour format: [01-12]:[00-59]
Set Time format to 24-hour (military) format:
Turn on debug.
Turn off debug. (Default)
Send version information to master debug port
(mastermessaging)
A virtual device for communicating to RMSEngineMod.
vdvKB:
The virtual device of the KeyboardMod module for editing text.
dvKB:
An array of touch panel base devices implementing RMSHelpUIMod.
dvTP:
An array of main touch panel devices implementing RMSHelpUIMod.
If any panels are G3 panels, make sure the first panel in this array is a
G3 panel. This will instruct the module to use G3 compatible
SEND_COMMAND's.
68
RMS NetLinx Programmer’s Guide
NetLinx Modules
All channel and variable text numbers are defined inside the module. If you need
to change them, edit the module and re-compile the module and your program.
Touch Panel Pages
RMSHelpUIMod requires the following touch panel pages for dvTP:
mtgmMain
KBKeyboard
RMSHelpUIMod requires the following touch panel pop-up pages for dvTp:
Touch Panel Pop-up Pages
Popup PagePopup Group
mtgmHelpResponse
mtgmHelpQuestion
mtgmHelpMessage
mtgmMaintenanceMessage
KBShift
N/A
N/A
KBClients
KBClients
N/A
RMS NetLinx Programmer’s Guide
69
NetLinx Modules
RMSNLDeviceMod Module
Commands
Module Definition
Commands
RMSNLDeviceMod listens for the following commands from the
A virtual device for communicating to RMSEngineMod module.
Send version information to master debug port (master
messaging)
Touch Panel Pages
This module requires no pages.
70
RMS NetLinx Programmer’s Guide
NetLinx Modules
RMSProjectorMod Module
Commands
Strings
Channels
Module Definition
Commands
RMSProjectorMod listens for the following commands from the vdvRMSEngine
device.
Commands and Descriptions
'DEV INFO[DPS],[Name],[Man],[Model]'
'DEV NAME-[DPS],[Name]'
'COMM TO-[DPS],[Timeout]'
'DEV PWR-[DPS],[State]'
'LAMP HOURS-[DPS],[Value]'
'POWER FAIL ON-[DPS]'
'POWER FAIL OFF-[DPS]'
'VERSION'
Set device information for device monitoring.
DPS must be in string form (ex: '5001:1:0').
Set device name for device monitoring. DPS
must be in string form (ex: '5001:1:0').
Set the device communication timeout to
Timeout. Timeout is in 1/10-second
increments. Sending a value of zero will
disable the device communication timeout
and the registration of the device
communicating parameter.
Set the device power state. DPS must be in
string form (ex: '5001:1:0'). State must be 1
or 0.
Set the projector lamp hours. DPS must be in
string form (ex: '5001:1:0').
Set power failure detection on. DPS must be
in string form (ex: '5001:1:0').
Set power failure detection off. DPS must be
in string form (ex: '5001:1:0').
Send version information to master debug
port (master messaging)
RMS NetLinx Programmer’s Guide
71
NetLinx Modules
Strings
RMSProjectorMod listens for the following strings from the vdvProjModule
device.
Strings and Descriptions
'POWER=[Power State]'
'LAMPTIME=[Value]'
'MODEL=[Model]'
'MANUFACTURER=[Manufacturer]'
Set the system power state. [PowerState]
should be 0 for off and 1 for on.
Example: 'POWER=1'
Set the projector lamp hours.
Example: 'LAMPTIME=200'
Set the model number.
Set the manufacturer name.
Any string received from the physical device, dvProj, is an indication that the
device is communicating. As long as a string is received within the period set by
the communication timeout command, the module will notify RMS that the
device is communicating. See the communication timeout command for more
details.
Channels
The module watches for these channels on the vdvProjModule device.
A virtual device for communicating to RMSProjectorMod. This can be
the same virtual device used to communicate with an InConcert
module or a physical projector. If controlling the projector or display
using an IR device, pass the physical device to this parameter.
dvProj
A physical projector or socket device to which the projector is
connected.
vdvRMSEngine
A virtual device for communicating to RMSEngineMod module.
Touch Panel Pages
This module requires no pages.
NetLinx Modules
RMS NetLinx Programmer’s Guide
73
NetLinx Modules
RMSTransportMod Module
Commands
Strings
Channels
Module Definition
Commands
RMSTransportMod listens for the following commands from the
vdvRMSEngine device.
Commands and Descriptions
'DEV INFO[DPS],[Name],[Man],
[Model]'
'DEV NAME-[DPS],[Name]'
'COMM TO-[DPS],[Timeout]'
'DEV PWR-[DPS],[State]'
'XPORT STATE[DPS],[State]'
'POWER FAIL ON-[DPS]'
'POWER FAIL OFF-[DPS]'
'VERSION’
Set device information for device monitoring.
DPS must be in string form (ex: '5001:1:0').
Set device name for device monitoring. DPS
must be in string form (ex: '5001:1:0').
Set the device communication timeout to
Timeout. Timeout is in 1/10-second increments.
Sending a value of zero will disable the device
communication timeout and the registration of
the device communicating parameter.
Set the device power state. DPS must be in
string form (ex: '5001:1:0'). State must be 1 or
0.
Set the transport state. DPS must be in string
form (ex: '5001:1:0'). State should be a value 18, Play=1, Stop=2, etc…
Set power failure detection on. DPS must be in
string form (ex: '5001:1:0').
Set power failure detection off. DPS must be in
string form (ex: '5001:1:0').
Send version information to master debug port
(master messaging)
74
RMS NetLinx Programmer’s Guide
NetLinx Modules
Strings
RMSTransportMod listens for the following strings from the vdvVCRModule
device.
Strings and Descriptions
'POWER=[Power State]'
'TRANSPORT=[Transport State]'
'MODEL=[Model]'
'MANUFACTURER=[Manufacturer]'
Set the system power state. [PowerState]
should be 0 for off and 1 for on.
Example: 'POWER=1'
Set the system power state. Transport
State can be 2 for Stop or any other value
for a non-stopped condition. Any value
other than 2 will enable the run-time
counter.
Set the model number.
Set the manufacturer name.
Any string received from the physical device, dvVCR, is an indication that the
device is communicating. As long as a string is received within the period set by
the communication timeout command, the module will notify RMS that the
device is communicating. See the communication timeout command for more
details.
RMS NetLinx Programmer’s Guide
75
NetLinx Modules
Channels
The module watches for these channels on the vdvVCRModule device.
9 - Toggle System Power State
27 - Set system power to ON
28 - Set system power to OFF
254 - Power failure.
255 - Power Status.
The module watches for these channels on the dvVCR device.
A virtual device for communicating to RMSTransportMod. This can be
the same virtual device used to communicate with an InConcert
module or the physical device. If using a SYSTEM_CALL for this
device, pass the physical device to this parameter.
dvVCR
A physical device or socket device to which the transport device is
connected.
vdvRMSEngine
A virtual device for communicating to RMSEngineMod module.
76
RMS NetLinx Programmer’s Guide
Touch Panel Pages
This module requires no pages.
RMSBasicDeviceMod Module
Commands
Strings
Channels
Module Definition
Commands
RMSBasicDeviceMod listens for the following commands from the
vdvRMSEngine device.
Commands and Descriptions
'DEV INFO[DPS],[Name],[Man]
,[Model]'
'DEV NAME[DPS],[Name]'
'COMM TO[DPS],[Timeout]'
'DEV PWR[DPS],[State]'
'POWER FAIL ON[DPS]'
'POWER FAIL OFF[DPS]'
'VERSION'
Set device information for device monitoring. DPS must be
in string form (ex: '5001:1:0').
Set device name for device monitoring. DPS must be in
string form (ex: '5001:1:0').
Set the device communication timeout to Timeout.
Timeout is in 1/10-second increments. Sending a value of
zero will disable the device communication timeout and
the registration of the device communicating parameter.
Set the device power state. DPS must be in string form
(ex: '5001:1:0'). State must be 1 or 0.
Set power failure detection on. DPS must be in string form
(ex: '5001:1:0').
Set power failure detection off. DPS must be in string form
(ex: '5001:1:0').
Send version information to master debug port (master
messaging)
NetLinx Modules
RMS NetLinx Programmer’s Guide
77
NetLinx Modules
Strings
RMSBasicDeviceMod listens for the following strings from the vdvModule
device.
Strings and Descriptions
'POWER=[Power State]'
'MODEL=[Model]'
'MANUFACTURER=[Manufacturer]'
Set the system power state. [PowerState]
should be 0 for off and 1 for on.
Example: 'POWER=1'
Set the model number.
Set the manufacturer name.
Any string received from the physical device, dvDevice, is an indication that the
device is communicating. As long as a string is received within the period set by
the communication timeout command, the module will notify RMS that the
device is communicating. See the communication timeout command for more
details.
Channels
The module watches for these channels on the vdvModule device.
A virtual device for communicating to RMSBasicDeviceMod. This can
be the same virtual device used to communicate with an InConcert
module or a physical device. If controlling the device using an IR
device, pass the physical device to this parameter.
dvDevice
A physical device or socket device to which the virtual device is
connected.
vdvRMSEngine
A virtual device for communicating to RMSEngineMod module.
Touch Panel Pages
This module requires no pages.
RMSSldProjMod Module
NetLinx Modules
Commands
Channels
Module Definition
Commands
RMSSldProjMod listens for the following commands from the vdvRMSEngine
device.
Commands and Descriptions
'DEV INFO-[DPS],[Name],
[Man],[Model]'
'DEV NAME-[DPS],[Name]'
'VERSION'
RMS NetLinx Programmer’s Guide
Set device information for device monitoring. DPS
must be in string form (ex: '5001:1:0').
Set device name for device monitoring. DPS must
be in string form (ex: '5001:1:0').
Send version information to master debug port
(master messaging).
79
NetLinx Modules
Channels
The module watches for these channels on the dvSldProj device.
Sets the room name, room location, and room
owner to be displayed in the action list file.
list file.
Sets the room location to be displayed in the action
list file.
Sets the room owner to be displayed in the action
list file.
See i!-ConnectLinxStdFunctionList.xls for a
complete list of macro names.
used for "AND" and ‘-‘ is used for "THROUGH".
Adds a folder to the action list. The parent specifies
which parent folder the new folder is added to. If
parent is not supplied, this folder is added to the
root of the action list.
Adds an action. The ID and Action are required.
The Help String appears in the action list file to
help the user determine this action’s function more
clearly. The Folder is the folder in which this
action is added to, and must have been
previously created. If the folder is not supplied, the
action is added to the root of the action list.
Adds a number argument to Action. The Arg
Name (Argument Name) is required. The Min and
Max define the limits for this argument in the range
–32767 to 32767. The Step defines the minimum
step between increments/decrements. The
Default value defines the initial value this
argument is set to when the user edits this
argument.
92
RMS NetLinx Programmer’s Guide
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.