解读QCC512x sink工程如何获取手机端的蓝牙名称

描述

内容简介

本文介绍在QCC512x的sink工程下,如何获取对方设备的蓝牙设备名称。

测试工具

MDE:MDE_WIN_2.3.2.126

Toolkit:NULL

QACT:NULL

Hardware:QCC5127

Software:ADK_QCC512X_ROM_V21_WIN_6.4.2.21,sink

代码修改

在默认sink工程的main.c中依次添加以下代码。

找一个连接建立后触发读取事件的地方,比如在handleUEMessage函数的HFP_SLC_CONNECT_CFM事件处添加获取代码:

蓝牙

#ifdefTEST_READ_REMOTE_NAME

ConnectionReadRemoteName(&theSink.task, &(conncfm->bd_addr));

#endif

ConnectionReadRemoteName函数执行后,在获取到remote端的name后,会有一个CL_DM_REMOTE_NAME_COMPLETE事件被触发。

所以在handleCLMessage函数中添加该事件的处理函数,这里主要就打印一下获取到的设备名称:

蓝牙

#ifdefTEST_READ_REMOTE_NAME   

case CL_DM_REMOTE_NAME_COMPLETE:

PRINT(("=================>CL_DM_REMOTE_NAME_COMPLETE "));

PRINT(("=================>remotename = "));

for(uint8 i = 0;i<((CL_DM_REMOTE_NAME_COMPLETE_T *)message)->size_remote_name; i++)

{

PRINT(("%c",((CL_DM_REMOTE_NAME_COMPLETE_T*)message)->remote_name[i]));

}

PRINT((" "));

break;

#endif

最后记得打开宏定义TEST_READ_REMOTE_NAME,然后测试。

测试结果:

蓝牙

测试完毕。

总结:从测试过程看很简单,其实就是一个接口函数ConnectionReadRemoteName的调用,获取到对方设备名称数据后,底层直接上报一个CL_DM_REMOTE_NAME_COMPLETE,从这个事件传入的消息中就包含了设备名称信息。

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分