102 lines
2.4 KiB
C
102 lines
2.4 KiB
C
#ifndef __chargebox_H__
|
|
#define __chargebox_H__
|
|
|
|
#include "typedef.h"
|
|
|
|
#define DEVICE_EVENT_FROM_CHARGEBOX (('C' << 24) | ('H' << 16) | ('B' << 8) | '\0')
|
|
|
|
enum {
|
|
CMD_COMPLETE,
|
|
CMD_RECVDATA,
|
|
CMD_RECVBYTE,
|
|
};
|
|
|
|
enum {
|
|
MODE_RECVDATA,
|
|
MODE_SENDDATA,
|
|
};
|
|
|
|
enum {
|
|
EAR_L,
|
|
EAR_R,
|
|
};
|
|
|
|
struct chargebox_platform_data {
|
|
u32 baudrate;
|
|
u32 L_port;
|
|
u32 R_port;
|
|
void (*init)(const struct chargebox_platform_data *);
|
|
void (*open)(u8 l_r, u8 mode);
|
|
void (*close)(u8 l_r);
|
|
u8(*write)(u8 l_r, u8 *data, u8 len);
|
|
void (*set_baud)(u8 l_r, u32 baudrate);
|
|
};
|
|
|
|
/////handshake部分
|
|
enum {
|
|
HS_CMD0,
|
|
HS_CMD1,
|
|
HS_CMD2,
|
|
HS_CMD3,
|
|
};
|
|
|
|
enum {
|
|
HS_DELAY_48M,
|
|
HS_DELAY_60M,
|
|
HS_DELAY_80M,
|
|
HS_DELAY_96M,
|
|
HS_DELAY_120M,
|
|
HS_DELAY_160M,
|
|
HS_DELAY_192M,
|
|
HS_DELAY_240M,
|
|
};
|
|
|
|
enum {
|
|
HS_DELAY_2US,
|
|
HS_DELAY_3US,
|
|
HS_DELAY_4US,
|
|
HS_DELAY_7US,
|
|
HS_DELAY_8US,
|
|
HS_DELAY_14US,
|
|
HS_DELAY_16US,
|
|
};
|
|
|
|
//自定义指令
|
|
enum {
|
|
CMD_USER = 0xC0,
|
|
/*可添加自定义指令*/
|
|
};
|
|
|
|
struct _hs_hdl {
|
|
u32 port;
|
|
void (*send_delay_us)(u8 us);
|
|
};
|
|
//handshake
|
|
extern void handshake_ctrl_init(struct _hs_hdl *hs);
|
|
extern void handshake_send_app(u8 cmd);
|
|
|
|
//app层使用的接口
|
|
extern bool chargebox_api_write_read(u8 l_r, u8 *buf, u8 len, u8 timeout);
|
|
extern void chargebox_api_init(const struct chargebox_platform_data *arg);
|
|
extern void chargebox_api_uninit(void);
|
|
extern void chargebox_api_set_baud(u8 l_r, u32 baudrate);
|
|
extern void chargebox_api_shutdown_port(u8 l_r);
|
|
extern void chargebox_api_close_port(u8 l_r);
|
|
extern void chargebox_api_open_port(u8 l_r);
|
|
extern void chargebox_api_reset(void);//左右耳掉线时调用
|
|
|
|
//协议层api
|
|
extern u8 chargebox_get_power(u8 lr);
|
|
extern u8 chargebox_send_power_close(u8 lr, u8 power, u8 is_charge, u8 other_power);
|
|
extern u8 chargebox_send_power_open(u8 lr, u8 power, u8 is_charge, u8 other_power);
|
|
extern u8 chargebox_send_shut_down(u8 lr);
|
|
extern u8 chargebox_send_restore_sys(u8 lr);
|
|
extern u8 chargebox_send_enter_dut(u8 lr);
|
|
extern u8 chargebox_send_close_cid(u8 lr, u8 data);
|
|
extern u8 chargebox_delete_tws_addr(u8 lr);
|
|
extern u8 chargebox_delete_phone_addr(u8 lr);
|
|
extern u8 chargebox_delete_all_addr(u8 lr);
|
|
extern u8 chargebox_send_L_or_R(u8 lr);
|
|
extern u8 chargebox_exchange_addr(void (*get_addr_cb)(u8 lr, u8 *inbuf), void (*exchange_succ_cb)(void));
|
|
#endif
|