#ifndef ANPS_TASK_H_ #define ANPS_TASK_H_ /** **************************************************************************************** * @addtogroup ANPSTASK Task * @ingroup ANPS * @brief Alert Notification Profile Server Task * @{ **************************************************************************************** */ /* * INCLUDE FILES **************************************************************************************** */ #include "rwip_task.h" // Task definitions #include "anp_common.h" /* * ENUMERATIONS **************************************************************************************** */ /// Messages for Alert Notification Profile Server enum anps_msg_ids { /// Start the Alert Notification Profile Server Role ANPS_ENABLE_REQ = TASK_FIRST_MSG(TASK_ID_ANPS), /// Start the Alert Notification Profile Server Role ANPS_ENABLE_RSP, /// Update the value of a characteristic ANPS_NTF_ALERT_CMD, /// The peer device requests to be notified about new alert values ANPS_NTF_IMMEDIATE_REQ_IND, /// Indicate that the notification configuration has been modified by the peer device ANPS_NTF_STATUS_UPDATE_IND, /// Complete Event Information ANPS_CMP_EVT, }; /// Operation Codes enum anps_op_codes { ANPS_RESERVED_OP_CODE = 0x00, /// Update New Alert Char. value ANPS_UPD_NEW_ALERT_OP_CODE, /// Update Unread Alert Status Char. value ANPS_UPD_UNREAD_ALERT_STATUS_OP_CODE, }; /* * STRUCTURES **************************************************************************************** */ /// Parameters of the @ref ANPS_CREATE_DB_REQ message struct anps_db_cfg { /// Supported New Alert Category Characteristic Value - Shall not be 0 struct anp_cat_id_bit_mask supp_new_alert_cat; /// Supported Unread Alert Category Characteristic Value - Can be 0 struct anp_cat_id_bit_mask supp_unread_alert_cat; }; /// Parameters of the @ref ANPS_ENABLE_REQ message struct anps_enable_req { /// New Alert Characteristic - Saved Client Characteristic Configuration Descriptor Value uint16_t new_alert_ntf_cfg; /// Unread Alert Status Characteristic - Saved Client Characteristic Configuration Descriptor Value uint16_t unread_alert_status_ntf_cfg; }; /// Parameters of the @ref ANPS_ENABLE_RSP message struct anps_enable_rsp { /// status uint8_t status; }; ///Parameters of the @ref ANPS_NTF_ALERT_CMD message struct anps_ntf_alert_cmd { /// Operation Code (ANPS_UPD_NEW_ALERT_OP_CODE or ANPS_UPD_UNREAD_ALERT_STATUS_OP_CODE) uint8_t operation; /// New Alert Characteristic Value or Unread Alert Status Characteristic Value union anps_value_tag { /// New Alert struct anp_new_alert new_alert; /// Unread Alert Status struct anp_unread_alert unread_alert_status; } value; }; ///Parameters of the @ref ANPS_NTF_IMMEDIATE_REQ_IND message struct anps_ntf_immediate_req_ind { /// Alert type (New Alert or Unread Alert Status) uint8_t alert_type; /// Status for each category struct anp_cat_id_bit_mask cat_ntf_cfg; }; ///Parameters of the @ref ANPS_NTF_STATUS_UPDATE_IND message struct anps_ntf_status_update_ind { /// Alert type (New Alert or Unread Alert Status) uint8_t alert_type; /// Client Characteristic Configuration Descriptor Status uint16_t ntf_ccc_cfg; /// Status for each category struct anp_cat_id_bit_mask cat_ntf_cfg; }; ///Parameters of the @ref ANPS_CMP_EVT message struct anps_cmp_evt { /// Operation uint8_t operation; /// Status uint8_t status; }; /// @} ANPSTASK #endif //(ANPS_TASK_H_)