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