CH57x/CH58x/CH59x获取从机广播信息
有时需要通过主机设备(MCU非手机)获取从设备的广播信息例如广播包,MAC地址,扫描应答包等
以下的程序片段及功能实现是在WCH的CH59X的observer例程上实现的;
1、获取广播包
所有的函数在库函数中都可以找到,具体实现函数如下:
case GAP_DEVICE_INFO_EVENT: { ObserverAddDeviceInfo(pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType); //获取广播信息 advtype_flag = pEvent->deviceInfo.eventType; // PRINT("广播类型:%d\n",advtype_flag); if(advtype_flag == 0) { len=pEvent->deviceInfo.dataLen; // PRINT("广播数据:"); for(uint8_t i=0 ;i<len;i++) { advdata[i]= pEvent->deviceInfo.pEvtData[i]; //PRINT("%02x",advdata[i]); PRINT("%c",advdata[i]); } PRINT("\n"); } } break;
这里的判断(if(advtype_flag == 0))是对广播类型的筛选,有几种不同的广播类型;这里筛选了第一种普通广播:
2、MAC地址
if(pEvent->discCmpl.numDevs > 0) { int i, j; // Increment index of current result (with wraparound) for(j = 0; j < pEvent->discCmpl.numDevs; j++) { PRINT("Device %d : ", j); for(i = 0; i < 6; i++) { PRINT("%x ", pEvent->discCmpl.pDevList[j].addr[i]); } PRINT("\n"); } }
个人学习分享;如有问题请指正
转载请保留出处;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?