发送多个字节到一个特征

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
5个职位/ 0个新职位
最后发表
Niekvdd
离线
最后看到:2年3个月前
加入:2017-01-25 09:29
发送多个字节到一个特征

你好,

我尝试使用SDK中的ble_app_peripheral项目将多个字节写入一个特征,后面是Training_03_custom_profile_gatt_cmd_example_v1。

我目前面临的问题是,当多个字节发送到特征时,处理程序不会触发。我用运行BlueLoupe的安卓手机发送数据。分别发送0x01和0x00来开启和关闭LED都没有问题。我将user_custs1_def.h中的DEF_USER_LED_STATE_CHAR_LEN从1增加到几个更大的数字,但是当将其他数据发送到特征时,除了0x00或0x01,它们都没有使583执行处理程序。

当多个字节被发送到一个特征时,我如何修改被触发的处理程序?

亲切的问候,
Niek

我使用的是SDK 5.0.3.268,而不是5.0.2.1,但是这个选项是不可选择的

关键词:
设备:
MT_dialog
离线
最后看到:6个月1个星期前
工作人员
加入:2015-06-08 34
嗨Niekvdd,

嗨Niekvdd,

正确如果我有问题,你不能触发编写处理程序根据字节,你有在你的特点,编写回调在每个触发大量数据(每个写命令),客户端发送,而不是在每个字节,以触发每个字节的处理程序,您需要发送数据字节字节从你的中央。在自定义概要文件实现中,gattc_write_cmd_ind_handler()函数通知应用程序特征已写入,它在每个GATTC_WRITE_CMD_IND上执行一次,并在每个写入事件中只发送一个CUSTS1_VAL_WRITE_IND。

由于MT_dialog

Niekvdd
离线
最后看到:2年3个月前
加入: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 custs1_val_write_ind const *参数,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)


char n [8];
For (int I = 0;我< 8;我+ +){
N [i] = (char) param->value[i];

如果(check_key (n)) {
uint8_t led_state = 0;
memcpy (&led_state param - >价值[8],param - >长度);
如果(led_state = = LED_ON)
GPIO_SetActive (GPIO_LED_PORT GPIO_LED_PIN);
else if (led_state = = LED_OFF)
GPIO_SetInactive (GPIO_LED_PORT GPIO_LED_PIN);

亲切的问候,
Niek

MT_dialog
离线
最后看到:6个月1个星期前
工作人员
加入:2015-06-08 34
嗨Niekvdd,

嗨Niekvdd,

我不能理解你的问题是什么,你将能够写超过一个字节,并将它发送到外设和处理程序将发生。例如,如果您修改特征的长度,比如说50 (#define DEF_CUST1_CTRL_POINT_CHAR_LEN 50),处理程序将触发一次,并将指向客户端发送的50字节的指针传递给应用程序。您可以在ble_app_peripheral示例中进行一个简单的测试。

由于MT_dialog

Niekvdd
离线
最后看到:2年3个月前
加入:2017-01-25 09:29
嗨MT_dialog,

嗨MT_dialog,

它现在正在工作。后来,我让自己相信,当我发送多个字节时,处理器没有被触发。我认为这是因为led只在你发送十六进制01或0100时打开,而不是我一直在测试的0001。

谢谢你的帮助!

亲切的问候,
Niek