你好,
我想改变DSPS项目的特征属性,当我改变ATT_CHAR_PROP_WR_NO_RESP为ATT_CHAR_PROP_WR, lightblue应用程序有改变特征属性写入,但有一个问题,蓝牙将断开几秒钟。为什么?
/// SPS服务- RX数据特性
静态结构att_char128_desc spss_rx_data_char = {(ATT_CHAR_PROP_WR_NO_RESP),
{0},
SPS_SERVER_RX_UUID};
唯一的改变
/// SPS服务- RX数据特性
static struct att_char128_desc spss_rx_data_char = {(ATT_CHAR_PROP_WR),
{0},
关键词:
设备:
嗨,林恩,
当一个可写特性没有响应属性,主机向该特性写入一个值时,它不会等待接收到数据的设备的响应。当该特征具有响应属性时,设备应向主机发送响应。在DSPS的设备代码中,spss_rx_data_char是一个没有响应的特征,因此主机不会等待设备的响应。为了将它更改为ATT_CHAR_PROP_WR,你应该发送一个响应到dsps代码中没有实现的设备。当您从主机向设备发送数据时,设备将获得一个GATTC_WRITE_CMD_IND,然后执行gattc_write_cmd_ind_handler。请转到sps_device项目的sps_server_task.c文件中的gattc_write_cmd_ind_handler()函数,并在if语句的第二个条件中添加以下代码:
如果(param - >响应= = 0 x01)
{
atts_write_rsp_send (spss_env.con_info。conidx param - >处理,PRF_ERR_OK);
}
如果您添加此代码块,您的设备不应断开连接。
由于PM_dialog