pinebuds/services/ble_profiles/tota/tota_ble.h
2022-08-15 17:20:27 +08:00

150 lines
No EOL
3.7 KiB
C

/***************************************************************************
*
* Copyright 2015-2019 BES.
* All rights reserved. All unpublished rights reserved.
*
* No part of this work may be used or reproduced in any form or by any
* means, or stored in a database or retrieval system, without prior written
* permission of BES.
*
* Use of this work is governed by a license granted by BES.
* This work contains confidential and proprietary information of
* BES. which is protected by copyright, trade secret,
* trademark and other intellectual property rights.
*
****************************************************************************/
#ifndef _TOTA_H_
#define _TOTA_H_
/**
****************************************************************************************
* @addtogroup TOTA Datapath Profile Server
* @ingroup TOTAP
* @brief Datapath Profile Server
*
* Datapath Profile Server provides functionalities to upper layer module
* application. The device using this profile takes the role of Datapath Server.
*
* The interface of this role to the Application is:
* - Enable the profile role (from APP)
* - Disable the profile role (from APP)
* - Send data to peer device via notifications (from APP)
* - Receive data from peer device via write no response (from APP)
*
*
* @{
****************************************************************************************
*/
/*
* INCLUDE FILES
****************************************************************************************
*/
#include "rwip_config.h"
#if (BLE_TOTA)
#include "prf_types.h"
#include "prf.h"
// #include "tota_task.h"
#include "attm.h"
#include "prf_utils.h"
/*
* DEFINES
****************************************************************************************
*/
#define TOTA_MAX_LEN (509)
/*
* DEFINES
****************************************************************************************
*/
/// Possible states of the TOTA task
enum
{
/// Idle state
TOTA_IDLE,
/// Connected state
TOTA_BUSY,
/// Number of defined states.
TOTA_STATE_MAX,
};
///Attributes State Machine
enum
{
TOTA_IDX_SVC,
TOTA_IDX_CHAR,
TOTA_IDX_VAL,
TOTA_IDX_NTF_CFG,
TOTA_IDX_NB,
};
/*
* TYPE DEFINITIONS
****************************************************************************************
*/
/// Datapath Profile Server environment variable
struct tota_env_tag
{
/// profile environment
prf_env_t prf_env;
uint8_t isNotificationEnabled[BLE_CONNECTION_MAX];
/// Service Start Handle
uint16_t shdl;
/// State of different task instances
ke_state_t state;
};
/*
* GLOBAL VARIABLE DECLARATIONS
****************************************************************************************
*/
/*
* FUNCTION DECLARATIONS
****************************************************************************************
*/
/**
****************************************************************************************
* @brief Retrieve HRP service profile interface
*
* @return HRP service profile interface
****************************************************************************************
*/
const struct prf_task_cbs* tota_prf_itf_get(void);
/*
* TASK DESCRIPTOR DECLARATIONS
****************************************************************************************
*/
/**
****************************************************************************************
* Initialize task handler
*
* @param task_desc Task descriptor to fill
****************************************************************************************
*/
void tota_task_init(struct ke_task_desc *task_desc);
#endif /* #if (BLE_TOTA) */
/// @} TOTA
#endif /* _TOTA_H_ */