2025-02-18 15:40:42 +08:00

131 lines
3.5 KiB
C

#ifndef BTCTRLER_TASK_H
#define BTCTRLER_TASK_H
#include "typedef.h"
#include "system/task.h"
enum {
LMP_EVENT = Q_USER + 1,
LMP_HCI_CMD,
LMP_HCI_CMD_TO_CONN,
HCI_COMMON_CMD,
LL_EVENT,
HCI_CMD_TO_LL,
TWS_LMP_EVENT,
MSG_BT_UPDATA_START,
MSG_BT_UPDATE_LOADER_DOWNLOAD_START,
MSG_BLE_TEST_UPDATA_START,
MSG_BLE_TEST_OTA_LOADER_DOWNLOAD_START,
MSG_TASK_READY,
MSG_TASK_DEL,
};
enum {
BTCTRLER_EVENT_RESUME_REQ = 1,
};
#define SYS_EVENT_FROM_CTRLER (('C' << 24) | ('T' << 16) | ('R' << 8) | '\0')
int bredr_link_event(void *link, int argc, ...);
int bredr_tws_link_event(void *link, int argc, ...);
int btctrler_hci_cmd_to_task(int cmd, int argc, ...);
int lmp_hci_cmd_to_conn_for_handle(u16 handle, int argc, ...);
int lmp_hci_cmd_to_conn_for_addr(u8 *addr, int argc, ...);
int lmp_hci_cmd_to_conn(void *conn, int argc, ...);
#define lmp_hci_cmd_to_task(argc, ...) btctrler_hci_cmd_to_task(LMP_HCI_CMD, argc, ## __VA_ARGS__)
#define ll_hci_cmd_to_task(argc, ...) btctrler_hci_cmd_to_task(HCI_CMD_TO_LL, argc, ## __VA_ARGS__)
int btctrler_task_init(const void *transport, const void *config);
void btctrler_resume_req();
void btctrler_resume();
int btctrler_suspend(u8 suepend_rx_bulk);
int btctrler_task_ready();
int btctrler_task_exit();
int btctrler_task_close_bredr();
void btctrler_task_init_bredr();
void set_idle_period_slot(u16 slot);
enum {
TESTBOX_INFO_VBAT_VALUE = 0, //(u16 (*handle)(void))
TESTBOX_INFO_VBAT_PERCENT, //(u8 (*handle)(void))
TESTBOX_INFO_BURN_CODE, //(u8 *(*handle)(u8 *len))
TESTBOX_INFO_SDK_VERSION, //(u8 *(*handle)(u8 *len))
};
void bt_testbox_ex_info_get_handle_register(u8 info_type, void *handle);
u8 bredr_bulk_change_rx_bulk(u8 mode);
void lmp_set_features_req_step(u8 *addr);
struct ble_dut_tx_param_t {
u8 ch_index; //data[0]
u8 payload_len; //data[1]
u8 payload_type;//data[2]
u8 phy_type; //data[3]
};
struct ble_dut_rx_param_t {
u8 ch_index; //data[0]
u8 phy_type; //data[1]
};
enum BLE_DUT_CTRL_TYPE {
BLE_DUT_SET_RX_MODE = 0, //param1:struct ble_dut_rx_param_t *param;
BLE_DUT_SET_TX_MODE, //param1:struct ble_dut_tx_param_t *param;
BLE_DUT_SET_TEST_END, //param1:u16 *pkt_valid_cnt,param2:u16 *pkt_err_cnt;
};
struct ble_dut_ops_t {
/* *****************************************************************************/
/**
* @brief : initialize the ble dut test module
*
* @param : void
*
* @return : pointer to instance of test module
*/
/* *****************************************************************************/
void *(*init)(void);
/* *****************************************************************************/
/**
* @brief : ble dut test control api,such as setting rx/tx mode,stop testing
*
* @param : control type,using enum BLE_DUT_CTRL_TYPE value;
* @param : vary from different control type;
*/
/* *****************************************************************************/
int (*ioctrl)(int ctrl, ...);
/* *****************************************************************************/
/**
* @brief : exit the ble dut test module
*
* @param : poniter to instance of test module
*/
/* *****************************************************************************/
void (*exit)(void *priv);
};
extern const struct ble_dut_ops_t *__ble_dut_ops;
#endif