将多个字节发送到特征

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个帖子/ 0新
最后一篇
niekvdd.
离线
最后一次露面:1年11个月前
加入:2017-01-25 09:29
将多个字节发送到特征

大家好,

我正在尝试使用来自SDK的BLE_APP_PERITEM_PROFILE_GATT_CMD_EXAMPLE_V1的BLE_APP_PERITERAL项目将多个字节写入特性。

我目前面临的问题是,当多个字节发送到特征时,不会触发处理程序。我正在从运行blueloupe的Android手机发送数据。通过发送0x01和0x00分别使用没有问题,打开和关闭LED。我在user_custs1_def.h中增加def_user_led_state_char_len从1到几个较高的数字,但是它们都不是在将其他数据发送到特征时执行的处理程序,而不是0x00或0x01。

如何在多个字节发送到特征时修改要触发的处理程序?

亲切的问候,
niek.

P.S.我正在使用SDK 5.0.3.268,而不是5.0.2.1,但此选项未被选择

关键词:
设备:
mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨niekvdd,

嗨niekvdd,

如果我正确地解决了问题,则无法根据您的特征上的字节触发写处理程序,在客户端发送而不是在每个字节中的每个大部分数据(每个写入命令)上触发写回调。为了触发每个字节上的处理程序,您需要从中央将数据字节发送到字节。在自定义配置文件实现中,通知应用程序的GattC_Write_cmd_ind_handler()函数在每个gattc_write_cmd_ind上执行一次特征,每个写入事件只发送一个cutters1_val_write_ind。

谢谢mt_dialog.

niekvdd.
离线
最后一次露面:1年11个月前
加入:2017-01-25 09:29
你好mt_dialog,

你好mt_dialog,

我担心我没有正确解释自己。我的意思是不要在一个写入事件上多次触发处理程序。
我想要的是将多个字节发送到一个字符,并且只有一次触发处理程序。在处理程序本身中,我想使用多个字节。

我开始从培训中编辑代码,并在user_custs1_impl.c中进行以下内容
正如此代码所示,我想处理一次发送给处理程序的所有字节。

void user_led_wr_ind_handler(ke_msg_id_t const msgid,
struct musts1_val_write_ind const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)

{
char n [8];
for(int i = 0; i <8; i ++){
n [i] =(char)param->值[i];
}
if(check_key(n)){
UINT8_T LED_STATE = 0;
memcpy(&led_state,&param-> value [8],param->长度);
if(LED_STATE == LED_ON)
gpio_setactive(gpio_led_port,gpio_led_pin);
否则if(led_state == led_off)
gpio_setinactive(gpio_led_port,gpio_led_pin);
}
}

亲切的问候,
niek.

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨niekvdd,

嗨niekvdd,

我无法理解您的问题是什么,您将能够编写多个字节并将其发送到外设并将发生处理程序。例如,如果修改特性的长度以允许说明50(#define def_cust1_ctrl_point_char_len 50),则处理程序将触发一次并向您的应用程序传递指向客户端已发送的50个字节的指针。您可以在BLE_APP_PERITIVELAL示例中进行简单的测试。

谢谢mt_dialog.

niekvdd.
离线
最后一次露面:1年11个月前
加入:2017-01-25 09:29
嗨mt_dialog,

嗨mt_dialog,

它现在正在运作。在某处,我让自己相信当我发送多个字节时,处理程序没有触发。我认为它是因为当您发送十六进制01或0100时,LED才会打开,而不是0001我一直在测试的内容。

感谢您的帮助!

亲切的问候,
niek.