Technical information
Programming - Asset Management
62
RMS Enterprise - NetLinx Programmer’s Guide
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. This
method accepts the data structure RmsAssetParameter as an argument
Arguments: see method signature below
Returns: 1 if call was successful; 0 if call was unsuccessful
Syntax:
DEFINE_FUNCTION CHAR RmsAssetParameterEnqueue(CHAR assetClientKey[],
RmsAssetParameter parameter)
{
STACK_VAR CHAR rmsCommand[RMS_MAX_CMD_LEN];
// ensure an asset client key has been provided
IF(assetClientKey == '')
{
SEND_STRING 0, '>>>> RMS API ERROR <RmsAssetParameterEnqueue> :: missing asset client key';
RETURN FALSE;
}
// ensure a parameter key has been provided
IF(parameter.key == '')
{
SEND_STRING 0, '>>>> RMS API ERROR <RmsAssetParameterEnqueue> :: missing parameter key';
RETURN FALSE;
}
// ensure a parameter data type is assigned
IF(parameter.dataType == '')
parameter.dataType = RMS_ASSET_PARAM_DATA_TYPE_STRING;
// ensure a parameter reporting type is assigned
IF(parameter.reportingType == '')
parameter.reportingType = RMS_ASSET_PARAM_TYPE_NONE;
// enqueue asset control method for registration
rmsCommand = RmsPackCmdHeader
('ASSET.PARAM');
rmsCommand = RmsPackCmdParam(rmsCommand,assetClientKey);
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.key);
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.name);
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.description);
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.dataType);
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.reportingType);
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.initialValue);
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.units);
rmsCommand = RmsPackCmdParam(rmsCommand,RmsBooleanString(parameter.allowReset
));
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.resetValue);
rmsCommand = RmsPackCmdParam(rmsCommand,ITOA(parameter.minimumValue));
IF(parameter.maximumValue > parameter.minimumValue)
{
// only register a max value if it is greater than the minimum value
rmsCommand = RmsPackCmdParam(rmsCommand,ITOA(parameter.maximumValue));
}
ELSE
{
// undefined max value
rmsCommand = RmsPackCmdParam(rmsCommand,'');
}
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.enumeration);
rmsCommand = RmsPackCmdParam(rmsCommand,RmsBooleanString(parameter.trackChanges));
rmsCommand = RmsPackCmdParam(rmsCommand,parameter.bargraphKey);
rmsCommand = RmsPackCmdParam(rmsCommand
,RmsBooleanString(parameter.stockParam));
SEND_COMMAND vdvRMS, rmsCommand;
RETURN TRUE;
}