IAS Ancillary Control Equipment Cluster
This chapter describes the IAS Ancillary Control Equipment (ACE) cluster, which provides a control interface to a CIE (Control and Indicating Equipment) device in an IAS (Intruder Alarm System).
The IAS ACE cluster has a Cluster ID of 0x0501.
Overview
The IAS ACE cluster provides a control interface to a CIE (Control and Indicating Equipment) device in an IAS (Intruder Alarm System). For example, it allows a remote control unit to be used to configure the IAS via a CIE device. The server side of the cluster is implemented on the CIE device and the client side is implemented on the remote device.
To use the functionality of this cluster, you must include the file IASACE.h in your application and enable the cluster by defining CLD_IASACE in the zcl_options.h file.
The inclusion of the client or server software must be pre-defined in the application’s compile-time options (in addition, if the cluster is to reside on a custom endpoint then the role of client or server must also be specified when creating the cluster instance).
The compile-time options for the IAS ACE cluster are fully detailed in Section 38.9.
Parent topic:IAS Ancillary Control Equipment Cluster
IAS ACE Structure and Attributes
The structure definition for the IAS ACE cluster is shown below.
typedef struct
{
zuint16 u16ClusterRevision;
} tsCLD_IASACE;
where u16ClusterRevision is a mandatory attribute that specifies the revision of the cluster specification on which this cluster instance is based. The cluster specification in the ZCL r6 corresponds to a cluster revision of 1. The value is incremented by one for each subsequent revision of the cluster specification. This attribute is also described in Section 2.4.
Parent topic:IAS Ancillary Control Equipment Cluster
Table and Parameters
The IAS ACE cluster server hosts the following table and sets of parameters:
Zone table: The Zone table contains an entry for each enrolled zone. Each entry stores the identifier and type of the zone, as well as the IEEE/MAC address of the device which hosts the zone (see Section 38.7.2).
Zone parameters: This set of parameters contains certain zone properties including the zone status, the zone name/label and the zone arm/disarm code (see Section 38.7.3)
Panel parameters: This set of parameters contains certain status information about the display panel and alarm (see Section 38.7.4).
Parent topic:IAS Ancillary Control Equipment Cluster
Command Summary
The IAS ACE cluster includes a number of commands that can be sent by the application on the client or server. These commands are summarised below.
Table 50 lists the commands that can be issued on the client.
Table 51 lists the commands that can be issued on the server.
Functions are provided to send these commands - these functions are indicated in the descriptions below and detailed in Section 38.6.
IAS ACE Cluster Commands from Client to Server
Command |
Description and Function |
|---|---|
Arm |
Instructs the server to put all or certain enrolled zones into the ‘armed’ state or put all of them into the ‘disarmed’ state. |
Bypass |
Instructs the server to take one or more specified zones out of the system for the current activation (these zones are reinstated the next time the system is dis-armed and to exclude them again the next time the system is armed, the Bypass command must be re-sent before sending the Arm command). |
Emergency |
Instructs the server to put the alarm in the ‘Emergency’ state. |
Fire |
Instructs the server to put the alarm in the ‘Fire’ state. |
Panic |
Instructs the server to put the alarm in the ‘Panic’ state. |
Get Zone ID Map |
Requests the Zone IDs that have been allocated to zones. |
Get Zone Information |
Requests information on a specified zone. |
Get Panel Status |
Requests the current status of the (display) panel. |
Get Bypassed Zone List |
Requests a list of the currently bypassed zones. |
Get Zone Status |
Requests a list of either all zones with their status or those zones with a particular status (that is, all zones with the b16ZoneStatus attribute of the IAS Zone cluster having a certain value). eCLD_IASACE_GetZoneStatusSend() |
IAS ACE Cluster Commands from Server to Client
Command |
Description and Function |
|---|---|
Set Bypassed Zone List |
Informs the client which zones are currently bypassed and can be sent in response to a Bypassed Zone List command, Get eCLD_IASACE_SetBypassedZoneListSend() |
Zone Status Changed |
Informs the client that the status (value of the b16ZoneStatus attribute of the IAS Zone cluster) of a particular zone has changed. |
Panel Status Changed |
Informs the client that the status of the (display) panel has changed. eCLD_IASACE_PanelStatusChanged() |
Parent topic:IAS Ancillary Control Equipment Cluster
IAS ACE Events
The IAS ACE cluster has its own events that are handled through the callback mechanism outlined in Chapter 3. If a device uses the IAS ACE cluster then IAS ACE event handling must be included in the callback function for the associated endpoint, where this callback function is registered through the relevant endpoint registration function (for example, through eHA_RegisterIASCIEEndPoint() for a CIE device). The relevant callback function will then be invoked when an IAS ACE event occurs.
For an IAS ACE event, the eEventType field of the tsZCL_CallBackEvent structure is set to E_ZCL_CBET_CLUSTER_CUSTOM. This event structure also contains an element sClusterCustomMessage, which is itself a structure containing a field pvCustomData. This field is a pointer to the following tsCLD_IASACECallBackMessage structure:
typedef struct
{
uint8 u8CommandId;
union
{
tsCLD_IASACE_ArmPayload *psArmPayload;
tsCLD_IASACE_BypassPayload *psBypassPayload;
tsCLD_IASACE_GetZoneInfoPayload *psGetZoneInfoPayload;
tsCLD_IASACE_GetZoneStatusPayload *psGetZoneStatusPayload;
tsCLD_IASACE_ArmRespPayload *psArmRespPayload;
tsCLD_IASACE_GetZoneIDMapRespPayload *psGetZoneIDMapRespPayload;
tsCLD_IASACE_GetZoneInfoRespPayload *psGetZoneInfoRespPayload;
tsCLD_IASACE_ZoneStatusChangedPayload *psZoneStatusChangedPayload;
tsCLD_IASACE_PanelStatusChangedOrGetPanelStatusRespPayload
*psPanelStatusChangedOrGetPanelStatusRespPayload;
tsCLD_IASACE_SetBypassedZoneListPayload *psSetBypassedZoneListPayload;
tsCLD_IASACE_BypassRespPayload *psBypassRespPayload;
tsCLD_IASACE_GetZoneStatusRespPayload *psGetZoneStatusRespPayload;
} uMessage;
} tsCLD_IASACECallBackMessage;
When an IAS ACE event occurs, one of twelve command types could have been received. The relevant command type is specified through the u8CommandId field of the tsCLD_IASACECallBackMessage structure. The possible command/event types are detailed in Table 52 below (for command descriptions, refer to Section 38.4).
In the case where an IAS Arm or Bypass command has been received and results in a change to a Zone parameter on the cluster server (e.g. an update of the zone status u8ZoneStatusFlag), a second event will be generated before any response is sent. This is a ‘cluster update’ event for which the eEventType field of the tsZCL_CallBackEvent structure is set to E_ZCL_CBET_CLUSTER_UPDATE. This prompts the application to perform any required actions such as saving persistent data and refreshing a display.
u8CommandId Enumeration |
Description |
|---|---|
Server Events |
|
E_CLD_IASACE_CMD_ARM |
An IAS ACE Arm command has been received by the server |
E_CLD_IASACE_CMD_BYPASS |
An IAS ACE Bypass command has been received by the server |
E_CLD_IASACE_CMD_EMERGENCY |
An IAS ACE Emergency command has been received by the server |
E_CLD_IASACE_CMD_FIRE |
An IAS ACE Fire command has been received by the server |
E_CLD_IASACE_CMD_PANIC |
An IAS ACE Panic command has been received by the server |
E_CLD_IASACE_CMD_GET_ZONE_ID_MAP |
An IAS ACE Get Zone ID Map command has been received by the server |
E_CLD_IASACE_CMD_GET_ZONE_INFO |
An IAS ACE Get Zone Information command has been received by the server |
E_CLD_IASACE_CMD_GET_PANEL_STATUS |
An IAS ACE Get Panel Status command has been received by the server |
E_CLD_IASACE_CMD_GET_BYPASSED_ZONE_LIST |
An IAS ACE Get Bypassed Zone List command has been received by the server |
E_CLD_IASACE_CMD_GET_ZONE_STATUS |
An IAS ACE Get Zone Status command has been received by the server |
Client Events |
|
E_CLD_IASACE_CMD_ARM_RESP |
An IAS ACE Arm Response command has been received by the client |
E_CLD_IASACE_CMD_GET_ZONE_ID_MAP_RESP |
An IAS ACE Get Zone ID Map Response command has been received by the client |
E_CLD_IASACE_CMD_GET_ZONE_INFO_RESP |
An IAS ACE Get Zone Information Response command has been received by the client |
E_CLD_IASACE_CMD_ZONE_STATUS_CHANGED |
An IAS ACE Zone Status Changed command has been received by the client |
E_CLD_IASACE_CMD_PANEL_STATUS_CHANGED |
An IAS ACE Panel Status Changed command has been received by the client |
E_CLD_IASACE_CMD_GET_PANEL_STATUS_RESP |
An IAS ACE Get Panel Status Response command has been received by the client |
E_CLD_IASACE_CMD_SET_BY-PASSED_ZONE_LIST |
An IAS ACE Set Bypassed Zone List command has been received by the client |
E_CLD_IASACE_CMD_BYPASS_RESP |
An IAS ACE Bypass Response command has been received by the client |
E_CLD_IASACE_CMD_GET_ZONE_STATUS_RESP |
An IAS ACE Get Zone Status Response command has been received by the client |
Parent topic:IAS Ancillary Control Equipment Cluster
Functions
The following IAS ACE cluster functions are provided in the NXP implementation of the ZCL:
eCLD_IASACECreateIASACE
teZCL_Status eCLD_IASACECreateIASACE(
tsZCL_ClusterInstance *psClusterInstance,
bool_t bIsServer,
tsZCL_ClusterDefinition *psClusterDefinition,
void *pvEndPointSharedStructPtr,
tsCLD_IASACECustomDataStructure
*psCustomDataStructure);
Description
This function creates an instance of the IAS ACE cluster on an endpoint. The cluster instance is created on the endpoint which is associated with the supplied tsZCL_ClusterInstance structure and can act as a server or a client, as specified.
The function should only be called when setting up a custom endpoint containing one or more selected clusters (rather than the whole set of clusters supported by a standard ZigBee device). This function will create an IAS ACE cluster instance on the endpoint, but instances of other clusters may also be created on the same endpoint by calling their corresponding creation functions.
Note: This function must not be called for an endpoint on which a standard ZigBee device is used. In this case, the device and its supported clusters must be registered on the endpoint using the relevant device registration function.
When used, this function must be called after the stack has been started and after the ZCL has been initialized.
Parameters
psClusterInstance: Pointer to structure containing information about the cluster instance to be created (see Section 6.1.16). This structure is updated by the function by initializing individual structure fields.
bIsServer: Type of cluster instance (server or client) to be created: TRUE - server, FALSE - client
psClusterDefinition: Pointer to structure indicating the type of cluster to be created (see Section 6.1.2). In this case, this structure must contain the details of the IAS ACE cluster.
pvEndPointSharedStructPtr: Set this pointer to NULL for this cluster
psCustomDataStructure: Pointer to a structure containing the storage for internal functions of the cluster (see Section 38.7.1)
Returns
E_ZCL_SUCCESS
E_ZCL_FAIL
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_INVALID_VALUE
Parent topic:Functions
eCLD_IASACEAddZoneEntry
teZCL_CommandStatus eCLD_IASACEAddZoneEntry(
uint8 u8SourceEndPointId,
uint16 u16ZoneType,
uint64 u64IeeeAddress,
uint8 *pu8ZoneID);
Description
This function can be used on an IAS ACE cluster server to create an entry in the local Zone table - that is, to add the details of a zone to the table after receiving a Zone Enrollment Request (and before sending a Zone Enrollment Response).
The details of the zone are provided in the function parameters. The function checks that the supplied pointer to the Zone ID is not NULL and that the supplied IEEE address is valid. The function can then add the zone details to the Zone table, provided that there is a free entry in the table.
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
u16ZoneType: Value indicating the type of zone to be added to the table (for the possible values, refer to the description of the attribute
e``16ZoneTypeof the IAS Zone cluster in Section 37.2)u64IeeeAddress: IEEE address of the device which hosts the zone
pu8ZoneID: Pointer to an identifier of the zone to be added to the table
Returns
E_ZCL_CMDS_SUCCESS (zone successfully added to Zone table)
E_ZCL_CMDS_FAILURE (cluster instance not found)
E_ZCL_CMDS_INVALID_FIELD (pointer to Zone ID is NULL)
E_ZCL_CMDS_INVALID_VALUE (IEEE address is invalid)
E_ZCL_CMDS_INSUFFICIENT_SPACE (no free entry in Zone table)
Parent topic:Functions
eCLD_IASACERemoveZoneEntry
teZCL_CommandStatus eCLD_IASACERemoveZoneEntry(
uint8 u8SourceEndPointId,
uint8 u8ZoneID,
uint64 *pu64IeeeAddress);
Description
This function can be used on an IAS ACE cluster server to remove an existing entry from the local Zone table - that is, to delete the details of a zone in the table and release the table entry for re-use. Thus, this function can be used to unenroll a zone.
The zone to be removed is specified by means of the Zone ID. The function checks that the supplied pointer to a location to receive the IEEE address is not NULL. The function then searches for the relevant table entry using the supplied Zone ID and, if found, returns its IEEE address via the supplied location and frees the table entry by setting the IEEE address in the table entry to zero. The returned IEEE address can be used by a (local) CIE device application to send a request to the relevant Zone device to set its IAS Zone cluster attribute u64IASCIEAddress to all zeros (writing to remote attributes is described in Section 2.3.3.1).
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
u8ZoneID: Zone ID of zone to be removed from table
pu64IeeeAddress: Pointer to location to receive the IEEE address found in the table entry to be removed
Returns
E_ZCL_CMDS_SUCCESS (zone successfully removed from Zone table)
E_ZCL_CMDS_FAILURE (cluster instance not found)
E_ZCL_CMDS_INVALID_FIELD (pointer to IEEE address location is NULL)
E_ZCL_CMDS_NOT_FOUND (entry with specified Zone ID not found in table)
Parent topic:Functions
eCLD_IASACEGetZoneTableEntry
teZCL_CommandStatus eCLD_IASACEGetZoneTableEntry(
uint8 u8SourceEndPointId,
uint8 u8ZoneID,
tsCLD_IASACE_ZoneTable **ppsZoneTable);
Description
This function can be used on an IAS ACE cluster server to obtain the details of a specified zone from the local Zone table.
The zone of interest is specified by means of its Zone ID. The function searches for the relevant table entry using the supplied Zone ID and, if found, returns the zone information from the table entry via the supplied structure (see Section 38.7.2).
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
u8ZoneID: Zone ID of zone for which details required from table
ppsZoneTable: Pointer to a pointer to a structure to receive obtained zone information (see Section 38.7.2)
Returns
E_ZCL_CMDS_SUCCESS (zone details successfully obtained from Zone table)
E_ZCL_CMDS_FAILURE (cluster instance not found)
E_ZCL_CMDS_NOT_FOUND (entry with specified Zone ID not found in table)
Parent topic:Functions
eCLD_IASACEGetEnrolledZones
teZCL_CommandStatus eCLD_IASACEGetEnrolledZones(
uint8 u8SourceEndPointId,
uint8 *pu8ZoneID,
uint8 *pu8NumOfEnrolledZones);
Description
This function can be used on an IAS ACE cluster server to obtain a list of the enrolled zones from the local Zone table.
The function searches the Zone table and returns a list of the Zone IDs of all the enrolled zones (for which there are table entries). The number of enrolled zones is also returned.
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
pu8ZoneID: Pointer to a location to receive the first Zone ID in the reported list of enrolled zones
pu8NumOfEnrolledZones: Pointer to a location to receive the number of enrolled zones reported in the above list
Returns
E_ZCL_CMDS_SUCCESS (zone list successfully obtained from Zone table)
E_ZCL_CMDS_FAILURE (cluster instance not found)
E_ZCL_CMDS_INVALID_FIELD (a supplied pointer is NULL)
Parent topic:Functions
eCLD_IASACESetPanelParameter
teZCL_Status eCLD_IASACESetPanelParameter(
uint8 u8SourceEndPointId,
teCLD_IASACE_PanelParameterID eParameterId,
uint8 u8ParameterValue);
Description
This function can be used on an IAS ACE cluster server to set the value of a Panel parameter. The Panel parameters are held on the server in a tsCLD_IASACE_PanelParameter structure (see Section 38.7.4) and this function can be used to write a value to one parameter in the structure. The function verifies that the specified parameter identifier is valid before attempting the write.
If this function is used to set the Panel parameter ePanelStatus, an IAS ACE Panel Status Changed command is automatically sent to all bound clients.
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
eParameterId: Enumeration identifying the Panel parameter to be set, one of:
E_CLD_IASACE_PANEL_PARAMETER_PANEL_STATUS
E_CLD_IASACE_PANEL_PARAMETER_SECONDS_REMAINING
E_CLD_IASACE_PANEL_PARAMETER_AUDIBLE_NOTIFICATION
E_CLD_IASACE_PANEL_PARAMETER_ALARM_STATUS
u8ParameterValue: Value to be written to the parameter
Returns
E_ZCL_SUCCESS (Panel parameter successfully set)
E_ZCL_ERR_CLUSTER_NOT_FOUND (cluster instance not found)
E_ZCL_ERR_ATTRIBUTE_NOT_FOUND (Panel parameter identifier invalid)
Parent topic:Functions
eCLD_IASACEGetPanelParameter
teZCL_Status eCLD_IASACEGetPanelParameter(
uint8 u8SourceEndPointId,
teCLD_IASACE_PanelParameterID eParameterId,
uint8 *pu8ParameterValue);
Description
This function can be used on an IAS ACE cluster server to obtain the value of a Panel parameter. The Panel parameters are held on the server in a tsCLD_IASACE_PanelParameter structure (see Section 38.7.4) and this function can be used to read the value of one parameter in the structure. The function verifies that the specified parameter identifier is valid before attempting the read.
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
eParameterId : Enumeration identifying the Panel parameter to be read, one of:
E_CLD_IASACE_PANEL_PARAMETER_PANEL_STATUS
E_CLD_IASACE_PANEL_PARAMETER_SECONDS_REMAINING
E_CLD_IASACE_PANEL_PARAMETER_AUDIBLE_NOTIFICATION
E_CLD_IASACE_PANEL_PARAMETER_ALARM_STATUS
pu8ParameterValue: Pointer to location to receive read parameter value
Returns
E_ZCL_SUCCESS (Panel parameter successfully read)
E_ZCL_ERR_CLUSTER_NOT_FOUND (cluster instance not found)
E_ZCL_ERR_PARAMETER_NULL (specfied pointer is NULL)
E_ZCL_ERR_ATTRIBUTE_NOT_FOUND (Panel parameter identifier invalid)
Parent topic:Functions
eCLD_IASACESetZoneParameter
teZCL_Status eCLD_IASACESetZoneParameter(
uint8 u8SourceEndPointId,
teCLD_IASACE_ZoneParameterID eParameterId,
uint8 u8ZoneID,
uint8 u8ParameterLength,
uint8 *pu8ParameterValue);
Description
This function can be used on an IAS ACE cluster server to set the value of a Zone parameter. The Zone parameters for a particular Zone ID are held on the server in a tsCLD_IASACE_ZoneParameter structure (see Section 38.7.3) and this function can be used to write a value to one parameter in the structure. The specified zone must have been enrolled in the local Zone table. Before attempting the write, the function verifies that the specified Zone ID is present in the Zone table and that the specified parameter identifier is valid.
If this function is used to set the Zone parameter eZoneStatus, an IAS ACE Zone Status Changed command is automatically sent to all bound clients.
The function requires the parameter value to be provided as a uint8 array. This is to allow one of the array parameters, au8ZoneLabel[] or au8ArmDisarmCode[], to be set - the corresponding string parameter, sZoneLabel or sArmDisarmCode, will be set automatically. The function eCLD_IASACESetZoneParameterValue() provides an easier way of setting one of the non-array/non-string parameters.
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
eParameterId : Enumeration identifying the Zone parameter to be set, one of:
: E_CLD_IASACE_ZONE_PARAMETER_ZONE_CONFIG_FLAG
E_CLD_IASACE_ZONE_PARAMETER_ZONE_STATUS_FLAG
E_CLD_IASACE_ZONE_PARAMETER_ZONE_STATUS
E_CLD_IASACE_ZONE_PARAMETER_AUDIBLE_NOTIFICATION
E_CLD_IASACE_ZONE_PARAMETER_ZONE_LABEL
E_CLD_IASACE_ZONE_PARAMETER_ARM_DISARM_CODE
u8ZoneID: Zone ID of zone information to be updated
u8ParameterLength: Number of uint8 elements in the array containing the parameter value to be set
pu8ParameterValue: Pointer to a location containing the first element of the array containing the parameter value to be set
Returns
E_ZCL_SUCCESS (Zone parameter successfully set)
E_ZCL_ERR_CLUSTER_NOT_FOUND (cluster instance not found)
E_ZCL_ERR_ATTRIBUTE_NOT_FOUND (Zone parameter identifier invalid)
E_ZCL_ERR_NO_REPORT_ENTRIES (Zone ID not found in Zone table)
E_ZCL_ERR_PARAMETER_NULL (Pointer to location containing value is NULL)
E_ZCL_ERR_PARAMETER_RANGE (specified array length too long to be stored)
Parent topic:Functions
eCLD_IASACESetZoneParameterValue
teZCL_Status eCLD_IASACESetZoneParameterValue(
uint8 u8SourceEndPointId,
teCLD_IASACE_ZoneParameterID eParameterId,
uint8 u8ZoneID,
uint16 u16ParameterValue);
Description
This function can be used on an IAS ACE cluster server to set the value of a Zone parameter. The Zone parameters for a particular Zone ID are held on the server in a tsCLD_IASACE_ZoneParameter structure (see Section 38.7.3) and this function can be used to write a value to one of the non-string/non-array parameters in the structure. The specified zone must have been enrolled in the local Zone table. Before attempting the write, the function verifies that the specified Zone ID is present in the Zone table and that the specified parameter identifier is valid.
If this function is used to set the Zone parameter eZoneStatus, an IAS ACE Zone Status Changed command is automatically sent to all bound clients.
This function cannot be used to set the string parameters sZoneLabel and sArmDisarmCode or the array parameters au8ZoneLabel[] and au8ArmDisarmCode[]. The function eCLD_IASACESetZoneParameter() must be used to set the string and array parameters.
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
eParameterId : Enumeration identifying the Zone parameter to be set, one of:
E_CLD_IASACE_ZONE_PARAMETER_ZONE_CONFIG_FLAG
E_CLD_IASACE_ZONE_PARAMETER_ZONE_STATUS_FLAG
E_CLD_IASACE_ZONE_PARAMETER_ZONE_STATUS
E_CLD_IASACE_ZONE_PARAMETER_AUDIBLE_NOTIFICATION
u8ZoneID: Zone ID of zone information to be updated
u16ParameterValue: Value to be written to the parameter
Returns
E_ZCL_SUCCESS (Zone parameter successfully set)
E_ZCL_ERR_CLUSTER_NOT_FOUND (cluster instance not found)
E_ZCL_ERR_ATTRIBUTE_NOT_FOUND (Zone parameter identifier invalid)
E_ZCL_ERR_NO_REPORT_ENTRIES (Zone ID not found in Zone table)
Parent topic:Functions
eCLD_IASACEGetZoneParameter
teZCL_Status eCLD_IASACEGetZoneParameter(
uint8 u8SourceEndPointId,
teCLD_IASACE_ZoneParameterID eParameterId,
uint8 u8ZoneID,
uint8 *pu8ParameterLength,
uint8 *pu8ParameterValue);
Description
This function can be used on an IAS ACE cluster server to obtain the value of a Zone parameter. The Zone parameters for a particular Zone ID are held on the server in a tsCLD_IASACE_ZoneParameter structure (see Section 38.7.3) and this function can be used to read the value of one parameter in the structure. Before attempting the read, the function verifies that the specified Zone ID is present in the Zone table and that the specified parameter identifier is valid.
The function expects the read parameter value to be returned as a uint8 array.
Parameters
u8SourceEndPointId: Number of the endpoint on which the IAS ACE cluster resides
eParameterId: Enumeration identifying the Zone parameter to be read, one of:
E_CLD_IASACE_ZONE_PARAMETER_ZONE_CONFIG_FLAG
E_CLD_IASACE_ZONE_PARAMETER_ZONE_STATUS_FLAG
E_CLD_IASACE_ZONE_PARAMETER_ZONE_STATUS
E_CLD_IASACE_ZONE_PARAMETER_AUDIBLE_NOTIFICATION
E_CLD_IASACE_ZONE_PARAMETER_ZONE_LABEL
E_CLD_IASACE_ZONE_PARAMETER_ARM_DISARM_CODE
u8ZoneID: Zone ID of zone information to be accessed
*pu8ParameterLength: Pointer to location to receive the number of uint8 elements in the array containing the parameter value obtained
*pu8ParameterValue: Pointer to location to receive the first element of the array containing the parameter value obtained
Returns
E_ZCL_SUCCESS (Zone parameter successfully read)
E_ZCL_ERR_CLUSTER_NOT_FOUND (cluster instance not found)
E_ZCL_ERR_PARAMETER_NULL (a specified pointer is NULL)
E_ZCL_ERR_NO_REPORT_ENTRIES (Zone ID not found in Zone table)
E_ZCL_ERR_ATTRIBUTE_NOT_FOUND (Zone parameter identifier invalid)
E_ZCL_ERR_PARAMETER_RANGE (returned array too long to be stored)
Parent topic:Functions
eCLD_IASACE_ArmSend
teZCL_Status eCLD_IASACE_ArmSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber,
tsCLD_IASACE_ArmPayload *psPayload);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Arm command to an IAS ACE server. This command instructs the server to put all or certain enrolled zones into the ‘armed’ state or put all of them into the ‘disarmed’ state, according to the command payload (see Section 38.7.5).
The outcome of the request will be returned by the server in a response which will generate an E_CLD_IASACE_CMD_ARM_RESP event when received on the client.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
psPayload: Pointer to a structure containing the payload for the command (see Section 38.7.5)
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_BypassSend
teZCL_Status eCLD_IASACE_BypassSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber,
tsCLD_IASACE_BypassPayload *psPayload);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Bypass command to an IAS ACE server. This command instructs the server to take one or more specified zones out of the system for the current activation.
Note: The bypassed zones will be reinstated the next time the system is disarmed. To exclude them again the next time the system is armed, the Bypass command must be re-sent before sending the Arm command.
The outcome of the request will be returned by the server in a response which will generate an E_CLD_IASACE_CMD_BYPASS_RESP event when received on the client.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
psPayload: Pointer to a structure containing the payload for the command (see Section 38.7.5)
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_EmergencySend
teZCL_Status eCLD_IASACE_EmergencySend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Emergency command to an IAS ACE server. This command instructs the server to put the alarm in the ‘Emergency’ state.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_FireSend
teZCL_Status eCLD_IASACE_FireSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Fire command to an IAS ACE server. This command instructs the server to put the alarm in the ‘Fire’ state.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_PanicSend
teZCL_Status eCLD_IASACE_PanicSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Panic command to an IAS ACE server. This command instructs the server to put the alarm in the ‘Panic’ state.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_GetZoneIDMapSend
teZCL_Status eCLD_IASACE_GetZoneIDMapSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Get Zone ID Map command to an IAS ACE server. This command requests the Zone IDs that have been allocated to zones.
The requested information is returned by the server in a response which generates an E_CLD_IASACE_CMD_GET_ZONE_ID_MAP_RESP event when received on the client.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_GetZoneInfoSend
teZCL_Status eCLD_IASACE_GetZoneInfoSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber,
tsCLD_IASACE_GetZoneInfoPayload *psPayload);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Get Zone Information command to an IAS ACE server. This command requests information on the zone specified in the command payload.
The requested information will be returned by the server in a response which will generate an E_CLD_IASACE_CMD_GET_ZONE_INFO_RESP event when received on the client.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
psPayload: Pointer to a structure containing the payload for the command (see Section 38.7.5)
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_GetPanelStatusSend
teZCL_Status eCLD_IASACE_GetPanelStatusSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Get Panel Status command to an IAS ACE server. This command requests the current status of the (display) panel.
The requested information will be returned by the server in a response which will generate an E_CLD_IASACE_CMD_GET_PANEL_STATUS_RESP event when received on the client.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_SetBypassedZoneListSend
teZCL_Status eCLD_IASACE_SetBypassedZoneListSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber,
tsCLD_IASACE_SetBypassedZonelistPayload *psPayload);
Description
This function can be used on an IAS ACE cluster server to send an IAS ACE Set Bypassed Zone List command to an IAS ACE client. This command informs the client which zones are currently bypassed - the zones are specified in the command payload.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
psPayload: Pointer to a structure containing the payload for the command (see Section 38.7.5)
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_GetBypassedZoneListSend
teZCL_Status eCLD_IASACE_GetBypassedZoneListSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Get Bypassed Zone List command to an IAS ACE server. This command requests a list of the currently bypassed zones.
The requested information will be returned by the server in a response which will generate an E_CLD_IASACE_CMD_SET_BYPASSED_ZONE_LIST event when received on the client.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_GetZoneStatusSend
teZCL_Status eCLD_IASACE_GetZoneStatusSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber,
tsCLD_IASACE_GetZoneStatusPayload *psPayload);
Description
This function can be used on an IAS ACE cluster client to send an IAS ACE Get Zone Status command to an IAS ACE server. This command requests either of the following:
a list of all enrolled zones with their status
a list of those zones with a particular status (that is, all zones with the
b16ZoneStatusattribute of the IAS Zone cluster having a certain value)
The list required is specified in the bZoneStatusMaskFlag field of the command payload (see Section 38.7.5). If the second of the above lists is required, the status to look for is also specified in the payload.
The requested information is returned by the server in a response which generates an E_CLD_IASACE_CMD_GET_ZONE_STATUS_RESP event when received on the client. A single response may not be able to carry all the zone status information to be returned and more than one request (and associated response) would be needed. For this reason, the request allows a starting zone and the number of zones to be included in the response to be specified (in the request payload).
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
psPayload: Pointer to a structure containing the payload for the command (see Section 38.7.5)
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_ZoneStatusChangedSend
teZCL_Status eCLD_IASACE_ZoneStatusChangedSend(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber,
tsCLD_IASACE_ZoneStatusChangedPayload *psPayload);
Description
This function can be used on an IAS ACE cluster server to send an IAS ACE Zone Status Changed command to an IAS ACE client. This command informs the client that the status of the specified zone has changed - that is, the value of the b16ZoneStatus attribute of the IAS Zone cluster for the zone has changed.
Note: This command is sent automatically when the function eCLD_IASACESetZoneParameter() is called on the server to update the u16ZoneStatus attribute for all the bound clients.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
psPayload: Pointer to a structure containing the payload for the command (see Section 38.7.5)
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
eCLD_IASACE_PanelStatusChanged
teZCL_Status eCLD_IASACE_PanelStatusChanged(
uint8 u8SourceEndPointId,
uint8 u8DestinationEndPointId,
tsZCL_Address *psDestinationAddress,
uint8 *pu8TransactionSequenceNumber,
teCLD_IASACE_ServerCmdId eCommandId,
tsCLD_IASACE_PanelStatusChangedOrGetPanelStatusRespPayload
*psPayload);
Description
This function can be used on an IAS ACE cluster server to send an IAS ACE Panel Status Changed command to an IAS ACE client. This command informs the client that the value of the panel parameter ePanelStatus (see Section 38.7.4) on the (local) CIE device has changed.
Note:
The IAS ACE Panel Status Changed command is sent automatically when the function eCLD_IASACESetPanelParameter() is called to update the
ePanelStatusparameter.The function alternatively provides the option of sending an IAS ACE Get Panel Status Response but, in practice, this response is sent automatically when a Get Panel Status Request is received.
You are required to provide a pointer to a location to receive a Transaction Sequence Number (TSN) for the request. The TSN in the response is set to match the TSN in the request, allowing an incoming response to be paired with a request. This is useful when sending more than one request to the same destination endpoint.
Parameters
u8SourceEndPointId: Number of the local endpoint through which to send the request. This parameter is used both to send the command and to identify the instance of the shared structure holding the required attribute values
u8DestinationEndPointId: Number of the endpoint on the remote node to which the request is sent. This parameter is ignored when sending to address types eZCL_AMBOUND and eZCL_AMGROUP
psDestinationAddress: Pointer to a structure holding the address of the node to which the request is sent
pu8TransactionSequenceNumber: Pointer to a location to receive the Transaction Sequence Number (TSN) of the request
eCommandId: Identifier of command to be sent - for Panel Status Changed command, always set to:: E_CLD_IASACE_CMD_PANEL_STATUS_CHANGED
psPayload: Pointer to a structure containing the payload for the command (see Section 38.7.5)
Returns
E_ZCL_SUCCESS
E_ZCL_ERR_PARAMETER_NULL
E_ZCL_ERR_EP_RANGE
E_ZCL_ERR_EP_UNKNOWN
E_ZCL_ERR_CLUSTER_NOT_FOUND
E_ZCL_ERR_ZBUFFER_FAIL
E_ZCL_ERR_ZTRANSMIT_FAIL
If an error is returned by the ZigBee PRO stack function which is invoked by this function to transmit the data, this error may be obtained by calling eZCL_GetLastZpsError().
Parent topic:Functions
Parent topic:IAS Ancillary Control Equipment Cluster
Structures
Custom Data Structure
The IAS ACE cluster requires extra storage space to be allocated to be used by internal functions. The structure definition for this storage is shown below:
typedef struct
{
tsZCL_ReceiveEventAddress sReceiveEventAddress;
tsZCL_CallBackEvent sCustomCallBackEvent;
tsCLD_IASACECallBackMessage sCallBackMessage;
#if (defined CLD_IASACE) && (defined IASACE_SERVER)
tsCLD_IASACE_PanelParameter
sCLD_IASACE_PanelParameter;
tsCLD_IASACE_ZoneParameter
asCLD_IASACE_ZoneParameter[CLD_IASACE_ZONE_TABLE_SIZE];
tsCLD_IASACE_ZoneTable
asCLD_IASACE_ZoneTable[CLD_IASACE_ZONE_TABLE_SIZE];
#endif
} tsCLD_IASACECustomDataStructure;
The fields are for internal use and no knowledge of them is required.
Parent topic:Structures
Zone Table Entry
The following structure contains a Zone table entry, used to hold the enrollment details of a zone.
typedef struct
{
zuint8 u8ZoneID;
zbmap16 u16ZoneType;
zieeeaddress u64IeeeAddress;
} tsCLD_IASACE_ZoneTable;
where:
u8ZoneIDis the identifier of the zoneu16ZoneTypeis a value indicating the type of zone (for the possible values, refer to the description of the attributee``16ZoneTypeof the IAS Zone cluster in Section 37.2)u64IeeeAddressis the IEEE/MAC address of the device which hosts the zone
Parent topic:Structures
Zone Parameters
The following structure is used to store the ‘zone parameters’ on the IAS ACE cluster server.
typedef struct
{
zbmap8 u8ZoneConfigFlag;
zbmap8 u8ZoneStatusFlag;
zbmap16 eZoneStatus;
zenum8 eAudibleNotification;
tsZCL_CharacterString sZoneLabel;
uint8
au8ZoneLabel[CLD_IASACE_MAX_LENGTH_ZONE_LABEL];
tsZCL_CharacterString sArmDisarmCode;
uint8
au8ArmDisarmCode[CLD_IASACE_MAX_LENGTH_ARM_DISARM_CODE];
}tsCLD_IASACE_ZoneParameter;
where:
u8ZoneConfigFlagis is a bitmap used to configure the temporal role of a zone (as Day, Night or Day/Night) and whether the zone is allowed to be bypassed. Macros are provided as follows:
Bit |
Macro |
|---|---|
0 |
CLD_IASACE_ZONE_CONFIG_FLAG_BYPASS * |
1 |
CLD_IASACE_ZONE_CONFIG_FLAG_DAY_HOME |
2 |
CLD_IASACE_ZONE_CONFIG_FLAG_NIGHT_SLEEP |
3 |
CLD_IASACE_ZONE_CONFIG_FLAG_NOT_BYPASSED ** |
4-7 |
Reserved |
* Determines whether the zone is allowed to be bypassed: 1 - allowed, 0 - not allowed
** Used to configure a status of ZONE_NOT_BYPASSED in responses to Bypass commands
u8ZoneStatusFlagis a bitmap used to indicate the current status of a zone as armed or bypassed. Macros are provided as follows:
Bit |
Macro |
|---|---|
0 |
CLD_IASACE_ZONE_STATUS_FLAG_BYPASS |
1 |
CLD_IASACE_ZONE_STATUS_FLAG_ARM |
2-7 |
Reserved |
e``ZoneStatusis the zone status as the value of theb16ZoneStatusattribute of the IAS Zone cluster (see Section 37.2)eAudibleNotificationis a value specifying whether an audible notification (e.g. a chime) is required to signal a zone status change (enumerations are available inteCLD_IASACE_AudibleNotification- see Section 38.8.4):
Value |
Status |
|---|---|
0x00 |
Audible notification muted |
0x01 |
Audible notification sounded |
0x02 - 0xFF |
Reserved |
sZoneLabelis the name/label for the zone represented as a character stringau8ZoneLabel[]is the name/label for the zone represented as an array of ASCII valuessArmDisarmCodeis the arm/disarm code for the zone represented as a character stringau8ArmDisarmCode[]is the arm/disarm code for the zone represented as an array of ASCII values
Parent topic:Structures
Panel Parameters
The following structure is used to store the ‘panel parameters’ on the IAS ACE cluster server.
typedef struct
{
zenum8 ePanelStatus;
zuint8 u8SecondsRemaining;
zenum8 eAudibleNotification;
zenum8 eAlarmStatus;
}tsCLD_IASACE_PanelParameter;
where:
ePanelStatusis a value indicating the status to be displayed on the panel, as follows (enumerations are available inteCLD_IASACE_PanelStatus- see Section 38.8.2):
Value |
Status |
|---|---|
0x00 |
Disarmed (all zones) and ready to be armed |
0x01 |
Armed stay |
0x02 |
Armed night |
0x03 |
Armed away |
0x04 |
Exit delay |
0x05 |
Entry delay |
0x06 |
Not ready to be armed |
0x07 |
In alarm |
0x08 |
Arming stay |
0x09 |
Arming night |
0x0A |
Arming away |
0x0B - 0xFF |
Reserved |
u8SecondsRemainingrepresents the time, in seconds, that the server will remain in the displayed state when the latter is ‘Exit delay’ or ‘Entry delay’ (for other states, this field should be set to 0x00).eAudibleNotificationis a value specifying whether an audible notification (e.g. a chime) is required to signal a zone status change (enumerations are available inteCLD_IASACE_AudibleNotification- see Section 38.8.4):
Value |
Status |
|---|---|
0x00 |
Audible notification muted |
0x01 |
Audible notification sounded |
0x02 - 0xFF |
Reserved |
eAlarmStatusis a value indicating the alarm status/type when the panel’s state is ‘In Alarm’, as follows (enumerations are available inteCLD_IASACE_AlarmStatus- see Section 38.8.3):
Value |
Status |
|---|---|
0x00 |
No alarm |
0x01 |
Burglar |
0x02 |
Fire |
0x03 |
Emergency |
0x04 |
Police panic |
0x05 |
Fire panic |
0x06 |
Emergency panic |
0x07 - 0xFF |
Reserved |
Parent topic:Structures
Custom Command Payloads
The following structures contain the payloads for the IAS ACE cluster custom commands.
‘Arm’ Command Payload
The following structure contains the payload of a Arm command.
typedef struct
{
zenum8 eArmMode;
tsZCL_CharacterString sArmDisarmCode;
zuint8 u8ZoneID;
} tsCLD_IASACE_ArmPayload;
where:
eArmModeis a value indicating the state of armament in which to put the zone (enumerations are available inteCLD_IASACE_ArmMode- see Section38.8.1):
Value |
Status |
|---|---|
0x00 |
Disarm |
0x01 |
Arm day/home zones only |
0x02 |
Arm night/sleep zones only |
0x03 |
Arm all zones |
0x04 - 0xFF |
Reserved |
sArmDisarmCodeis an 8-character string containing the arm/disarm code (if a code is not required, set to “00000000”)u8ZoneIDis the identifier of the zone to arm/disarm
‘Bypass’ Command Payload
The following structure contains the payload of a Bypass command.
typedef struct
{
zuint8 u8NumOfZones;
zuint8 *pu8ZoneID;
tsZCL_CharacterString sArmDisarmCode;
} tsCLD_IASACE_BypassPayload;
where:
u8NumOfZonesis the number of zones to be ‘bypassed’ (taken out of the system)pu8ZoneIDis a pointer to a list of identifiers specifying the zones to be bypassed (the number of zones in the list is specified inu8NumOfZones)sArmDisarmCodeis an 8-character string containing the arm/disarm code (if a code is not required, set to “00000000”)
‘Get Zone Information’ Command Payload
The following structure contains the payload of a Get Zone Information command.
typedef struct
{
zuint8 u8ZoneID;
} tsCLD_IASACE_GetZoneInfoPayload;
where u8ZoneID is the identifier of the zone on which information is required.
‘Set Bypassed Zone List’ Command Payload
The following structure contains the payload of a Set Bypassed Zone List command.
typedef struct
{
zuint8 u8NumofZones;
zuint8 *pu8ZoneID;
} tsCLD_IASACE_SetBypassedZoneListPayload;
where:
u8NumofZonesis the number of zones in the new bypassed zone listpu8ZoneIDis a pointer to the new bypassed zone list (the number of zones in the list is specified inu8NumOfZones)
‘Get Zone Status’ Command Payload
The following structure contains the payload of a Get Zone Status command.
typedef struct
{
zuint8 u8StartingZoneID;
zuint8 u8MaxNumOfZoneID;
zbool bZoneStatusMaskFlag;
zbmap16 u16ZoneStatusMask;
} tsCLD_IASACE_GetZoneStatusPayload;
where:
u8StartingZoneIDis the identifier of the first zone for which status information is requiredu8MaxNumOfZoneIDis the maximum number of zones for which status information should be returnedbZoneStatusMaskFlagis a Boolean indicating whether status information should be returned for all zones or only for those zones with particular status values (specified throughu16ZoneStatusMaskbelow):TRUE - only zones with specific status values
FALSE - all zones
u16ZoneStatusMaskis a 16-bit bitmap indicating the zone status values of interest (used whenbZoneStatusMaskFlagis set to TRUE) - the response to the request will contain information only for those zones with a status value indicated in this bitmap:
Bit |
Description |
|---|---|
0 |
Alarm1: |
1 - Opened or alarmed
0 - Closed or not alarned
| |1|Alarm2:
1 - Opened or alarmed
0 - Closed or not alarned
| |2|Tamper:
1 - Tampered with
0 - Not tampered with
| |3|Battery:
1 - Low
0 - OK
| |4|Supervision reports:
1 - Reports
0 - No reports
| |5|Restore reports:
1 - Reports
0 - No reports
| |6|Trouble:
1 - Trouble/failure
0 - OK
| |7|AC (mains):
1 - Fault
0 - OK
| |8|Test mode:
1 - Sensor in test mode
0 - Sensor in operational mode
| |9|Battery defect:
1 - Defective battery detected
0 - Battery OK
| |10-15|Reserved|
‘Panel Status Changed or Get Panel Status Response’
The following structure contains the payload of a Panel Status Changed command or Get Panel Status Response.
typedef struct
{
zenum8 ePanelStatus;
zuint8 u8SecondsRemaining;
zenum8 eAudibleNotification;
zenum8 eAlarmStatus;
} tsCLD_IASACE_PanelStatusChangedOrGetPanelStatusRespPayload;
where:
ePanelStatusis a value indicating the status to be displayed on the panel, as follows (enumerations are available inteCLD_IASACE_PanelStatus- see Section 38.8.2):
Value |
Status |
|---|---|
0x00 |
Disarmed (all zones) and ready to be armed |
0x01 |
Armed stay |
0x02 |
Armed night |
0x03 |
Armed away |
0x04 |
Exit delay |
0x05 |
Entry delay |
0x06 |
Not ready to be armed |
0x07 |
In alarm |
0x08 |
Arming stay |
0x09 |
Arming night |
0x0A |
Arming away |
0x0B - 0xFF |
Reserved |
u8SecondsRemainingrepresents the time, in seconds, that the server will remain in the displayed state when the latter is ‘Exit delay’ or ‘Entry delay’ (for other states, this field should be set to 0x00).eAudibleNotificationis a value specifying whether an audible notification (e.g. a chime) is required to signal a zone status change (enumerations are available inteCLD_IASACE_AudibleNotification- see Section 38.8.4):
Value |
Status |
|---|---|
0x00 |
Audible notification muted |
0x01 |
Audible notification sounded |
0x02 - 0xFF |
Reserved |
eAlarmStatusis a value indicating the alarm status/type when the panel’s state is ‘In Alarm’, as follows (enumerations are available inteCLD_IASACE_AlarmStatus- see Section 38.8.3):
Value |
Status |
|---|---|
0x00 |
No alarm |
0x01 |
Burglar |
0x02 |
Fire |
0x03 |
Emergency |
0x04 |
Police panic |
0x05 |
Fire panic |
0x06 |
Emergency panic |
0x07 - 0xFF |
Reserved |
Parent topic:Structures
Event Data Structures
The following structures hold the data contained in certain IAS ACE cluster events.
E_CLD_IASACE_CMD_ARM_RESP Data
typedef struct
{
zenum8 eArmNotification;
} tsCLD_IASACE_ArmRespPayload;
where eArmNotification is an enumeration indicating the outcome of the Arm command, one of:
E_CLD_IASACE_ARM_NOTIF_ALL_ZONES_DISARMED
E_CLD_IASACE_ARM_NOTIF_ONLY_DAY_HOME_ZONES_ARMED
E_CLD_IASACE_ARM_NOTIF_ONLY_NIGHT_SLEEP_ZONES_ARMED
E_CLD_IASACE_ARM_NOTIF_ALL_ZONES_ARMED
E_CLD_IASACE_ARM_NOTIF_INVALID_ARM_DISARM_CODE
E_CLD_IASACE_ARM_NOTIF_NOT_READY_TO_ARM
E_CLD_IASACE_ARM_NOTIF_ALREADY_DISARMED
E_CLD_IASACE_CMD_GET_ZONE_ID_MAP_RESP Data
typedef struct
{
zbmap16 au16ZoneIDMap[CLD_IASACE_MAX_BYTES_FOR_NUM_OF_ZONES];
} tsCLD_IASACE_GetZoneIDMapRespPayload;
where au16ZoneIDMap[``] is an array, each element being a 16-bit bitmap indicating whether each of a set of zone identifiers is allocated - a Zone ID is represented by a single bit which is set to ‘1’ if the identifier value has been allocated and ‘0’ otherwise.
Array Element |
Bit |
Zone ID |
|---|---|---|
au16ZoneIDMap[0] |
0 |
0x00 |
au16ZoneIDMap[1] |
0 |
0x10 |
: |
: |
: |
au16ZoneIDMap[N] |
0 |
16N |
E_CLD_IASACE_CMD_GET_ZONE_INFO_RESP Data
typedef struct
{
zuint8 u8ZoneID;
zbmap16 u16ZoneType;
zieeeaddress u64IeeeAddress;
tsZCL_CharacterString sZoneLabel;
} tsCLD_IASACE_GetZoneInfoRespPayload;
where:
u8ZoneIDis the identifier of the zoneu16ZoneTypeis a value indicating the type of zone (for the possible values, refer to the description of the attributee``16ZoneTypeof the IAS Zone cluster in Section 37.2)u64IeeeAddressis the IEEE/MAC address of the device which hosts the zonesZoneLabelis a character string representing a name/label for the zone
E_CLD_IASACE_CMD_ZONE_STATUS_CHANGED Data
typedef struct
{
zuint8 u8ZoneID;
zenum16 eZoneStatus;
zenum8 eAudibleNotification;
tsZCL_CharacterString sZoneLabel;
} tsCLD_IASACE_ZoneStatusChangedPayload;
where:
u8ZoneIDis the identifier of the zoneu16ZoneTypeis a value indicating the type of zone (for the possible values, refer to the description of the attributee``16ZoneTypeof the IAS Zone cluster in Section 37.2)eAudibleNotificationis a value specifying whether an audible notification(e.g. a chime) to signal the change is required (enumerations are available in
teCLD_IASACE_AudibleNotification- see Section 38.8.4):
Value |
Status |
|---|---|
0x00 |
Audible notification to be muted |
0x01 |
Audible notification to be sounded |
0x02 - 0xFF |
Reserved |
sZoneLabelis a character string representing a name/label for the zone
E_CLD_IASACE_CMD_PANEL_STATUS_CHANGED Data
tsCLD_IASACE_PanelStatusChangedOrGetPanelStatusRespPayload
For details of this structure, see Section 38.7.5.
E_CLD_IASACE_CMD_GET_PANEL_STATUS_RESP Data
tsCLD_IASACE_PanelStatusChangedOrGetPanelStatusRespPayload
For details of this structure, see Section 38.7.5.
E_CLD_IASACE_CMD_BYPASS_RESP Data
typedef struct
{
zuint8 u8NumofZones;
zuint8 *pu8BypassResult;
} tsCLD_IASACE_BypassRespPayload;
where:
u8NumOfZonesis the number of zones ‘bypassed’ (taken out of the system)pu8BypassResultis a pointer to a list of identifiers specifying the zones bypassed (the number of zones in the list is specified inu8NumOfZones)
E_CLD_IASACE_CMD_GET_ZONE_STATUS_RESP Data
typedef struct
{
zbool bZoneStatusComplete;
zuint8 u8NumofZones;
zuint8 *pu8ZoneStatus;
} tsCLD_IASACE_GetZoneStatusRespPayload;
where:
bZoneStatusCompleteis a Boolean indicating whether the current response completes the set of zones for which status information can be returned (if not, the client should send another Get Zone Status command to the server):TRUE - no more zone status information to be returned
FALSE - status information for more zones available to be queried
u8NumofZonesis the number of zones for which status information was returned in this responsepu8ZoneStatusis a pointer to a list of status values for the reported zones (the number of values in the list is indicated byu8NumofZonesabove) - each is a 24-bit value containing the following information:
Bits |
Description |
|---|---|
0-7 |
Zone ID |
8-23 |
Value of |
Parent topic:Structures
Parent topic:IAS Ancillary Control Equipment Cluster
Enumerations
teCLD_IASACE_ArmMode
The following structure contains the enumerations used to indicate a mode of armament:
typedef enum
{
E_CLD_IASACE_ARM_MODE_DISARM = 0x00,
E_CLD_IASACE_ARM_MODE_ARM_DAY_HOME_ZONES_ONLY,
E_CLD_IASACE_ARM_MODE_ARM_NIGHT_SLEEP_ZONES_ONLY,
E_CLD_IASACE_ARM_MODE_ARM_ALL_ZONES,
} teCLD_IASACE_ArmMode;
Parent topic:Enumerations
teCLD_IASACE_PanelStatus
The following structure contains the enumerations used to indicate the status of the panel:
typedef enum
{
E_CLD_IASACE_PANEL_STATUS_PANEL_DISARMED = 0x00,
E_CLD_IASACE_PANEL_STATUS_PANEL_ARMED_DAY,
E_CLD_IASACE_PANEL_STATUS_PANEL_ARMED_NIGHT,
E_CLD_IASACE_PANEL_STATUS_PANEL_ARMED_AWAY,
E_CLD_IASACE_PANEL_STATUS_PANEL_EXIT_DELAY,
E_CLD_IASACE_PANEL_STATUS_PANEL_ENTRY_DELAY,
E_CLD_IASACE_PANEL_STATUS_PANEL_NOT_READY_TO_ARM,
E_CLD_IASACE_PANEL_STATUS_PANEL_IN_ALARM,
E_CLD_IASACE_PANEL_STATUS_PANEL_ARMING_STAY,
E_CLD_IASACE_PANEL_STATUS_PANEL_ARMING_NIGHT,
E_CLD_IASACE_PANEL_STATUS_PANEL_ARMING_AWAY
} teCLD_IASACE_PanelStatus;
Parent topic:Enumerations
teCLD_IASACE_AlarmStatus
The following structure contains the enumerations used to indicate the status/meaning of the alarm:
typedef enum
{
E_CLD_IASACE_ALARM_STATUS_NO_ALARM = 0x00,
E_CLD_IASACE_ALARM_STATUS_BURGLAR,
E_CLD_IASACE_ALARM_STATUS_FIRE,
E_CLD_IASACE_ALARM_STATUS_EMERGENCY,
E_CLD_IASACE_ALARM_STATUS_POLICE_PANIC,
E_CLD_IASACE_ALARM_STATUS_FIRE_PANIC,
E_CLD_IASACE_ALARM_STATUS_EMERGENCY_PANIC
} teCLD_IASACE_AlarmStatus;
Parent topic:Enumerations
teCLD_IASACE_AudibleNotification
The following structure contains the enumerations used to indicate the configuration of the audible indication:
typedef enum
{
E_CLD_IASACE_AUDIBLE_NOTIF_MUTE = 0x00,
E_CLD_IASACE_AUDIBLE_NOTIF_DEFAULT_SOUND
} teCLD_IASACE_AudibleNotification;
Parent topic:Enumerations
Parent topic:IAS Ancillary Control Equipment Cluster
Compile-time options
To enable the IAS ACE cluster in the code to be built, it is necessary to add the following to the zcl_options.h file:
#define CLD_IASACE
In addition, to include the software for a cluster client or server or both, it is necessary to add one of the following to the same file:
#define IASACE_SERVER
#define IASACE_CLIENT
The IAS ACE cluster contains macros that may be specified at compile-time by adding one or more of the following lines to the zcl_options.h file.
Maximum Size of Zone Table
The maximum number of entries in a Zone table on the cluster server can be defined using the following line:
#define CLD_IASACE_ZONE_TABLE_SIZE n
where n is the desired maximum (e.g. 8).
Maximum Length of Arm/Disarm Code
The maximum length of string allowed for the arm/disarm code can be defined using the following line:
#define CLD_IASACE_MAX_LENGTH_ARM_DISARM_CODE n
where n is the desired maximum.
Maximum Length of Zone Label
The maximum length of string allowed for a zone name/label can be defined using the following line:
#define CLD_IASACE_MAX_LENGTH_ZONE_LABEL n
where n is the desired maximum.
Disable APS Acknowledgements for Bound Transmissions
APS acknowledgements for bound transmissions from this cluster can be disabled using the following line:
#define CLD_IASACE_BOUND_TX_WITH_APS_ACK_DISABLED
Cluster Revision
Add this line to define the value (n) of the Cluster Revision attribute:
#define CLD_IASACE_CLUSTER_REVISION <n>
The default value is 1, which corresponds to the revision of the cluster in the ZCL r6 specification (see Section 2.4).
Parent topic:IAS Ancillary Control Equipment Cluster