你好,我下载了DSPS项目,我试图从DSPS应用程序发送一些消息,但我没有收到msg(GATTC_WRITE_CMD_IND)在BLE设备。有人知道为什么吗?
你好Aviel,
有几个线程可以解决你的问题:你设置权限是可写的吗?
BR JE_Dialog
http://support.dialog-semiconductor.com/cant-write-characteristic-value
http://support.dialog-semiconductor.com/adding-notify-permission-characteristic
http://support.dialog-semiconductor.com/can-not-handle-write-out-response
你好,是的,权限是可写的,DSPS的代码可以工作了,不是吗?,我参考了线程,但他们没有解决我的问题。这个问题也出现在样例128项目中。我想我不明白一些事情。
什么需要书写的许可?特性还是服务?
嗨Aviel,
DSPS配置文件可以“开箱即用”。
我猜您想创建自己的GATTC_WRITE_CMD_IND CHAR。请找到下面的示例步骤:
1)在你的处理器中,添加:
/ /添加字符属性= attmdb_add_attribute (adc_notify_env地位。adc_notify_shdl, ATT_UUID_128_LEN + 3, //数据大小= 19 (ATT_UUID_128_LEN + 3)ATT_UUID_16_LEN, (uint8_t*) &att_decl_char, PERM(RD, ENABLE), //这是CHAR描述符属性的权限。& (char_hdl));// CHAR描述符属性总是RD ONLY。/ /添加VAL属性= attmdb_add_attribute (adc_notify_env地位。adc_notify_shdl, 16, //数据大小:16字节&change_beacon_parameters_val ATT_UUID_128_LEN (uint8_t *)。uuid, PERM(WR, ENABLE), //VALUE ATTRIBUTE IS WRITE& (val_hdl));memcpy (change_beacon_parameters_char。attr_hdl &val_hdl, sizeof (uint16_t));//将value属性的句柄写入特征描述符。句柄的大小总是2 (sizeof(uint16_t))状态= attmdb_att_set_value(char_hdl, sizeof(change_beacon_parameters_char), (uint8_t *)&change_beacon_parameters_char);
2)在gattc_write_cmd_ind_handler中添加:
如果(char_code = = xxxx_CHAR){arch_printf(“\ n \ r \ n \ rWRITE”);
问候,
DIALOG_TEAM
这个例子已经存在于样本128配置文件和我没有收到中断的WRITE_CMD。我成功读取char,但不能写入。
不好意思,这是我的错误,我用错误的uuid发送了写命令。现在它的工作。谢谢你! !
你好Aviel,
有几个线程可以解决你的问题:你设置权限是可写的吗?
BR JE_Dialog
http://support.dialog-semiconductor.com/cant-write-characteristic-value
http://support.dialog-semiconductor.com/adding-notify-permission-characteristic
http://support.dialog-semiconductor.com/can-not-handle-write-out-response
你好,
是的,权限是可写的,DSPS的代码可以工作了,不是吗?,我参考了线程,但他们没有解决我的问题。
这个问题也出现在样例128项目中。我想我不明白一些事情。
什么需要书写的许可?特性还是服务?
嗨Aviel,
DSPS配置文件可以“开箱即用”。
我猜您想创建自己的GATTC_WRITE_CMD_IND CHAR。请找到下面的示例步骤:
1)在你的处理器中,添加:
/ /添加字符属性
= attmdb_add_attribute (adc_notify_env地位。adc_notify_shdl, ATT_UUID_128_LEN + 3, //数据大小= 19 (ATT_UUID_128_LEN + 3)
ATT_UUID_16_LEN, (uint8_t*) &att_decl_char, PERM(RD, ENABLE), //这是CHAR描述符属性的权限。
& (char_hdl));// CHAR描述符属性总是RD ONLY。
/ /添加VAL属性
= attmdb_add_attribute (adc_notify_env地位。adc_notify_shdl, 16, //数据大小:16字节
&change_beacon_parameters_val ATT_UUID_128_LEN (uint8_t *)。uuid, PERM(WR, ENABLE), //VALUE ATTRIBUTE IS WRITE
& (val_hdl));
memcpy (change_beacon_parameters_char。attr_hdl &val_hdl, sizeof (uint16_t));
//将value属性的句柄写入特征描述符。句柄的大小总是2 (sizeof(uint16_t))
状态= attmdb_att_set_value(char_hdl, sizeof(change_beacon_parameters_char), (uint8_t *)&change_beacon_parameters_char);
2)在gattc_write_cmd_ind_handler中添加:
如果(char_code = = xxxx_CHAR)
{
arch_printf(“\ n \ r \ n \ rWRITE”);
问候,
DIALOG_TEAM
这个例子已经存在于样本128配置文件和我没有收到中断的WRITE_CMD。我成功读取char,但不能写入。
不好意思,这是我的错误,我用错误的uuid发送了写命令。
现在它的工作。
谢谢你! !