151 lines
3.4 KiB
C
151 lines
3.4 KiB
C
#ifndef PROXM_TASK_H_
|
|
#define PROXM_TASK_H_
|
|
|
|
/**
|
|
****************************************************************************************
|
|
* @addtogroup PROXMTASK Proximity Monitor Task
|
|
* @ingroup PROXM
|
|
* @brief Proximity Monitor Task
|
|
*
|
|
* The Proximity Monitor Task is responsible for handling the API messages received from
|
|
* either the Application or internal tasks.
|
|
*
|
|
* @{
|
|
****************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
* INCLUDE FILES
|
|
****************************************************************************************
|
|
*/
|
|
|
|
#include "rwip_task.h" // Task definitions
|
|
#include "prf_types.h"
|
|
|
|
/*
|
|
* DEFINES
|
|
****************************************************************************************
|
|
*/
|
|
|
|
/// Max number of characteristics for all services
|
|
#define PROXM_CHAR_NB_MAX 1
|
|
|
|
/*
|
|
* ENUMERATIONS
|
|
****************************************************************************************
|
|
*/
|
|
|
|
|
|
///Proximity Monitor API messages
|
|
enum
|
|
{
|
|
///Proximity Monitor role enable request from application.
|
|
PROXM_ENABLE_REQ = TASK_FIRST_MSG(TASK_ID_PROXM),
|
|
/// Proximity Monitor role enable confirmation to application.
|
|
PROXM_ENABLE_RSP,
|
|
|
|
/// Read LLS Alert or TX Power Level - request
|
|
PROXM_RD_REQ,
|
|
/// Read LLS Alert or TX Power Level - response
|
|
PROXM_RD_RSP,
|
|
|
|
///Set Alert level
|
|
PROXM_WR_ALERT_LVL_REQ,
|
|
///Set Alert level response
|
|
PROXM_WR_ALERT_LVL_RSP,
|
|
};
|
|
|
|
enum
|
|
{
|
|
PROXM_LK_LOSS_SVC,
|
|
PROXM_IAS_SVC,
|
|
PROXM_TX_POWER_SVC,
|
|
|
|
PROXM_SVC_NB
|
|
};
|
|
|
|
/*
|
|
* API Messages Structures
|
|
****************************************************************************************
|
|
*/
|
|
|
|
/// Service information
|
|
struct svc_content
|
|
{
|
|
/// Service info
|
|
struct prf_svc svc;
|
|
|
|
/// Characteristic info:
|
|
/// - Alert Level for IAS and LLS
|
|
/// - TX Power Level for TXPS
|
|
struct prf_char_inf characts[PROXM_CHAR_NB_MAX];
|
|
};
|
|
|
|
/// Proximity monitor enable command structure
|
|
struct proxm_enable_req
|
|
{
|
|
/// Connection type
|
|
uint8_t con_type;
|
|
|
|
/// Reporter LLS details kept in APP
|
|
struct svc_content lls;
|
|
/// Reporter IAS details kept in APP
|
|
struct svc_content ias;
|
|
/// Reporter TPS details kept in APP
|
|
struct svc_content txps;
|
|
};
|
|
|
|
/// Proximity monitor enable confirm structure
|
|
struct proxm_enable_rsp
|
|
{
|
|
/// Status
|
|
uint8_t status;
|
|
|
|
/// Reporter LLS details to keep in APP
|
|
struct svc_content lls;
|
|
/// Reporter IAS details to keep in APP
|
|
struct svc_content ias;
|
|
/// Reporter TPS details to keep in APP
|
|
struct svc_content txps;
|
|
};
|
|
|
|
|
|
///Parameters of the @ref PROXM_WR_ALERT_LVL_REQ message
|
|
struct proxm_wr_alert_lvl_req
|
|
{
|
|
/// 0=LLS or 1=IAS, code for the service in which the alert level should be written
|
|
uint8_t svc_code;
|
|
/// Alert level
|
|
uint8_t lvl;
|
|
};
|
|
|
|
///Parameters of the @ref PROXM_WR_ALERT_LVL_RSP message
|
|
struct proxm_wr_alert_lvl_rsp
|
|
{
|
|
/// Write characteristic response status code, may be GATT code or ATT error code.
|
|
uint8_t status;
|
|
};
|
|
|
|
///Parameters of the @ref PROXM_RD_REQ message
|
|
struct proxm_rd_req
|
|
{
|
|
/// 0=LLS or 1=TXPS, code for the service in which the alert level should be read
|
|
uint8_t svc_code;
|
|
};
|
|
|
|
/// Parameters of the @ref PROXM_RD_RSP message
|
|
struct proxm_rd_rsp
|
|
{
|
|
/// 0=LLS or 1=TXPS, code for the service in which the alert level should be read
|
|
uint8_t svc_code;
|
|
/// Status
|
|
uint8_t status;
|
|
/// Value
|
|
uint8_t value;
|
|
};
|
|
|
|
|
|
|
|
/// @} PROXMTASK
|
|
|
|
#endif // PROXM_TASK_H_
|