CYW43438蓝牙调试

    1. 蓝牙相关函数(ttyAMA1)
      1. 硬件资源:

CYW43438

CYW43438设计的2.4G单频单通道蓝牙WiFi二合一模块有AW-NM230NF、AW-NB197SM、AW-CU289

CYW43438是是一款符合802.11b/g/n标准,1T1R单通道,支持BT4.2的高性能方案;

其中WiFi采用SDIO通信接口,最大通信速率150Mbps;BT采用UART/PCM接口通信;

 

 

MMI@AT测试:

mmi_test.c

hi_product_at.c

正常使用:

      1. 驱动层:

amp\a7_linux\drv\extdrv\bthid

驱动名称:bthid.ko

 

Y:\Aquila_backup\aquila-0303\Aquila-resourse\amp\a7_linux\drv\extdrv\bthid\bthid.c

Y:\Aquila_backup\aquila-0303\Aquila-resourse\amp\a7_linux\drv\extdrv\bthid\bthid.h

/* Declaration of brcm_linux.c functions */

static int bthid_open(struct inode *inode, struct file *filp);

static int bthid_release(struct inode *inode, struct file *filp);

static ssize_t bthid_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos);

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)

static long bthid_ioctl(struct file *file, unsigned int cmd, unsigned long arg);

#else

static int bthid_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg);

#endif

static void bthid_exit(void);

static int bthid_init(void);

 

      1. 开启蓝牙脚本

Y:\Aquila_backup\aquila-0303\Aquila-resourse\reference\dashcam\rootfs\appfs_priv\ble\ble.sh

 

./amp/a7_linux/drv/extdrv/wifi/sdio_ap6xxx/firmware/sdio_ap6214a/BCM4343A1.hcd

      1. 应用层:

reference\dashcam\modules\ui\carrecorder\src:

ui_common.c

setlist_page.c

1、应用层接口函数

reference\common\bluetooth

hi_bluetooth.h

/**

 * 功能: 控制蓝牙实现对应功能

 * 参数[输入]: enBTCmd 对应功能命令

 * 参数[输出]:

 * 返回:0(成功),非0(失败)

 * 修改记录: 2019/05/16 yxq 创建

 */

HI_S32 HI_Bluetooth_Manager_control(HI_BT_CMD_E enBTCmd);

 

/**

 * 功能: 获取蓝牙配对状态

 * 参数[输入]:

 * 参数[输出]:

 * 返回:HI_TRUE(已配对),HI_FALSE (未配对)

 * 修改记录: 2019/05/16 yxq 创建

 */

HI_BOOL HI_Bluetooth_IsConnecting(HI_VOID);

 

/**

 * 功能: 获取蓝牙打开状态

 * 参数[输入]:

 * 参数[输出]:

 * 返回: HI_TRUE(已打开),HI_FALSE (未打开)

 * 修改记录: 2019/05/16 yxq 创建

 */

HI_BOOL HI_Bluetooth_Manager_IsInit(HI_VOID);

 

/**

 * 功能: 蓝牙管理初始化并且设置可被发现和连接

 * 参数[输入]:

 * 参数[输出]:

 * 返回: 0(成功),非0(失败)

 * 修改记录: 2019/05/16 yxq 创建

 */

HI_S32 HI_Bluetooth_Manager_init(HI_VOID);

 

/**

 * 功能: 蓝牙管理去初始化

 * 参数[输入]:

 * 参数[输出]:

 * 返回: 0(成功),非0(失败)

 * 修改记录: 2019/05/16 yxq 创建

 */

HI_S32 HI_Bluetooth_Manager_deinit(HI_VOID);

 

/**

 * 功能: 注册蓝牙事件

 * 参数[输入]:

 * 参数[输出]:

 * 返回: 0(成功),非0(失败)

 * 修改记录: 2019/05/16 yxq 创建

 */

HI_S32 HI_PDT_Bluetooth_RegisterEvent(HI_VOID);

 

 

 

/**

 * 功能: manager的回调

 * 参数[输入]:

 * 参数[输出]:

 * 返回: 0(成功),非0(失败)

 * 修改记录: 2019/05/16 yxq 创建

 */

void app_mgr_security_cback(tBSA_SEC_EVT event, tBSA_SEC_MSG *p_data);

 

/**

 * 功能: 是否在蓝牙手咪状态

 * 参数[输入]:

 * 参数[输出]:

 * 返回: HI_TRUE HI_FALSE

 * 修改记录: 2019/05/16 yxq 创建

 */

HI_BOOL HI_PDT_IsInHandMic(HI_VOID);

 

/**

 * 功能: 设置蓝牙MAC

 * 参数[输入]:

 * 参数[输出]:

 * 返回: HI_TRUE HI_FALSE

 * 修改记录: 2019/05/16 yxq 创建

 */

HI_VOID HI_PDT_SetBlueMacAddr(const char *macBlue);

 

/**

 * 功能: 设置蓝牙名称

 * 参数[输入]:

 * 参数[输出]:

 * 返回: HI_TRUE HI_FALSE

 * 修改记录: 2019/05/16 yxq 创建

 */

配置变量名称;

s_stUSERPARAMCtx.pstUserParamCfg->stWireLessCfg.szDEVName

 

 

HI_VOID HI_PDT_SetBlueSSID(const char *blueSSID);

2、配置文件

#define APP_XML_CONFIG_FILE_PATH            "/param/bt_config.xml"

#define APP_XML_REM_DEVICES_FILE_PATH       "/param/bt_devices.xml"

  1. 蓝牙事件处理函数

 

PDT_PREVIEW_PAGE_OnEvent

PDT_UI_COMM_EventProc

PDT_UI_COMM_BluetoothEventProc

 

  1. UI界面的回调函数
  1. UI模块通过EventHub模块的HI_EVTHUB_Subscribe函数订阅系统事件并注册事件处理回调函数 PDT_UI_COMM_OnEvent。当UI订阅的事件发生时,EventHub模块在回调PDT_UI_COMM_OnEvent函数处理事件。例如,UI订阅HDMI插拔事件后,当发生HDMI插入事件时,EventHub模块通过回调函数将显示输出从LCD切换到HDMI。
  2. UI模块向HiGV模块注册回调函数(OnShow、OnHide、OnEvent、OnKeyDown、OnGestureFling、OnGestureTap 等函数),事件发生时HiGV模块回调相应的函数进行处理。如当界面显示时,HiGV会回调OnShow函数并执行OnShow函数中的代码逻辑。
  3. UI模块通过函数接口向StateMng模块、PM模块、Playback模块、WiFi模块、Screen模块发送相应调用。如调用HI_PDT_STATEMNG_SendMessage函数向StateMng发消息,调用HI_HAL_WIFI_Init、HI_HAL_WIFI_Deinit 函数初始化、去初始化WiFi模块等。

 

按键事件发生时回调 onkeydown

 

 

PDT_BTCtrl_Manager –蓝牙重连

                   HI_Bluetooth_Manager_init

                            PDT_ —thread

说明:

1. 蓝牙协议栈使用的是bsa协议栈,bsa应该是赛普拉斯自定义的协议栈,没听过有这个开源协议栈,以库的方式提供给我们:libbsa.a

2. 蓝牙代码和音频代码有耦合,目前我们主要是增加了一个蓝牙自动连接功能,入口:HI_Bluetooth_Manager_init,PDT_BTCtrl_Manager

3. 蓝牙上电原来是在一个shell脚本中实现,现在改成了使用himm来上电。

4. 蓝牙功能只能在配件模式下方可使用,集群模式下不可用。

 

 

 

      1. 蓝牙手咪相关函数

PDT_UI_COMM_OnEvent

HI_Bluetooth_Manager_control

app_hs_send_unat

 

      1. 蓝牙连接过程相关函数

HI_Bluetooth_Manager_init

app_mgr_config   ---- Configure the BSA server

app_mgr_sec_set_security     ----- Security configuration

app_mgr_security_cback     ----- manager的回调

app_mgr_sp_cfm_reply  ----- Function used to accept/refuse Simple Pairing

BSA_SecSpCfmReplyInit----- Initialize structure containing API parameters with default values

      1. 350M PDT蓝牙连接鼎桥记录仪失败问题讨论 

 

/* Default COD SetTopBox (Major Service = none) (MajorDevclass = Audio/Video) (Minor=STB) */

#define APP_DEFAULT_CLASS_OF_DEVICE     {0x00, 0x04, 0x24}    set top box

 

A headset (HS) originated ACL connection is initiated (see Section 4.9) by a user action (e.g. pressing a button on the headset). Upon completion of a connection establishment that was initiated by pressing the “headset button”, the HS shall send the AT+CKPD=200 command to the AG. If the HS connection is initiated by an event other than a headset button press, the HS shall not send AT+CKPD=200.

 

 

 

蓝牙主讲

 

 

 

 

 

app_hs_start_usercback

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值