123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568 |
- #ifndef ZCL_SS_H
- #define ZCL_SS_H
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #include "zcl.h"
-
-
- #define ATTRID_SS_IAS_ZONE_STATE 0x0000
- #define ATTRID_SS_IAS_ZONE_TYPE 0x0001
- #define ATTRID_SS_IAS_ZONE_STATUS 0x0002
- #define SS_IAS_ZONE_STATE_NOT_ENROLLED 0x00
- #define SS_IAS_ZONE_STATE_ENROLLED 0x01
- #define SS_IAS_ZONE_TYPE_STANDARD_CIE 0x0000
- #define SS_IAS_ZONE_TYPE_MOTION_SENSOR 0x000D
- #define SS_IAS_ZONE_TYPE_CONTACT_SWITCH 0x0015
- #define SS_IAS_ZONE_TYPE_FIRE_SENSOR 0x0028
- #define SS_IAS_ZONE_TYPE_WATER_SENSOR 0x002A
- #define SS_IAS_ZONE_TYPE_GAS_SENSOR 0x002B
- #define SS_IAS_ZONE_TYPE_PERSONAL_EMERGENCY_DEVICE 0x002C
- #define SS_IAS_ZONE_TYPE_VIBRATION_MOVEMENT_SENSOR 0x002D
- #define SS_IAS_ZONE_TYPE_REMOTE_CONTROL 0x010F
- #define SS_IAS_ZONE_TYPE_KEY_FOB 0x0115
- #define SS_IAS_ZONE_TYPE_KEYPAD 0x021D
- #define SS_IAS_ZONE_TYPE_STANDARD_WARNING_DEVICE 0x0225
- #define SS_IAS_ZONE_TYPE_INVALID_ZONE_TYPE 0xFFFF
- #define SS_IAS_ZONE_STATUS_ALARM1_ALARMED 0x0001
- #define SS_IAS_ZONE_STATUS_ALARM2_ALARMED 0x0002
- #define SS_IAS_ZONE_STATUS_TAMPERED_YES 0x0004
- #define SS_IAS_ZONE_STATUS_BATTERY_LOW 0x0008
- #define SS_IAS_ZONE_STATUS_SUPERVISION_REPORTS_YES 0x0010
- #define SS_IAS_ZONE_STATUS_RESTORE_REPORTS_YES 0x0020
- #define SS_IAS_ZONE_STATUS_TROUBLE_YES 0x0040
- #define SS_IAS_ZONE_STATUS_AC_MAINS_FAULT 0x0080
-
- #define ATTRID_SS_IAS_CIE_ADDRESS 0x0010
-
- #define COMMAND_SS_IAS_ZONE_STATUS_CHANGE_NOTIFICATION 0x00
- #define COMMAND_SS_IAS_ZONE_STATUS_ENROLL_REQUEST 0x01
- #define COMMAND_SS_IAS_ZONE_STATUS_ENROLL_RESPONSE 0x00
-
- #define SS_IAS_ZONE_STATUS_ENROLL_RESPONSE_CODE_SUCCESS 0x00
- #define SS_IAS_ZONE_STATUS_ENROLL_RESPONSE_CODE_NOT_SUPPORTED 0x01
- #define SS_IAS_ZONE_STATUS_ENROLL_RESPONSE_CODE_NO_ENROLL_PERMIT 0x02
- #define SS_IAS_ZONE_STATUS_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES 0x03
-
-
-
- #define COMMAND_SS_IAS_ACE_ARM 0x00
- #define COMMAND_SS_IAS_ACE_BYPASS 0x01
- #define COMMAND_SS_IAS_ACE_EMERGENCY 0x02
- #define COMMAND_SS_IAS_ACE_FIRE 0x03
- #define COMMAND_SS_IAS_ACE_PANIC 0x04
- #define COMMAND_SS_IAS_ACE_GET_ZONE_ID_MAP 0x05
- #define COMMAND_SS_IAS_ACE_GET_ZONE_INFORMATION 0x06
-
- #define COMMAND_SS_IAS_ACE_ARM_RESPONSE 0x00
- #define COMMAND_SS_IAS_ACE_GET_ZONE_ID_MAP_RESPONSE 0x01
- #define COMMAND_SS_IAS_ACE_GET_ZONE_INFORMATION_RESPONSE 0x02
- #define SS_IAS_ACE_ARM_DISARM 0x00
- #define SS_IAS_ACE_ARM_DAY_HOME_ZONES_ONLY 0x01
- #define SS_IAS_ACE_ARM_NIGHT_SLEEP_ZONES_ONLY 0x02
- #define SS_IAS_ACE_ARM_ALL_ZONES 0x03
- #define SS_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_DISARMED 0x00
- #define SS_IAS_ACE_ARM_NOTIFICATION_DAY_HOME_ZONES_ONLY 0x01
- #define SS_IAS_ACE_ARM_NOTIFICATION_NIGHT_SLEEP_ZONES_ONLY 0x02
- #define SS_IAS_ACE_ARM_NOTIFICATION_ALL_ZONES_ARMED 0x03
-
- #define ATTRID_SS_IAS_WD_MAXIMUM_DURATION 0x0000
-
- #define COMMAND_SS_IAS_WD_START_WARNING 0x00
- #define COMMAND_SS_IAS_WD_SQUAWK 0x01
- #define SS_IAS_START_WARNING_WARNING_MODE_STOP 0
- #define SS_IAS_START_WARNING_WARNING_MODE_BURGLAR 1
- #define SS_IAS_START_WARNING_WARNING_MODE_FIRE 2
- #define SS_IAS_START_WARNING_WARNING_MODE_EMERGENCY 3
- #define SS_IAS_START_WARNING_STROBE_NO_STROBE_WARNING 0
- #define SS_IAS_START_WARNING_STROBE_USE_STPOBE_IN_PARALLEL_TO_WARNING 1
- #define SS_IAS_SQUAWK_SQUAWK_MODE_SYSTEM_ALARMED_NOTIFICATION_SOUND 0
- #define SS_IAS_SQUAWK_SQUAWK_MODE_SYSTEM_DISARMED_NOTIFICATION_SOUND 1
- #define SS_IAS_SQUAWK_STROBE_NO_STROBE_SQUAWK 0
- #define SS_IAS_SQUAWK_STROBE_USE_STROBE_BLINK_IN_PARALLEL_TO_SQUAWK 1
- #define SS_IAS_SQUAWK_SQUAWK_LEVEL_LOW_LEVEL_SOUND 0
- #define SS_IAS_SQUAWK_SQUAWK_LEVEL_MEDIUM_LEVEL_SOUND 1
- #define SS_IAS_SQUAWK_SQUAWK_LEVEL_HIGH_LEVEL_SOUND 2
- #define SS_IAS_SQUAWK_SQUAWK_LEVEL_VERY_HIGH_LEVEL_SOUND 3
- #define ZCL_SS_MAX_ZONES 256
- #define ZCL_SS_MAX_ZONE_ID 254
-
- typedef struct
- {
- uint8 zoneStatus;
- uint8 extendedStatus;
- } zclCmdSSIASZoneStatusChangeNotification_t;
- typedef struct
- {
- uint16 zoneType;
- uint16 manufacturerCode;
- } zclCmdSSIASZoneEnrollRequest_t;
- typedef struct
- {
- uint8 responseCode;
- uint8 zoneID;
- } zclCmdSSIASZoneEnrollResponse_t;
- typedef struct
- {
- uint8 zoneID;
- uint16 zoneType;
- uint8 zoneAddress[8];
- } IAS_ACE_ZoneTable_t;
- typedef uint8 zclCmdSSIASACEArmPayload_t;
- typedef struct
- {
- uint8 numZones;
- uint8 zoneID[];
- } zclCmdSSIASACEBypassPayload_t;
- typedef uint8 zclCmdSSIASACEGetZoneInformationPayload_t;
- typedef uint8 zclCmdSSIASACEArmResponsePayload_t;
- typedef uint16 zclCmdSSIASZoneIDMapSection_t[16];
- typedef struct
- {
- uint8 zoneID;
- uint16 zoneType;
- uint8 *ieeeAddress;
- } zclCmdSSIASACEGetZoneInformationResponsePayload_t;
- typedef struct
- {
- unsigned int warnMode:4;
- unsigned int warnStrobe:2;
- unsigned int reserved:2;
- } warningbits_t;
- typedef union
- {
- warningbits_t warningbits;
- uint8 warningbyte;
- } warning_t;
- typedef struct
- {
- warning_t warningmessage;
- uint16 duration;
- } zclCmdSSWDStartWarningPayload_t;
- typedef struct
- {
- unsigned int squawkMode:4;
- unsigned int strobe:1;
- unsigned int reserved:1;
- unsigned int squawkLevel:2;
- } squawkbits_t;
- typedef union
- {
- squawkbits_t squawkbits;
- uint8 squawkbyte;
- } zclCmdSSWDSquawkPayload_t;
- typedef struct
- {
- uint16 zoneStatus;
- uint8 extendedStatus;
- } zclZoneChangeNotif_t;
- typedef struct
- {
- afAddrType_t *srcAddr;
- uint8 zoneID;
- uint16 zoneType;
- uint16 manufacturerCode;
- } zclZoneEnrollReq_t;
- typedef struct
- {
- uint8 responseCode;
- uint8 zoneID;
- } zclZoneEnrollRsp_t;
- typedef struct
- {
- uint8 numberOfZones;
- uint8 *bypassBuf;
- } zclACEBypass_t;
- typedef struct
- {
- uint8 zoneID;
- uint16 zoneType;
- uint8 *ieeeAddr;
- } zclACEGetZoneInfoRsp_t;
- typedef struct
- {
- warning_t warnings;
- uint16 duration;
- } zclWDStartWarning_t;
- typedef void (*zclSS_ChangeNotification_t)( zclZoneChangeNotif_t *pCmd );
- typedef void (*zclSS_EnrollRequest_t)( zclZoneEnrollReq_t *pReq );
- typedef void (*zclSS_EnrollResponse_t)( zclZoneEnrollRsp_t *pRsp );
- typedef uint8 (*zclSS_ACE_Arm_t)( uint8 armMode );
- typedef void (*zclSS_ACE_Bypass_t)( zclACEBypass_t *pCmd );
- typedef void (*zclSS_ACE_Emergency_t)( void );
- typedef void (*zclSS_ACE_Fire_t)( void );
- typedef void (*zclSS_ACE_Panic_t)( void );
- typedef void (*zclSS_ACE_GetZoneIDMap_t)( void );
- typedef void (*zclSS_ACE_GetZoneInformation_t)( uint8 zoneID );
- typedef void (*zclSS_ACE_ArmResponse_t)( uint8 armNotification );
- typedef void (*zclSS_ACE_GetZoneIDMapResponse_t)( uint16 *zoneIDMap );
- typedef void (*zclSS_ACE_GetZoneInformationResponse_t)( zclACEGetZoneInfoRsp_t *pRsp );
- typedef void (*zclSS_WD_StartWarning_t)( zclWDStartWarning_t *pCmd );
- typedef void (*zclSS_WD_Squawk_t)( zclCmdSSWDSquawkPayload_t squawks );
- typedef struct
- {
- zclSS_ChangeNotification_t pfnChangeNotification;
- zclSS_EnrollRequest_t pfnEnrollRequest;
- zclSS_EnrollResponse_t pfnEnrollResponse;
- zclSS_ACE_Arm_t pfnACE_Arm;
- zclSS_ACE_Bypass_t pfnACE_Bypass;
- zclSS_ACE_Emergency_t pfnACE_Emergency;
- zclSS_ACE_Fire_t pfnACE_Fire;
- zclSS_ACE_Panic_t pfnACE_Panic;
-
-
- zclSS_ACE_ArmResponse_t pfnACE_ArmResponse;
- zclSS_ACE_GetZoneIDMapResponse_t pfnACE_GetZoneIDMapResponse;
- zclSS_ACE_GetZoneInformationResponse_t pfnACE_GetZoneInformationResponse;
- zclSS_WD_StartWarning_t pfnWD_StartWarning;
- zclSS_WD_Squawk_t pfnWD_Squawk;
- } zclSS_AppCallbacks_t;
- #ifdef ZCL_ACE
- #define zclSS_Send_IAS_ACE_EmergencyCmd(a,b,c,d) zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SS_IAS_ACE,\
- COMMAND_SS_IAS_ACE_EMERGENCY, TRUE,\
- ZCL_FRAME_CLIENT_SERVER_DIR, (c), 0, (d), 0, NULL )
- #define zclSS_Send_IAS_ACE_FireCmd(a,b,c,d) zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SS_IAS_ACE,\
- COMMAND_SS_IAS_ACE_FIRE, TRUE,\
- ZCL_FRAME_CLIENT_SERVER_DIR, (c), 0, (d), 0, NULL )
- #define zclSS_Send_IAS_ACE_PanicCmd(a,b,c,d) zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SS_IAS_ACE,\
- COMMAND_SS_IAS_ACE_PANIC, TRUE,\
- ZCL_FRAME_CLIENT_SERVER_DIR, (c), 0, (d), 0, NULL )
- #define zclSS_Send_IAS_ACE_GetZoneIDMapCmd(a,b,c,d) zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_SS_IAS_ACE,\
- COMMAND_SS_IAS_ACE_GET_ZONE_ID_MAP, TRUE,\
- ZCL_FRAME_CLIENT_SERVER_DIR, (c), 0, (d), 0, NULL )
- #endif
-
- extern ZStatus_t zclSS_RegisterCmdCallbacks( uint8 endpoint, zclSS_AppCallbacks_t *callbacks );
- #ifdef ZCL_ZONE
-
- extern ZStatus_t zclSS_IAS_Send_ZoneStatusChangeNotificationCmd( uint8 srcEP, afAddrType_t *dstAddr,
- uint16 zoneStatus, uint8 extendedStatus,
- uint8 disableDefaultRsp, uint8 seqNum );
-
- extern ZStatus_t zclSS_IAS_Send_ZoneStatusEnrollRequestCmd( uint8 srcEP, afAddrType_t *dstAddr,
- uint16 zoneType, uint16 manufacturerCode,
- uint8 disableDefaultRsp, uint8 seqNum );
-
- extern ZStatus_t zclSS_IAS_Send_ZoneStatusEnrollResponseCmd( uint8 srcEP, afAddrType_t *dstAddr,
- uint8 responseCode, uint8 zoneID,
- uint8 disableDefaultRsp, uint8 seqNum );
- #endif
- #ifdef ZCL_ACE
-
- extern ZStatus_t zclSS_Send_IAS_ACE_ArmCmd( uint8 srcEP, afAddrType_t *dstAddr,
- uint8 armMode, uint8 disableDefaultRsp, uint8 seqNum );
-
- extern ZStatus_t zclSS_Send_IAS_ACE_BypassCmd( uint8 srcEP, afAddrType_t *dstAddr,
- uint8 numberOfZones, uint8 *bypassBuf,
- uint8 disableDefaultRsp, uint8 seqNum );
-
- extern ZStatus_t zclSS_Send_IAS_ACE_GetZoneInformationCmd( uint8 srcEP, afAddrType_t *dstAddr,
- uint8 zoneID, uint8 disableDefaultRsp, uint8 seqNum );
-
- extern ZStatus_t zclSS_Send_IAS_ACE_ArmResponse( uint8 srcEP, afAddrType_t *dstAddr,
- uint8 armNotification, uint8 disableDefaultRsp, uint8 seqNum );
-
- extern ZStatus_t zclSS_Send_IAS_ACE_GetZoneIDMapResponseCmd( uint8 srcEP, afAddrType_t *dstAddr,
- uint16 *zoneIDMap, uint8 disableDefaultRsp, uint8 seqNum );
-
- extern ZStatus_t zclSS_Send_IAS_ACE_GetZoneInformationResponseCmd( uint8 srcEP, afAddrType_t *dstAddr,
- uint8 zoneID, uint16 zoneType, uint8 *ieeeAddress,
- uint8 disableDefaultRsp, uint8 seqNum );
- #endif
- #ifdef ZCL_WD
-
- extern ZStatus_t zclSS_Send_IAS_WD_StartWarningCmd( uint8 srcEP, afAddrType_t *dstAddr,
- zclCmdSSWDStartWarningPayload_t *warning,
- uint8 disableDefaultRsp, uint8 seqNum );
-
- extern ZStatus_t zclSS_Send_IAS_WD_SquawkCmd( uint8 srcEP, afAddrType_t *dstAddr,
- zclCmdSSWDSquawkPayload_t *squawk,
- uint8 disableDefaultRsp, uint8 seqNum );
- #endif
- #if defined(ZCL_ZONE) || defined(ZCL_ACE)
-
- extern void zclSS_UpdateZoneAddress( uint8 endpoint, uint8 zoneID, uint8 *ieeeAddr );
-
- extern uint8 zclSS_RemoveZone( uint8 endpoint, uint8 zoneID );
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif
|