521 lines
24 KiB
C
521 lines
24 KiB
C
/*
|
||
* Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA
|
||
* Copyright (c) 2021-2022 Espressif Systems (Shanghai) PTE LTD
|
||
* All rights reserved.
|
||
*
|
||
*
|
||
* Redistribution and use in source and binary forms, with or without modification,
|
||
* are permitted provided that the following conditions are met:
|
||
*
|
||
* 1. Redistributions of source code must retain the above copyright notice,
|
||
* this list of conditions and the following disclaimer.
|
||
*
|
||
* 2. Redistributions in binary form, except as embedded into a Espressif Systems
|
||
* integrated circuit in a product or a software update for such product,
|
||
* must reproduce the above copyright notice, this list of conditions and
|
||
* the following disclaimer in the documentation and/or other materials
|
||
* provided with the distribution.
|
||
*
|
||
* 3. Neither the name of the copyright holder nor the names of its contributors
|
||
* may be used to endorse or promote products derived from this software without
|
||
* specific prior written permission.
|
||
*
|
||
* 4. Any software provided in binary form under this license must not be reverse
|
||
* engineered, decompiled, modified and/or disassembled.
|
||
*
|
||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||
* POSSIBILITY OF SUCH DAMAGE.
|
||
*/
|
||
/* PURPOSE: Events cluster definitions
|
||
*/
|
||
|
||
#ifndef ZB_ZCL_EVENTS_H_
|
||
#define ZB_ZCL_EVENTS_H_
|
||
|
||
#include "zboss_api_core.h" /* ZBOSS core API types */
|
||
|
||
/** @cond DOXYGEN_ZCL_SECTION && DOXYGEN_SE_SECTION */
|
||
|
||
/** @addtogroup ZB_ZCL_EVENTS
|
||
* @{
|
||
* @details
|
||
* The Events cluster provides an interface for passing event information
|
||
* between Zigbee devices. Events are generated and logged by a server device
|
||
* and read by a client device.
|
||
*/
|
||
|
||
/** @defgroup ZB_ZCL_EVENTS_COMMANDS Events cluster commands
|
||
* @{
|
||
*/
|
||
|
||
/** Commands are generated by Events Server.
|
||
* @see SE spec, subclause 11.2.4
|
||
*/
|
||
typedef enum zb_zcl_events_srv_cmd_e
|
||
{
|
||
ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT = 0x00, /**< This command is generated upon an event trigger from within the reporting
|
||
* device and if enabled by the associated Event Configuration (bitmap)
|
||
* attribute in the Device Management cluster
|
||
* @see zb_zcl_events_publish_event_payload_t
|
||
*/
|
||
|
||
ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT_LOG = 0x01, /**< This command is generated on receipt of a Get Event Log command.
|
||
* The command shall return the most recent event first, up to the number
|
||
* of events requested.
|
||
* @see zb_zcl_events_publish_event_log_payload_t
|
||
*/
|
||
|
||
ZB_ZCL_EVENTS_SRV_CMD_CLEAR_EVENT_LOG_RESPONSE = 0x02, /**< This command is generated on receipt of a Clear Event Log Request command.
|
||
* @see zb_zcl_events_clear_event_log_response_t
|
||
*/
|
||
|
||
} zb_zcl_events_srv_cmd_t;
|
||
|
||
|
||
/** Commands are generated by Events Client.
|
||
* @see SE spec, subclause 11.2.3
|
||
*/
|
||
typedef enum zb_zcl_events_cli_cmd_e
|
||
{
|
||
ZB_ZCL_EVENTS_CLI_CMD_GET_EVENT_LOG = 0x00, /**< The GetEventLog command allows a client to request events from a server’s
|
||
* event logs. One or more PublishEventLog commands are returned on receipt
|
||
* of this command.
|
||
* @see zb_zcl_events_get_event_log_payload_t
|
||
*/
|
||
|
||
ZB_ZCL_EVENTS_CLI_CMD_CLEAR_EVENT_LOG_REQUEST = 0x01, /**< This command requests that an Events server device clear the specified
|
||
* event log(s). The Events server device SHOULD clear the requested events
|
||
* logs, however it is understood that market specific restrictions may be
|
||
* applied to prevent this.
|
||
* @see zb_zcl_events_clear_event_log_request_s
|
||
*/
|
||
|
||
} zb_zcl_events_cli_cmd_t;
|
||
|
||
|
||
/* EVENTS cluster commands list : only for information - do not modify */
|
||
#define ZB_ZCL_CLUSTER_ID_EVENTS_SERVER_ROLE_GENERATED_CMD_LIST \
|
||
ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT, \
|
||
ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT_LOG, \
|
||
ZB_ZCL_EVENTS_SRV_CMD_CLEAR_EVENT_LOG_RESPONSE
|
||
|
||
#define ZB_ZCL_CLUSTER_ID_EVENTS_CLIENT_ROLE_RECEIVED_CMD_LIST ZB_ZCL_CLUSTER_ID_EVENTS_SERVER_ROLE_GENERATED_CMD_LIST
|
||
|
||
#define ZB_ZCL_CLUSTER_ID_EVENTS_CLIENT_ROLE_GENERATED_CMD_LIST \
|
||
ZB_ZCL_EVENTS_CLI_CMD_GET_EVENT_LOG, \
|
||
ZB_ZCL_EVENTS_CLI_CMD_CLEAR_EVENT_LOG_REQUEST
|
||
|
||
#define ZB_ZCL_CLUSTER_ID_EVENTS_SERVER_ROLE_RECEIVED_CMD_LIST ZB_ZCL_CLUSTER_ID_EVENTS_CLIENT_ROLE_GENERATED_CMD_LIST
|
||
|
||
|
||
/** Log ID enumeration
|
||
* @see SE spec, Table D-186
|
||
*/
|
||
typedef enum zb_zcl_events_log_id_e
|
||
{
|
||
ZB_ZCL_EVENTS_LOG_ID_ALL_LOGS = 0x00, /**< All logs */
|
||
ZB_ZCL_EVENTS_LOG_ID_TAMPER_LOG, /**< Tamper Log */
|
||
ZB_ZCL_EVENTS_LOG_ID_FAULT_LOG, /**< Fault Log */
|
||
ZB_ZCL_EVENTS_LOG_ID_GENERAL_EVENT_LOG, /**< General Event Log */
|
||
ZB_ZCL_EVENTS_LOG_ID_SECURITY_EVENT_LOG, /**< Security Event Log */
|
||
ZB_ZCL_EVENTS_LOG_ID_NETWORK_EVENT_LOG /**< Network Event Log */
|
||
} zb_zcl_events_log_id_t;
|
||
|
||
/** @brief Default value for Events cluster revision global attribute */
|
||
#define ZB_ZCL_EVENTS_CLUSTER_REVISION_DEFAULT ((zb_uint16_t)0x0001u)
|
||
|
||
/*!
|
||
@brief Declare attribute list for Events cluster (only cluster revision attribute)
|
||
@param attr_list - attribute list name
|
||
*/
|
||
#define ZB_ZCL_DECLARE_EVENTS_ATTR_LIST(attr_list) \
|
||
ZB_ZCL_START_DECLARE_ATTRIB_LIST_CLUSTER_REVISION(attr_list, ZB_ZCL_EVENTS) \
|
||
ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST
|
||
|
||
/** Macro for get log_id value from 8-bit field
|
||
* @param x - 8-bit field that contains log_id value in
|
||
* the least significant nibble.
|
||
* @see @ref zb_zcl_events_publish_event_payload_t, @ref zb_zcl_events_get_event_log_payload_t,
|
||
* @ref zb_zcl_events_clear_event_log_request_t, @ref zb_zcl_events_sub_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_GET_LOG_ID_FIELD(x) ((x) & 0xF)
|
||
|
||
|
||
/** Macro for set log_id value to 8-bit field
|
||
* @param x - 8-bit field to store log_id value in the least
|
||
* significant nibble
|
||
* @param val - value to assigning
|
||
* @see @ref zb_zcl_events_publish_event_payload_t, @ref zb_zcl_events_get_event_log_payload_t,
|
||
* @ref zb_zcl_events_clear_event_log_request_t, @ref zb_zcl_events_sub_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_SET_LOG_ID_FIELD(x, val) ((x) &= (0xF0 | ((val) & 0xF)))
|
||
|
||
|
||
/** Macro for get event_control value from 8-bit field
|
||
* @param x - 8-bit field that contains event_control value
|
||
* in the most significant nibble.
|
||
* @see @ref zb_zcl_events_get_event_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_GET_EVENT_CONTROL_FIELD(x) (((x) & 0xF0) >> 4)
|
||
|
||
|
||
/** Macro for set event_control value to 8-bit field
|
||
* @param x - 8-bit field to store event_control value in the most
|
||
* significant nibble.
|
||
* @param val - value to assigning
|
||
* @see @ref zb_zcl_events_get_event_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_SET_EVENT_CONTROL_FIELD(x, val) ((x) &= (0xF | ((val) & 0xF) << 4)
|
||
|
||
|
||
/** Macro for get log_payload_control value from 8-bit field
|
||
* @param x - 8-bit field that contains log_payload_control value
|
||
* in the least significant nibble
|
||
* @see @ref zb_zcl_events_sub_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_GET_LOG_PAYLOAD_CONTROL_FIELD(x) ((x) & 0xF)
|
||
|
||
|
||
/** Macro for set log_payload_control value to 8-bit field
|
||
* @param x - 8-bit field to store log_payload_control value in
|
||
* the least significant nibble.
|
||
* @param val - value to assigning
|
||
* @see @ref zb_zcl_events_sub_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_SET_LOG_PAYLOAD_CONTROL_FIELD(x, val) ((x) &= (0xF0 | ((val) & 0xF)))
|
||
|
||
|
||
/** Macro for get number_of_events value from 8-bit field
|
||
* @param x - 8-bit field that contains number_of_events value
|
||
* in the most significant nibble.
|
||
* @see @ref zb_zcl_events_sub_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_GET_NUMBER_OF_EVENTS(x) (((x) & 0xF0) >> 4)
|
||
|
||
|
||
/** Macro for set number_of_events value to 8-bit field
|
||
* @param x - 8-bit field to store number_of_events value in the
|
||
* most significant nibble.
|
||
* @param val - value to assigning
|
||
* @see @ref zb_zcl_events_sub_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_SET_NUMBER_OF_EVENTS(x, val) ((x) &= (0xF | ((val) & 0xF) << 4))
|
||
|
||
|
||
/** @ref ZB_ZCL_EVENTS_CLI_CMD_GET_EVENT_LOG "GetEventLog" Command payload.
|
||
* @see SE spec, subclause 11.2.3.1
|
||
*/
|
||
typedef ZB_PACKED_PRE struct zb_zcl_events_get_event_log_payload_s
|
||
{
|
||
/** The least significant nibble is an enumeration indicating
|
||
* the Log ID from particular enumeration.
|
||
* The most significant nibble is a bitmap indicating
|
||
* control options. It determines the detailing level of provided log
|
||
* information.
|
||
*/
|
||
zb_uint8_t event_control_log_id; /* (M) */
|
||
|
||
|
||
/** The Event ID specifies a particular event to be queried; a value of
|
||
* 0x0000 is reserved to indicate all Event IDs.
|
||
*/
|
||
zb_uint16_t event_id; /* (M) */
|
||
|
||
/**This field specifies the start time (earliest time) of the range of events
|
||
* to be returned. Events that match the search criteria and have a timestamp
|
||
* greater than or equal to the start time shall be returned.
|
||
*/
|
||
zb_uint32_t start_time; /* (M) */
|
||
|
||
/** Specifies the end time (latest time) of the range of events to be reported
|
||
* in the response. Events that match the search criteria and have a timestamp
|
||
* less than the specified end time shall be returned. Events with a timestamp
|
||
* equal to that of the End Time shall not be returned
|
||
*/
|
||
zb_uint32_t end_time; /* (M) */
|
||
|
||
/** This parameter indicates the maximum number of events requested i.e.
|
||
* the maximum number of events that the client is willing to receive;
|
||
* the value 0x00 indicates all events that fall into the defined criteria.
|
||
*/
|
||
zb_uint8_t number_of_events; /* (M) */
|
||
|
||
/** The Event Offset field provides a mechanism to allow client devices
|
||
* to page through multiple events which match a given search criteria.
|
||
*/
|
||
zb_uint16_t event_offset; /* (M) */
|
||
|
||
} ZB_PACKED_STRUCT zb_zcl_events_get_event_log_payload_t;
|
||
|
||
|
||
/** @ref ZB_ZCL_EVENTS_CLI_CMD_CLEAR_EVENT_LOG_REQUEST "ClearEventLogRequest" command payload
|
||
* @see SE spec, subclause D.11.2.3.2
|
||
*/
|
||
typedef ZB_PACKED_PRE struct zb_zcl_events_clear_event_log_request_s
|
||
{
|
||
/** The least significant nibble specifies the Log to be cleared.
|
||
* The most significant nibble is reserved.
|
||
*/
|
||
zb_uint8_t log_id;
|
||
} ZB_PACKED_STRUCT zb_zcl_events_clear_event_log_request_t;
|
||
|
||
|
||
/** @ref ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT "PublishEvent" Command payload
|
||
* @see SE spec, subclause 11.2.4.1
|
||
*/
|
||
typedef ZB_PACKED_PRE struct zb_zcl_events_publish_event_payload_s {
|
||
|
||
/** The least significant nibble is an enumeration indicating the Log ID.
|
||
* The most significant nibble is reserved.
|
||
*/
|
||
zb_uint8_t log_id; /* (M) */
|
||
|
||
/** The Event ID specifies a particular event
|
||
*/
|
||
zb_uint16_t event_id; /* (M) */
|
||
|
||
/** The timestamp of the event occurrence in UTC format.
|
||
*/
|
||
zb_uint32_t event_time; /* (M) */
|
||
|
||
/** An 8-bit bitmap specifying actions to be taken regarding particular event.
|
||
*/
|
||
zb_uint8_t event_control; /* (M) */
|
||
|
||
/** A variable length octet string array used to hold additional
|
||
* information captured when the event occurred. The first element (element 0)
|
||
* of the array indicates the length of the string, NOT including the first
|
||
* element.
|
||
*/
|
||
zb_uint8_t event_data[44];
|
||
|
||
} ZB_PACKED_STRUCT zb_zcl_events_publish_event_payload_t;
|
||
|
||
|
||
/** Publish Event Log Sub-Payload
|
||
* @see SE spec, Figure D-175
|
||
* @see zb_zcl_events_publish_event_log_payload_t::log_payload
|
||
*/
|
||
typedef ZB_PACKED_PRE struct zb_zcl_events_sub_log_payload_s
|
||
{
|
||
/*Log Payload representation*/
|
||
/******************************************************************************/
|
||
/** The least significant nibble represents the Log Payload Control.
|
||
* It determines availability of events to cross payload frame boundary.
|
||
* The most significant nibble indicates the number of events contained within
|
||
* the log payload of this command.
|
||
*/
|
||
zb_uint8_t number_of_events_log_payload_control;
|
||
|
||
/** The least significant nibble is an enumeration indicating the Log ID.
|
||
* The most significant nibble is reserved.
|
||
*/
|
||
zb_uint8_t log_id;
|
||
|
||
/*The Event ID specifies a particular event.*/
|
||
zb_uint16_t event_id;
|
||
|
||
/*The timestamp of the event occurrence in UTC format.*/
|
||
zb_uint32_t event_time;
|
||
|
||
/** A variable length octet string array used to hold additional information
|
||
* captured when the event occurred. The first element (element 0) of the
|
||
* array indicates the length of the string, NOT including the first element.
|
||
*/
|
||
zb_uint8_t event_data[47];
|
||
/******************************************************************************/
|
||
/* Log Payload representation */
|
||
} ZB_PACKED_STRUCT zb_zcl_events_sub_log_payload_t;
|
||
|
||
|
||
/** @ref ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT_LOG "PublishEventLog" Command payload
|
||
* @see SE spec, subclause 11.2.4.2
|
||
*/
|
||
typedef ZB_PACKED_PRE struct zb_zcl_events_publish_event_log_payload_s
|
||
{
|
||
/** This field indicates the total number of events found which match the
|
||
* search criteria received in the associated Get Event Log command.
|
||
*/
|
||
zb_uint16_t total_number_of_matching_events; /* (M) */
|
||
|
||
/** In the case where the entire number of events being returned does not
|
||
* fit into a single message, the Command Index is used to count the required
|
||
* number of Publish Event Log commands.
|
||
*/
|
||
zb_uint8_t command_index; /* (M) */
|
||
|
||
/** This parameter indicates the total number of Publish Event Log
|
||
* commands that are required to return the requested event logs.
|
||
*/
|
||
zb_uint8_t total_commands; /* (M) */
|
||
|
||
/** The Log Payload is a series of events and associated data.
|
||
* @see zb_zcl_events_sub_log_payload_t
|
||
*/
|
||
zb_zcl_events_sub_log_payload_t *log_payload;
|
||
|
||
} ZB_PACKED_STRUCT zb_zcl_events_publish_event_log_payload_t;
|
||
|
||
|
||
/** Macro for initializing GetEventLog Command payload,
|
||
* see @ref zb_zcl_events_get_event_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_EVENTS_GET_EVENT_LOG_INIT \
|
||
(zb_zcl_events_get_event_log_payload_t) {0}
|
||
|
||
|
||
/** Cleared Events Logs Bitmap
|
||
* @note It is understood that certain markets may require that event logs
|
||
* cannot be cleared; this Bitmask provides a method for the server device
|
||
* to indicate which logs have been successfully cleared.
|
||
* @see SE spec, Table D-191 and @ref zb_zcl_events_clear_event_log_response_t::cleared_events_logs
|
||
*/
|
||
typedef enum zb_zcl_events_cleared_events_logs_bitmap_e
|
||
{
|
||
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_ALL = 1 << 0, /**< All logs cleared */
|
||
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_TAMPER = 1 << 1, /**< Tamper log cleared */
|
||
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_FAULT = 1 << 2, /**< Fault log cleared */
|
||
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_GENERAL = 1 << 3, /**< General event log cleared */
|
||
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_SECURITY = 1 << 4, /**< Security event log cleared */
|
||
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_NETWORK = 1 << 5, /**< network event log cleared */
|
||
/* 6-7 bits are reserved */
|
||
} zb_zcl_events_cleared_events_logs_bitmap_t;
|
||
|
||
|
||
/** @ref ZB_ZCL_EVENTS_SRV_CMD_CLEAR_EVENT_LOG_RESPONSE "ClearEventLogResponse" command payload
|
||
* @see SE spec, D.11.2.4.3
|
||
*/
|
||
typedef ZB_PACKED_PRE struct zb_zcl_events_clear_event_log_response_s
|
||
{
|
||
/** This 8-bit Bitmask indicates which logs have been cleared.
|
||
* @see SE spec, Table D-191 and @ref zb_zcl_events_cleared_events_logs_bitmap_t
|
||
*/
|
||
zb_uint8_t cleared_events_logs;
|
||
} ZB_PACKED_STRUCT zb_zcl_events_clear_event_log_response_t;
|
||
|
||
|
||
/** Macro for initializing PublishEventLog Command payload
|
||
* see @ref zb_zcl_events_publish_event_log_payload_t
|
||
*/
|
||
#define ZB_ZCL_EVENTS_PUBLISH_EVENT_LOG_PAYLOAD_INIT \
|
||
(zb_zcl_events_publish_event_log_payload_t) {0}
|
||
|
||
|
||
/** Function for send @ref ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT "PublishEvent" command.
|
||
* @param param - Reference to buffer.
|
||
* @param dst_addr - Address of the device to send command to.
|
||
* @param dst_addr_mode - Address mode for dst_addr.
|
||
* @param dst_ep - Destination endpoint.
|
||
* @param src_ep - Current endpoint.
|
||
* @param payload - Packet payload (@ref zb_zcl_events_publish_event_payload_t).
|
||
*/
|
||
void zb_events_server_send_publish_event(zb_uint8_t param, zb_addr_u *dst_addr,
|
||
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
|
||
zb_uint8_t src_ep, zb_zcl_events_publish_event_payload_t *payload);
|
||
|
||
/** Function for send @ref ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT_LOG "PublishEventLog" command.
|
||
* @param param - Reference to buffer.
|
||
* @param dst_addr - Address of the device to send command to.
|
||
* @param dst_addr_mode - Address mode for dst_addr.
|
||
* @param dst_ep - Destination endpoint.
|
||
* @param src_ep - Current endpoint.
|
||
* @param payload - Packet payload (@ref zb_zcl_events_publish_event_log_payload_t).
|
||
*/
|
||
void zb_events_server_send_publish_event_log(zb_uint8_t param, zb_addr_u *dst_addr,
|
||
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
|
||
zb_uint8_t src_ep, zb_zcl_events_publish_event_log_payload_t *payload);
|
||
|
||
/** Function for send @ref ZB_ZCL_EVENTS_SRV_CMD_CLEAR_EVENT_LOG_RESPONSE "ClearEventLogResponse" command.
|
||
* @param param - Reference to buffer.
|
||
* @param dst_addr - Address of the device to send command to.
|
||
* @param dst_addr_mode - Address mode for dst_addr.
|
||
* @param dst_ep - Destination endpoint.
|
||
* @param src_ep - Current endpoint.
|
||
* @param payload - Packet payload: pointer to zb_uint8_t.
|
||
*/
|
||
void zb_events_server_send_clear_event_log_response(zb_uint8_t param, zb_addr_u *dst_addr,
|
||
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
|
||
zb_uint8_t src_ep, zb_uint8_t *payload); /*zb_uint8_t zb_zcl_events_ClearedEventsLogs;*/
|
||
|
||
/** Function for send @ref ZB_ZCL_EVENTS_CLI_CMD_GET_EVENT_LOG "GetEventLog" command.
|
||
* @param param - Reference to buffer.
|
||
* @param dst_addr - Address of the device to send command to.
|
||
* @param dst_addr_mode - Address mode for dst_addr.
|
||
* @param dst_ep - Destination endpoint.
|
||
* @param src_ep - Current endpoint.
|
||
* @param payload - Packet payload (@ref
|
||
* zb_zcl_events_get_event_log_payload_t).
|
||
*/
|
||
void zb_events_client_send_get_event_log(zb_uint8_t param, zb_addr_u *dst_addr,
|
||
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
|
||
zb_uint8_t src_ep, zb_zcl_events_get_event_log_payload_t *payload);
|
||
|
||
/** Function for send @ref ZB_ZCL_EVENTS_CLI_CMD_CLEAR_EVENT_LOG_REQUEST "ClearEventLogRequest" command.
|
||
* @param param - Reference to buffer.
|
||
* @param dst_addr - Address of the device to send command to.
|
||
* @param dst_addr_mode - Address mode for dst_addr.
|
||
* @param dst_ep - Destination endpoint.
|
||
* @param src_ep - Current endpoint.
|
||
* @param payload - Packet payload: pointer to zb_uint8_t.
|
||
*/
|
||
void zb_events_client_send_clear_event_log_request(zb_uint8_t param, zb_addr_u *dst_addr,
|
||
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
|
||
zb_uint8_t src_ep, zb_uint8_t *payload); /*zb_uint8_t zb_zcl_events_cel_log_id;*/
|
||
|
||
/** Macro for call @ref zb_events_server_send_publish_event function */
|
||
#define ZB_ZCL_EVENTS_SEND_CMD_PUBLISH_EVENT(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload ) \
|
||
zb_events_server_send_publish_event(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload)
|
||
|
||
/** Macro for call @ref zb_events_server_send_publish_event_log function */
|
||
#define ZB_ZCL_EVENTS_SEND_CMD_PUBLISH_EVENT_LOG(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload ) \
|
||
zb_events_server_send_publish_event_log(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload)
|
||
|
||
/** Macro for call @ref zb_events_server_send_clear_event_log_response function */
|
||
#define ZB_ZCL_EVENTS_SEND_CMD_CLEAR_EVENT_LOG_RESPONSE(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload ) \
|
||
zb_events_server_send_clear_event_log_response(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload)
|
||
|
||
/** Macro for call @ref zb_events_client_send_get_event_log function */
|
||
#define ZB_ZCL_EVENTS_SEND_CMD_GET_EVENT_LOG(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload ) \
|
||
zb_events_client_send_get_event_log(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload)
|
||
|
||
/** Macro for call @ref zb_events_client_send_clear_event_log_request function */
|
||
#define ZB_ZCL_EVENTS_SEND_CMD_CLEAR_EVENT_LOG_REQUEST(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload ) \
|
||
zb_events_client_send_clear_event_log_request(_param, _dst_addr, _dst_addr_mode, \
|
||
_dst_ep, _src_ep, _payload)
|
||
|
||
/** @} */ /* ZB_ZCL_EVENTS_COMMANDS */
|
||
|
||
/** @cond internals_doc */
|
||
|
||
/** Internal handler for Events Cluster commands */
|
||
zb_bool_t zb_zcl_process_events_specific_commands(zb_uint8_t param);
|
||
/** @endcond */ /* internals_doc */
|
||
|
||
/** @} */ /* ZB_ZCL_EVENTS */
|
||
|
||
/** @endcond */ /* DOXYGEN_ZCL_SECTION */
|
||
|
||
void zb_zcl_events_init_server(void);
|
||
void zb_zcl_events_init_client(void);
|
||
#define ZB_ZCL_CLUSTER_ID_EVENTS_SERVER_ROLE_INIT zb_zcl_events_init_server
|
||
#define ZB_ZCL_CLUSTER_ID_EVENTS_CLIENT_ROLE_INIT zb_zcl_events_init_client
|
||
|
||
#endif /* ZB_ZCL_EVENTS_H_ */
|