Data Structures | |
| struct | zb_zcl_drlc_lce_payload_s |
| struct | zb_zcl_drlc_cancel_lce_payload_s |
| struct | zb_zcl_drlc_cancel_alce_payload_s |
| struct | zb_zcl_drlc_report_event_status_payload_s |
| struct | zb_zcl_drlc_get_scheduled_events_payload_s |
Macros | |
| #define | ZB_ZCL_DRLC_SRV_CMD_LOAD_CONTROL_EVENT_IS_VALID(size) ((size) >= sizeof(zb_zcl_drlc_lce_payload_t)) |
| #define | ZB_ZCL_DRLC_SRV_CMD_CANCEL_LOAD_CONTROL_EVENT_IS_VALID(size) ((size) >= sizeof(zb_zcl_drlc_cancel_lce_payload_t)) |
| #define | ZB_ZCL_DRLC_SRV_CMD_CANCEL_ALL_LOAD_CONTROL_EVENTS_IS_VALID(size) ((size) >= sizeof(zb_zcl_drlc_cancel_alce_payload_t)) |
| #define | ZB_ZCL_DRLC_CLI_CMD_REPORT_EVENT_STATUS_IS_VALID(size) ((size) >= sizeof(zb_zcl_drlc_report_event_status_payload_t)) |
| #define | ZB_ZCL_DRLC_LCE_PAYLOAD_INIT |
| #define | ZB_ZCL_DRLC_CANCEL_LCE_PAYLOAD_INIT (zb_zcl_drlc_cancel_lce_payload_t) {0} |
| #define | ZB_ZCL_DRLC_CANCEL_ALCE_PAYLOAD_INIT (zb_zcl_drlc_cancel_alce_payload_t) {0} |
| #define | ZB_ZCL_DRLC_REPORT_EVENT_STATUS_PAYLOAD_INIT |
| #define | ZB_ZCL_DRLC_GET_SCHEDULED_EVENTS_PAYLOAD_SIZE_IS_VALID(size) |
| #define | ZB_ZCL_DRLC_CMD_GET_SCHEDULED_EVENTS_PAYLOAD_INIT |
| #define | ZB_ZCL_DRLC_SEND_CMD_LOAD_CONTROL_EVENT(_param, _dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload) |
| #define | ZB_ZCL_DRLC_SEND_CMD_CANCEL_LCE(_param, _dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload) |
| #define | ZB_ZCL_DRLC_SEND_CMD_CANCEL_ALL_LCE(_param, _dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload) |
| #define | ZB_ZCL_DRLC_SEND_CMD_GET_SCHEDULED_EVENTS(_param, _dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload) |
| #define | ZB_ZCL_DRLC_SEND_CMD_REPORT_EVENT_STATUS(_param, _dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload) |
Typedefs | |
| typedef enum zb_zcl_drlc_srv_cmd_e | zb_zcl_drlc_srv_cmd_t |
| typedef enum zb_zcl_drlc_cli_cmd_e | zb_zcl_drlc_cli_cmd_t |
| typedef struct zb_zcl_drlc_lce_payload_s | zb_zcl_drlc_lce_payload_t |
| typedef struct zb_zcl_drlc_cancel_lce_payload_s | zb_zcl_drlc_cancel_lce_payload_t |
| typedef struct zb_zcl_drlc_cancel_alce_payload_s | zb_zcl_drlc_cancel_alce_payload_t |
| typedef struct zb_zcl_drlc_report_event_status_payload_s | zb_zcl_drlc_report_event_status_payload_t |
| typedef struct zb_zcl_drlc_get_scheduled_events_payload_s | zb_zcl_drlc_get_scheduled_events_payload_t |
Enumerations | |
| enum | zb_zcl_drlc_srv_cmd_e { ZB_ZCL_DRLC_SRV_CMD_LOAD_CONTROL_EVENT = 0x00, ZB_ZCL_DRLC_SRV_CMD_CANCEL_LOAD_CONTROL_EVENT = 0x01, ZB_ZCL_DRLC_SRV_CMD_CANCEL_ALL_LOAD_CONTROL_EVENTS = 0x02 } |
| enum | zb_zcl_drlc_cli_cmd_e { ZB_ZCL_DRLC_CLI_CMD_REPORT_EVENT_STATUS = 0x00, ZB_ZCL_DRLC_CLI_CMD_GET_SCHEDULED_EVENTS = 0x01 } |
Detailed Description
This section describes all commands structures and data payloads.
Macro Definition Documentation
◆ ZB_ZCL_DRLC_CANCEL_ALCE_PAYLOAD_INIT
| #define ZB_ZCL_DRLC_CANCEL_ALCE_PAYLOAD_INIT (zb_zcl_drlc_cancel_alce_payload_t) {0} |
Initialize CancelAllLoadControlEvents command zb_zcl_drlc_cancel_alce_payload_t payload
◆ ZB_ZCL_DRLC_CANCEL_LCE_PAYLOAD_INIT
| #define ZB_ZCL_DRLC_CANCEL_LCE_PAYLOAD_INIT (zb_zcl_drlc_cancel_lce_payload_t) {0} |
Initialize CancelLoadControlEvent command zb_zcl_drlc_cancel_lce_payload_t payload
◆ ZB_ZCL_DRLC_CMD_GET_SCHEDULED_EVENTS_PAYLOAD_INIT
| #define ZB_ZCL_DRLC_CMD_GET_SCHEDULED_EVENTS_PAYLOAD_INIT |
{ \ .issuer_event_id = 0xFFFFFFFF, \}struct zb_zcl_drlc_get_scheduled_events_payload_s zb_zcl_drlc_get_scheduled_events_payload_t
Initialize GetScheduledEvents command zb_zcl_drlc_get_scheduled_events_payload_t payload
◆ ZB_ZCL_DRLC_GET_SCHEDULED_EVENTS_PAYLOAD_SIZE_IS_VALID
| #define ZB_ZCL_DRLC_GET_SCHEDULED_EVENTS_PAYLOAD_SIZE_IS_VALID | ( | size | ) |
(zb_int16_t)ZB_SIZEOF_FIELD(zb_zcl_drlc_get_scheduled_events_payload_t, issuer_event_id)))Definition: zb_zcl_drlc.h:434
struct zb_zcl_drlc_get_scheduled_events_payload_s zb_zcl_drlc_get_scheduled_events_payload_t
Check if some size in range of variable size of specified payload.
◆ ZB_ZCL_DRLC_LCE_PAYLOAD_INIT
| #define ZB_ZCL_DRLC_LCE_PAYLOAD_INIT |
{ \ .cooling_temperature_offset = 0xFF, \ .heating_temperature_offset = 0xFF, \ .cooling_temperature_set_point = (zb_int16_t) 0x8000, \ .heating_temperature_set_point = (zb_int16_t) 0x8000, \ .average_load_adjustment_percentage = (zb_int8_t) 0x80, \ .duty_cycle = 0xFF, \}struct zb_zcl_drlc_lce_payload_s zb_zcl_drlc_lce_payload_t
Initialize LoadControlEvent command zb_zcl_drlc_lce_payload_t payload
◆ ZB_ZCL_DRLC_REPORT_EVENT_STATUS_PAYLOAD_INIT
| #define ZB_ZCL_DRLC_REPORT_EVENT_STATUS_PAYLOAD_INIT |
{ \ .cooling_temperature_set_point_applied = (zb_uint16_t) 0x8000, \ .heating_temperature_set_point_applied = (zb_uint16_t) 0x8000, \ .average_load_adjustment_percentage_applied = (zb_int8_t) 0x80, \ .duty_cycle_applied = (zb_uint8_t) 0xFF, \ .signature = \ { \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ }, \}unsigned short zb_uint16_tProject-local 2-byte unsigned int type. Definition: zb_types.h:159
struct zb_zcl_drlc_report_event_status_payload_s zb_zcl_drlc_report_event_status_payload_t
unsigned char zb_uint8_tProject-local 1-byte unsigned int type. Definition: zb_types.h:155
Initialize ReportEventStatus command zb_zcl_drlc_report_event_status_payload_t payload
◆ ZB_ZCL_DRLC_SEND_CMD_CANCEL_ALL_LCE
| #define ZB_ZCL_DRLC_SEND_CMD_CANCEL_ALL_LCE | ( | _param, | |
| _dst_addr, | |||
| _dst_addr_mode, | |||
| _dst_ep, | |||
| _src_ep, | |||
| _payload | |||
| ) |
_dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload, NULL)void zb_drlc_server_send_cancel_all_load_control_events(zb_uint8_t param, zb_addr_u *dst_addr, zb_aps_addr_mode_t dst_addr_mode, zb_uint8_t dst_ep, zb_uint8_t src_ep, zb_uint8_t *payload, zb_callback_t cb)
Macro for call zb_drlc_server_send_cancel_all_load_control_events function
◆ ZB_ZCL_DRLC_SEND_CMD_CANCEL_LCE
| #define ZB_ZCL_DRLC_SEND_CMD_CANCEL_LCE | ( | _param, | |
| _dst_addr, | |||
| _dst_addr_mode, | |||
| _dst_ep, | |||
| _src_ep, | |||
| _payload | |||
| ) |
_dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload, NULL)void zb_drlc_server_send_cancel_load_control_event(zb_uint8_t param, zb_addr_u *dst_addr, zb_aps_addr_mode_t dst_addr_mode, zb_uint8_t dst_ep, zb_uint8_t src_ep, zb_zcl_drlc_cancel_lce_payload_t *payload, zb_callback_t cb)
Macro for call zb_drlc_server_send_cancel_load_control_event function
◆ ZB_ZCL_DRLC_SEND_CMD_GET_SCHEDULED_EVENTS
| #define ZB_ZCL_DRLC_SEND_CMD_GET_SCHEDULED_EVENTS | ( | _param, | |
| _dst_addr, | |||
| _dst_addr_mode, | |||
| _dst_ep, | |||
| _src_ep, | |||
| _payload | |||
| ) |
zb_drlc_client_send_get_scheduled_events(_param, \ _dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload, NULL)void zb_drlc_client_send_get_scheduled_events(zb_uint8_t param, zb_addr_u *dst_addr, zb_aps_addr_mode_t dst_addr_mode, zb_uint8_t dst_ep, zb_uint8_t src_ep, zb_zcl_drlc_get_scheduled_events_payload_t *payload, zb_callback_t cb)
Macro for call zb_drlc_client_send_get_scheduled_events function
◆ ZB_ZCL_DRLC_SEND_CMD_LOAD_CONTROL_EVENT
| #define ZB_ZCL_DRLC_SEND_CMD_LOAD_CONTROL_EVENT | ( | _param, | |
| _dst_addr, | |||
| _dst_addr_mode, | |||
| _dst_ep, | |||
| _src_ep, | |||
| _payload | |||
| ) |
zb_drlc_server_send_load_control_event(_param, \ _dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload, NULL)void zb_drlc_server_send_load_control_event(zb_uint8_t param, zb_addr_u *dst_addr, zb_aps_addr_mode_t dst_addr_mode, zb_uint8_t dst_ep, zb_uint8_t src_ep, zb_zcl_drlc_lce_payload_t *payload, zb_callback_t cb)
Macro for call zb_drlc_server_send_load_control_event function
◆ ZB_ZCL_DRLC_SEND_CMD_REPORT_EVENT_STATUS
| #define ZB_ZCL_DRLC_SEND_CMD_REPORT_EVENT_STATUS | ( | _param, | |
| _dst_addr, | |||
| _dst_addr_mode, | |||
| _dst_ep, | |||
| _src_ep, | |||
| _payload | |||
| ) |
zb_drlc_client_send_report_event_status(_param, \ _dst_addr, _dst_addr_mode, _dst_ep, _src_ep, _payload, NULL)void zb_drlc_client_send_report_event_status(zb_uint8_t param, zb_addr_u *dst_addr, zb_aps_addr_mode_t dst_addr_mode, zb_uint8_t dst_ep, zb_uint8_t src_ep, zb_zcl_drlc_report_event_status_payload_t *payload, zb_callback_t cb)
Macro for call zb_drlc_client_send_report_event_status function
Typedef Documentation
◆ zb_zcl_drlc_cancel_alce_payload_t
CancelAllLoadControlEvents command payload
- See also
- SE spec, Figure D-3
◆ zb_zcl_drlc_cancel_lce_payload_t
| typedef struct zb_zcl_drlc_cancel_lce_payload_s zb_zcl_drlc_cancel_lce_payload_t |
CancelLoadControlEvent command payload
- See also
- SE spec, Figure D-3
◆ zb_zcl_drlc_cli_cmd_t
| typedef enum zb_zcl_drlc_cli_cmd_e zb_zcl_drlc_cli_cmd_t |
Commands are generated by DRLC Client.
- See also
- SE spec, Table D-8
◆ zb_zcl_drlc_get_scheduled_events_payload_t
GetScheduledEvents command payload
- See also
- SE spec, Figure D-6
◆ zb_zcl_drlc_lce_payload_t
| typedef struct zb_zcl_drlc_lce_payload_s zb_zcl_drlc_lce_payload_t |
LoadControlEvent command payload.
- See also
- SE spec, Figure D-2
◆ zb_zcl_drlc_report_event_status_payload_t
ReportEventStatus command payload
- See also
- SE spec, Figure D-5
◆ zb_zcl_drlc_srv_cmd_t
| typedef enum zb_zcl_drlc_srv_cmd_e zb_zcl_drlc_srv_cmd_t |
Commands are generated by DRLC Server.
- See also
- SE spec, Table D-1
Enumeration Type Documentation
◆ zb_zcl_drlc_cli_cmd_e
Commands are generated by DRLC Client.
- See also
- SE spec, Table D-8
◆ zb_zcl_drlc_srv_cmd_e
Commands are generated by DRLC Server.
- See also
- SE spec, Table D-1
| Enumerator | |
|---|---|
| ZB_ZCL_DRLC_SRV_CMD_LOAD_CONTROL_EVENT | LoadControlEvent is generated when the ESI wants to control one or more load control devices usually as the result of an energy curtailment command from the Smart Energy Network.
|
| ZB_ZCL_DRLC_SRV_CMD_CANCEL_LOAD_CONTROL_EVENT | CancelLoadControlEvent is generated when the ESI wants to cancel previously scheduled control of one or more load control devices, usually as the result of an energy curtailment command from the Smart Energy Network
|
| ZB_ZCL_DRLC_SRV_CMD_CANCEL_ALL_LOAD_CONTROL_EVENTS | CancellAllLoadControlEvents is generated when the ESI wants to cancel all events for control device(s) |
Function Documentation
◆ zb_drlc_client_send_get_scheduled_events()
| void zb_drlc_client_send_get_scheduled_events | ( | zb_uint8_t | param, |
| zb_addr_u * | dst_addr, | ||
| zb_aps_addr_mode_t | dst_addr_mode, | ||
| zb_uint8_t | dst_ep, | ||
| zb_uint8_t | src_ep, | ||
| zb_zcl_drlc_get_scheduled_events_payload_t * | payload, | ||
| zb_callback_t | cb | ||
| ) |
Function for send GetScheduledEvents command. On receiver's side callback ZCL device callback ZB_ZCL_REGISTER_DEVICE_CB will be called with ZB_ZCL_DRLC_GET_SCHEDULED_EVENTS_CB_ID callback id.
- Parameters
-
param - Reference to buffer. dst_addr - Address of the device to send command to. dst_addr_mode - Address mode for dst_addr. dst_ep - Destination endpoint. src_ep - Current endpoint. payload - Packet payload (zb_zcl_drlc_get_scheduled_events_payload_t). cb - Callback which should be called when the ZCL stack receives APS ack.
- Usage
Example of sending GetScheduledEvents{zb_zcl_drlc_get_scheduled_events_payload_t payload = ZB_ZCL_DRLC_CMD_GET_SCHEDULED_EVENTS_PAYLOAD_INIT;TRACE_MSG(TRACE_APP1, ">> ihd_dev_cmd_get_scheduled_events, param=%hd",(FMT__H, param));if (!param){zb_buf_get_out_delayed_ext(ihd_dev_cmd_get_scheduled_events, user_param, 0);}else{zb_uint32_t curr_time;curr_time = ihd_dev_get_network_time(); /* NOTE: current function is called after time sync */payload.start_time = curr_time; /* (M) */payload.number_of_events = 0; /* (M) */(zb_addr_u *)&g_dev_ctx.dev.lst[user_param].dev_addr,g_dev_ctx.dev.lst[user_param].dev_ep,IHD_DEV_ENDPOINT,&payload);}TRACE_MSG(TRACE_APP1, "<< ihd_dev_cmd_get_scheduled_events", (FMT__0));}
◆ zb_drlc_client_send_report_event_status()
| void zb_drlc_client_send_report_event_status | ( | zb_uint8_t | param, |
| zb_addr_u * | dst_addr, | ||
| zb_aps_addr_mode_t | dst_addr_mode, | ||
| zb_uint8_t | dst_ep, | ||
| zb_uint8_t | src_ep, | ||
| zb_zcl_drlc_report_event_status_payload_t * | payload, | ||
| zb_callback_t | cb | ||
| ) |
Function for send ReportEventStatus command. On sender's side callback ZCL device callback ZB_ZCL_REGISTER_DEVICE_CB will be called with one of ZB_ZCL_DRLC_LOAD_CONTROL_EVENT_CB_ID, ZB_ZCL_DRLC_CANCEL_LOAD_CONTROL_EVENT_CB_ID, ZB_ZCL_DRLC_CANCEL_ALL_LOAD_CONTROL_EVENTS_CB_ID callback ids on reception of LoadControlEvent, CancelLoadControlEvent, CancellAllLoadControlEvents commands respectively.
On receiver's side callback ZCL device callback ZB_ZCL_REGISTER_DEVICE_CB will be called with ZB_ZCL_DRLC_REPORT_EVENT_STATUS_CB_ID callback id.
- Parameters
-
param - Reference to buffer. dst_addr - Address of the device to send command to. dst_addr_mode - Address mode for dst_addr. dst_ep - Destination endpoint. src_ep - Current endpoint. payload - Packet payload (zb_zcl_drlc_report_event_status_payload_t). cb - Callback which should be called when the ZCL stack receives APS ack.
- Usage
Handle CancellAllLoadControlEvents command/** Handle received DRLC - Cancel All Load Control Events command. */static void ihd_handle_cancel_all_load_control_events(zb_uint8_t cancel_control, const zb_zcl_parsed_hdr_t *in_cmd_info){zb_ieee_addr_t ieee_addr;zb_uint8_t dev_idx;if (zb_address_ieee_by_short(ZB_ZCL_PARSED_HDR_SHORT_DATA(in_cmd_info).source.u.short_addr, ieee_addr) == RET_OK){dev_idx = ihd_dev_get_idx(ieee_addr,in_cmd_info->cluster_id,ZB_ZCL_PARSED_HDR_SHORT_DATA(in_cmd_info).src_endpoint);TRACE_MSG(TRACE_APP1, ">> ihd_handle_cancel_all_load_control_events(cancel_control=0x%hx) <<",(FMT__H, cancel_control));if (dev_idx != 0xFF && ZB_ZCL_PARSED_HDR_SHORT_DATA(in_cmd_info).source.u.short_addr ==zb_address_short_by_ieee(g_dev_ctx.dev.lst[dev_idx].dev_addr)){TRACE_MSG(TRACE_APP1, "cancel all events from binded drlc, schedule event_status", (FMT__0));ZB_SCHEDULE_APP_CALLBACK2(ihd_send_report_event_status, 0, dev_idx);}}}
Example of sending ReportEventStatus command/** Send DRLC - Report Event Status command. */{TRACE_MSG(TRACE_APP1, ">> ihd_send_report_event_status param %hd", (FMT__H, param));if (!param){zb_buf_get_out_delayed_ext(ihd_send_report_event_status, user_param, 0);}else{ZB_ASSERT(g_dev_ctx.dev.lst[user_param].used);/*Here we must get events if present and pass them to client*/payload.issuer_event_id = 0x01; /* (M) */payload.event_status_time = ihd_dev_get_network_time(); /* (M) */payload.criticality_level_applied = 0x22; /* (M) */payload.event_control = 0xbc; /* (M) */param,(zb_addr_u *)&g_dev_ctx.dev.lst[user_param].dev_addr,g_dev_ctx.dev.lst[user_param].dev_ep,IHD_DEV_ENDPOINT,&payload);}TRACE_MSG(TRACE_APP1, "<< ihd_send_report_event_status", (FMT__0));}
◆ zb_drlc_server_send_cancel_all_load_control_events()
| void zb_drlc_server_send_cancel_all_load_control_events | ( | zb_uint8_t | param, |
| zb_addr_u * | dst_addr, | ||
| zb_aps_addr_mode_t | dst_addr_mode, | ||
| zb_uint8_t | dst_ep, | ||
| zb_uint8_t | src_ep, | ||
| zb_uint8_t * | payload, | ||
| zb_callback_t | cb | ||
| ) |
Function for send CancellAllLoadControlEvents command. On receiver's side callback ZCL device callback ZB_ZCL_REGISTER_DEVICE_CB will be called with ZB_ZCL_DRLC_CANCEL_ALL_LOAD_CONTROL_EVENTS_CB_ID
- Parameters
-
param - Reference to buffer. dst_addr - Address of the device to send command to. dst_addr_mode - Address mode for dst_addr. dst_ep - Destination endpoint. src_ep - Current endpoint. payload - Packet payload: pointer to zb_uint8_t, where "Cancel Control" field value is placed (see SE spec, D.2.2.3.3.1). cb - Callback which should be called when the ZCL stack receives APS ack.
- Usage
Example of sending CancellAllLoadControlEvents command/** Send DRLC - Cancel All Load Control Events command. */{zb_uint8_t cancel_control;if (!param){zb_buf_get_out_delayed(esi_dev_cmd_send_lce_event3);}else{cancel_control = 0;&g_dev_ctx.drlc_client_address,g_dev_ctx.drlc_client_ep,ESI_DEV_ENDPOINT,&cancel_control);ZB_SCHEDULE_APP_ALARM(esi_dev_cmd_send_lce_event1, 0, ESI_LOAD_CONTROL_EVENT_GROUP_TIMEOUT);}}
◆ zb_drlc_server_send_cancel_load_control_event()
| void zb_drlc_server_send_cancel_load_control_event | ( | zb_uint8_t | param, |
| zb_addr_u * | dst_addr, | ||
| zb_aps_addr_mode_t | dst_addr_mode, | ||
| zb_uint8_t | dst_ep, | ||
| zb_uint8_t | src_ep, | ||
| zb_zcl_drlc_cancel_lce_payload_t * | payload, | ||
| zb_callback_t | cb | ||
| ) |
Function for send CancelLoadControlEvent command. On receiver's side callback ZCL device callback ZB_ZCL_REGISTER_DEVICE_CB will be called with ZB_ZCL_DRLC_CANCEL_LOAD_CONTROL_EVENT_CB_ID
- Parameters
-
param - Reference to buffer. dst_addr - Address of the device to send command to. dst_addr_mode - Address mode for dst_addr. dst_ep - Destination endpoint. src_ep - Current endpoint. payload - Packet payload (zb_zcl_drlc_cancel_lce_payload_t). cb - Callback which should be called when the ZCL stack receives APS ack.
- Usage
Example of sending CancelLoadControlEvent command/** Send DRLC - Cancel Load Control Event command. */{zb_zcl_drlc_cancel_lce_payload_t payload;if (!param){zb_buf_get_out_delayed(esi_dev_cmd_send_lce_event2);}else{payload.issuer_event_id = 0x01;payload.device_class = ZB_ZCL_DRLC_DEVICE_CLASS_POOL_PUMP;payload.utility_enrollment_group = 0x88;payload.cancel_control = 0;payload.effective_time = 0; /* 0 means now *//* Note: effective_time: This field is deprecated; a Cancel Load Control command shall* now take immediate effect. A value of 0x00000000 shall be used in all Cancel Load Control* commands. */&g_dev_ctx.drlc_client_address,g_dev_ctx.drlc_client_ep,ESI_DEV_ENDPOINT,&payload);ZB_SCHEDULE_APP_ALARM(esi_dev_cmd_send_lce_event3, 0, ESI_LOAD_CONTROL_EVENT_TIMEOUT);}}
◆ zb_drlc_server_send_load_control_event()
| void zb_drlc_server_send_load_control_event | ( | zb_uint8_t | param, |
| zb_addr_u * | dst_addr, | ||
| zb_aps_addr_mode_t | dst_addr_mode, | ||
| zb_uint8_t | dst_ep, | ||
| zb_uint8_t | src_ep, | ||
| zb_zcl_drlc_lce_payload_t * | payload, | ||
| zb_callback_t | cb | ||
| ) |
Function for send LoadControlEvent command. On sender's side callback ZCL device callback ZB_ZCL_REGISTER_DEVICE_CB will be called with ZB_ZCL_DRLC_GET_SCHEDULED_EVENTS_CB_ID callback id on reception of GetScheduledEvents command.
On receiver's side callback ZCL device callback ZB_ZCL_REGISTER_DEVICE_CB will be called with ZB_ZCL_DRLC_LOAD_CONTROL_EVENT_CB_ID callback id.
- Parameters
-
param - Reference to buffer. dst_addr - Address of the device to send command to. dst_addr_mode - Address mode for dst_addr. dst_ep - Destination endpoint. src_ep - Current endpoint. payload - Packet payload (zb_zcl_drlc_lce_payload_t). cb - Callback which should be called when the ZCL stack receives APS ack.
- Usage
Handle ZB_ZCL_DRLC_GET_SCHEDULED_EVENTS_CB_ID/** Get application parameters for DRLC - Get Scheduled Events command.Now emulate some real values. */static void handle_get_scheduled_events(const zb_zcl_drlc_get_scheduled_events_payload_t *in,{TRACE_MSG(TRACE_APP1, ">> handle_get_scheduled_events(in=%p, out=%p) <<", (FMT__P_P, in,out));/*Here we must get events if present and pass them to client*/out->issuer_event_id = 0x01;out->utility_enrollment_group = 0x88;out->start_time = zb_get_utc_time()+3;out->duration_in_minutes = 1;out->criticality_level = 0x56;out->event_control = 0xab;}
Example of sending LoadControlEvent command/** Send DRLC - Load Control Event command.Emulate real device behavior - send Load Control Event, then after 5 sec(ESI_LOAD_CONTROL_EVENT_TIMEOUT) - Cancel Load Control Event, then after 5 sec - Cancel AllLoad Control Events.Repeat every 60 sec (ESI_LOAD_CONTROL_EVENT_GROUP_TIMEOUT).*/{if (!param){zb_buf_get_out_delayed(esi_dev_cmd_send_lce_event1);}else{payload.issuer_event_id = 0x01;payload.device_class = ZB_ZCL_DRLC_DEVICE_CLASS_POOL_PUMP;payload.utility_enrollment_group = 0x88;payload.start_time = zb_get_utc_time();payload.duration_in_minutes = 1;payload.criticality_level = 0x56;payload.event_control = 0xab;&g_dev_ctx.drlc_client_address,g_dev_ctx.drlc_client_ep,ESI_DEV_ENDPOINT,&payload);ZB_SCHEDULE_APP_ALARM(esi_dev_cmd_send_lce_event2, 0, ESI_LOAD_CONTROL_EVENT_TIMEOUT);}}