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

你好,
我对ble数据传输是新手。我正试图通过读取一个特性从我的da14585发送数据到我的手机。当我初始化超过320字节的char数组时,程序将停止运行。当我构建它时,我没有得到任何警告或错误。我想发送1-2千字节的数据。
先谢谢你

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

嗨marios256,

你到底是怎么做的,当你提到你初始化超过320字节的char数组时,你到底是怎么做的?也许你的代码最终出现了硬故障或在NMI处理程序中,如果你从keil运行设备并使用调试器,这应该很容易跟踪。如果您想要一个大小为250字节的可读特征,那么您应该在user_custs1_def.h文件中声明它,例如,您可以尝试使用ADC 2特征,然后如果你想设置特点特定值必须与适当的配置发送CUSTS1_VAL_SET_REQ消息处理和结构长度字段和发送它,为了让定制概要文件将值设置为自定义数据库。

由于MT_dialog

marios256
离线
最后看到:2年2个月前
加入:2017-10-30 09:36
你好,

你好,
在user_custs1_def.h文件i initialized: #define DEF_USER_LED_STATE_CHAR_LEN 400为例。然后,在user_custs1_impl.c中创建了这个处理器:
空白app_adcval1_timer_cb_handler ()

struct custs1_val_ntf_ind_req *req = KE_MSG_ALLOC_DYN(CUSTS1_VAL_NTF_REQ,
prf_get_task_from_id (TASK_ID_CUSTS1),
TASK_APP,
custs1_val_ntf_ind_req,
DEF_USER_LED_STATE_CHAR_LEN);
这幅画被认为是弗朗西斯科·德尔·吉奥康多的妻子丽莎·盖拉尔迪尼的肖像画,画在伦巴第白杨木镶板上。人们认为这幅画创作于1503年至1506年间;然而,达·芬奇可能一直到1517年还在继续创作。最近的学术研究表明,它在1513年之前不会开始。它是由法兰西斯一世获得的";
申请- >处理= USER_IDX_LED_STATE_VAL;
申请- >长度= DEF_USER_LED_STATE_CHAR_LEN;

申请- >通知= true;
顺利进行,memcpy(请求- >价值DEF_USER_LED_STATE_CHAR_LEN);
ke_msg_send(点播);}

所以,当我进入调试会话和我按下运行按钮,它突然停止。我没有看到任何警告或错误。
非常感谢!

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

嗨marios256,

您正在使用的信息是发送一个通知,而不是只改变数据库中的值为了中央读它,发送通知时只有第一个20字节要修改,除非你改变了MTU大小,你想转移。复制的代码粘贴在我身边ble_app_peripheral准确的鉴定,你所做的,我没有看到任何问题,只要我启用通知和问题的0 x01控制点我能够得到第一个20字节的字符串粘贴并保持连接。如果突然停止没有启用通知甚至连到设备,那么问题不是你正在做的mod,而是SDK或演示中的其他东西。

由于MT_dialog

marios256
离线
最后看到:2年2个月前
加入:2017-10-30 09:36
晚上好,

晚上好,
非常感谢你的帮助。如果我想要读取一个特性传输1000字节或更多我应该怎么做?
我写了这个结构,但它一直停止运行
struct custs1_val_set_req *req = KE_MSG_ALLOC(custs1_val_set_req, prf_get_task_from_id(TASK_ID_CUSTS1), TASK_APP, custs1_val_set_req);
申请- >处理= USER_IDX_LED_STATE_VAL;
申请- >长度= DEF_USER_LED_STATE_CHAR_LEN;
这幅画被认为是弗朗西斯科·德尔·吉奥康多的妻子丽莎·盖拉尔迪尼的肖像画,画在伦巴第白杨木镶板上。人们认为这幅画创作于1503年至1506年间;然而,达·芬奇可能一直到1517年还在继续创作。最近的学术研究表明,它在1513年之前不会开始。它是由法兰西斯一世获得的";
顺利进行,memcpy(请求- >价值DEF_USER_LED_STATE_CHAR_LEN);
ke_msg_send(要求的);
我注意到,当我初始化user_custs1_def.h #define DEF_USER_LED_STATE_CHAR_LEN大约350-400时,问题发生了。如果我初始化它为300,它工作得很好。
提前谢谢!

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

嗨marios256。

发送更多的通知,只是发送第一个批量,然后在得到确认通知已成功存储在传输缓冲区后,发送第二个通知。每当您发送一个通知时,您将获得CUSTS1_VAL_NTF_CFM(用于自定义概要文件),一旦您得到这个,您将知道刚刚发送的通知将被传递到中央,因此您可以直接放置第二个通知。

关于停止运行,当您增加特征的大小时,可能会触发平台重置,请尝试从da1458x_config_advanced定义并增加DB_HEAP_SZ,例如,您可以将值设置为2048。

由于MT_dialog