CH58x/CH59x动态修改广播包

news/2025/4/2 8:53:01/文章来源:https://www.cnblogs.com/frontier/p/18802819

前言:在日常使用中我们可能有需要动态修改广播包的情况。从机设备不走连接将一些传感器数据通过广播包显示出来

程序中提供了接口函数进行动态修改不用再先关闭广播再重新开启。

/******************************************************************************** @fn          GAP_UpdateAdvertisingData** @brief       Setup or change advertising and scan response data.**       NOTE:  if the return status from this function is SUCCESS,*              the task isn't complete until the GAP_ADV_DATA_UPDATE_DONE_EVENT*              is sent to the calling application task.** input parameters** @param       taskID - task ID of the app requesting the change* @param       adType - TRUE - advertisement data, FALSE  - scan response data* @param       dataLen - Octet length of advertData* @param       pAdvertData - advertising or scan response data** output parameters** @param       None.** @return      SUCCESS: data accepted,<BR>*              bleIncorrectMode: invalid profile role,<BR>*/
extern bStatus_t GAP_UpdateAdvertisingData( u8 taskID,u8 adType,u8 dataLen,u8 *pAdvertData );

GAP_UpdateAdvertisingData( 0,TRUE ,sizeof( advertData ),advertData );         //  广播包

GAP_UpdateAdvertisingData( 0,FALSE ,sizeof( scanRspData ),scanRspData );  //   扫描应答包

使用示例:

static uint8_t advertData[] = {// Flags; this sets the device to use limited discoverable// mode (advertises for 30 seconds at a time) instead of general// discoverable mode (advertises indefinitely)0x02, // length of this data
    GAP_ADTYPE_FLAGS,DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,// service UUID, to notify central devices what services are included// in this peripheral0x03,                  // length of this dataGAP_ADTYPE_16BIT_MORE, // some of the UUID's, but not all
    LO_UINT16(SIMPLEPROFILE_SERV_UUID),HI_UINT16(SIMPLEPROFILE_SERV_UUID),0x05,0xff,0x01,0x02,0x03,0x04};

上述为广播包内容,下面给出实际更新示例

 if(events & Change_advdata_evt){advertData[12] = 0xaa;GAP_UpdateAdvertisingData( 0,TRUE ,sizeof( advertData ),advertData );tmos_start_task(Peripheral_TaskID, Change_advdata_evt, 16000);return (events ^ Change_advdata_evt);}

实际效果:

修改前:  修改后:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908770.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 容器部署nginx+keepalived实现高可用

准备两台机器分别部署nginx和keepalived,事先部署好docker容器环境。主机名 ip地址 部署容器park2-0007 10.9.102.62 nginx+keepalivedpark2-0008 10.9.102.63 nginx+keepalived分别启动两个nginx容器docker run -d \--name my-nginx -p 8005:8005 \-v ./nginxdir/default.c…

GraphRAG介绍

一、RAG原理 用户输入了一个指令Instruct,RAG将其与Document store(向量库)中的预存文本进行匹配,然后将符合条件的筛选文本(Retrieved Documents)与指令Instruct,共同合成为一个增强型的Prompt,并将该增强型Prompt喂给大模型,最终大模型根据此增强型Prompt,生成最终的Re…

清理Docker数据卷volumes

原文链接地址 清理Docker数据卷volumes1.查看磁盘使用 2.查看Docker数据卷及磁盘使用情况 3.Docker 删除无用数据卷今天突然发现跑服务器的磁盘满了。记录下进入服务查看到Docker-Overlay2磁盘空间的清理方法:清理Docker的数据卷volumes Docker在长时间使用的情况下,经常需…

Web开发SpringBoot流程性的学习----回顾补充1

HTML(HyperText Markup Language)**:超文本标记语言 超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内容。 标记语言:由标签构成的语言HTML标签都是预定义好的。例如:使用展示超链接,展示图片,展示视频。 HTML代码直接在浏览器中运…

【我的青春coding物语果然有问题!】第四次上机卡题复盘

最近事多 今天才写出来 实际做的时候变量名犯了很多很唐的错误 这里就不一一说了 我们看一下今天要讲的题目 05:正整数的任意进制转换 将 p 进制 n 转换为 q 进制。p 和 q 的取值范围为[2,36],其中,用到的数码按从小到大依次为:0,1,2,3,4,5,6,7,8,9,A,B,...,Z…

【PCIE711-214】基于PCIe总线架构的4路HD-SDI/3G-SDI视频图像模拟源

产品概述 PCIE711-214是一款基于PCIE总线架构的4路SDI视频模拟源。该板卡为标准的PCIE插卡,全高尺寸,适合与PCIE总线的工控机或者服务器,板载协议处理器,可以通过PCIE总线将上位机的YUV 422格式视频数据下发通过SDI接口播放出去,从而模拟SDI协议标准的视频流。该板卡支持4…

3 Packet (Mbuf) Library

Packet(MBuf)库概述: 这个库提供了分配和释放缓冲区(mbuf)的能力,DPDK 应用可以使用这些缓冲区来存储各种类型的数据,比如:网络数据包(最常见) 控制信息(control data) 事件(events) 或其他需要临时存储的数据这些 mbuf 缓冲区的底层是通过 Mempool 管理的,即使…

3.31 计算机实践-数字逻辑电路

带使能端的D触发器 之前学的门控D锁存器加了一个时钟周期CLK(使得只有时钟发生转换的时候才能写入数据)再加一个使能端(使得只有EN=1的时候才能正确写入,否则就把当前的输出结果再输入给D端,保持触发器当前输出)4位行波加法计数器 T触发器(使得每一个时钟周期之后就会有…

2025年天梯赛补题记录——九宫格

九宫格输入样例: 3 5 1 9 2 8 3 4 6 7 7 2 8 9 6 4 3 5 1 3 4 6 5 7 1 9 2 8 8 9 2 1 4 5 7 3 6 4 7 3 6 2 8 1 9 5 6 5 1 7 3 9 2 8 4 9 3 4 8 1 6 5 7 2 1 6 7 3 5 2 8 4 9 2 8 5 4 9 7 6 1 3 8 2 5 4 9 7 1 3 6 7 9 6 5 1 3 8 2 4 3 4 1 6 8 2 7 9 5 6 8 4 2 7 1 3 5 9 9 1…

【Python编程】Python 参数传递的强制规则你必须掌握

场景 外卖点单时,本来想在“备注”里写“不要辣”,结果不小心输错位置,填在了“地址”栏。骑手到了,给你打电话:“请问您是在‘不要辣小区’门口等我吗?”是不是听起来有点好笑? 生活里,错误填写表单位置尚且令人哭笑不得;而在代码世界里,如果参数用错了位置,后果往…

基于FPGA的2ASK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR

1.算法仿真效果 vivado2019.2仿真结果如下(完整代码运行后无水印):设置SNR=8db设置SNR=20db整体波形效果:仿真操作步骤可参考程序配套的操作视频。2.算法涉及理论知识概要 2.1 2ASK调制解调2ASK调制解调是一种数字调制解调技术,它是基于ASK调制的一种数字调制方式。ASK调制…