如何解决修改蓝牙设备名称后要重启的问题?

2019-07-18 15:13发布

如何解决修改蓝牙设备名称后要重启的问题?
我修改蓝牙设备名称后,发现需要重启一下才可以更新
请问能否抽空我帮解决一下
谢谢!
我的做法如下:
将static uint8 scanRspData[]改为
void Update_ParameterScanRspData(void)
{
uint8 NameLen,*str_point,*Name_point;
uint8 MachineName[21];
uint8 scanRspData[35]={0};
uint8 scanRsplen;
osal_snv_read(AddrName,1, &NameLen); // 名称长度
osal_snv_read(AddrName,NameLen+1,MachineName); //名称长度+名称
str_point = scanRspData;
*str_point++ = NameLen+1;
*str_point++ = GAP_ADTYPE_LOCAL_NAME_COMPLETE;
Name_point = &MachineName[1];
osal_memcpy(str_point, Name_point, NameLen);
str_point +=NameLen;
*str_point++ = 0x05; // length of this data
*str_point++ = GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE;
*str_point++ = LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL );
*str_point++ = HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL );
*str_point++ = LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL );
*str_point++ = HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL );
// Tx power level
*str_point++ = 0x02;
*str_point++ = GAP_ADTYPE_POWER_LEVEL;
*str_point++ = 0;
scanRsplen = NameLen+ 11;
GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, scanRsplen, scanRspData );
GGS_SetParameter( GGS_DEVICE_NAME_ATT, scanRsplen, scanRspData);
}
接收到新名称后,保存在Flash中
然后调用Update_ParameterScanRspData()更改名称
但是总是要重启才可以更新名称

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
广电总局
1楼-- · 2019-07-18 18:17
adv 和 scan的内容的修改,需要先停止广播,再修改内容,然后再重启广播才能完成更改。

所以你只需要在修改前停止广播,修改完后再重启广播就行,不需要重启整个系统

一周热门 更多>