在外围模式处理关贸总协定错误

⚠️
大家好. .谢谢光临论坛。令人兴奋的消息!我们现在在移动的过程中,我们的新论坛平台,将提供更好的功能和包含在主对话框的网站。所有文章和帐户已经被迁移。我们现在只接受交通新论坛,请发布任何新的线程//www.xmece.com/support。我们将修复bug /优化搜索和标签在接下来的日子里。
新6帖子/ 0
最后发表
ltdev
离线
最后看到:1年1周前
加入:2018-11-12 09:19
在外围模式处理关贸总协定错误

你好,我们与周边DA14585工作模式。我们使用ble_app_peripheral_example SDK。在我们删除service-2的例子中,服务3和排斥贬低。我们有只有1服务和1 characterictic烫(WR,启用)|烫(WRITE_REQ,启用)。

我们的服务定义

const struct attm_desc_128 custs1_att_db CUSTS1_IDX_NB =
{
/ * * * * * * * * * * * * * * * * * * * * * * * * *
*服务1配置
* * * * * * * * * * * * * * * * * * * * * * * * *
* /

/ /服务1声明
[SVC1_IDX_SVC] = {(uint8_t *) &att_decl_svc ATT_UUID_128_LEN,烫(RD,启用),
sizeof (custs1_svc1), sizeof (custs1_svc1), (uint8_t *) &custs1_svc1},

/ /长声明价值特征
[SVC1_IDX_LONG_VALUE_CHAR] = {(uint8_t *) &att_decl_char ATT_UUID_16_LEN,烫(RD,启用),
0 0零},

/ /长值特征值
[SVC1_IDX_LONG_VALUE_VAL] = {SVC1_LONG_VALUE_UUID_128 ATT_UUID_128_LEN,烫(WR,启用)|烫(WRITE_REQ,启用),
400、0零},

};

我们编译应用程序,加载da14585。然后对测试我们连接到设备。与联盟(android手机连接测试应用程序)我们可以从客户端设备编写服务器设备(在这种情况下,服务器da14585)不同长度的消息。5字节,20个字节,200字节,270字节,所有测试好。但是如果我们想写超过285字节;我们的测试应用程序(nrf)连接断开DA14585 (GATT_ERROR和GATT_CONN_TIMEOUT)和DA14585没有意义。

问题:

——我怎么感觉这种情况下DA14585吗?

——我怎么能增加GATT_CONN_TIMEOUT ?(我在user_config增加/减少监督超时。h但不要改变任何东西)

谢谢你!

设备:
PM_Dialog
离线
最后看到:4个月2周前
工作人员
加入:2018-02-08 11:03
嗨ltdev,

嗨ltdev,

我认为这个问题是与下面的论坛门票:

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/gatt-peripheral-mode-write-char-size

  1. 请在调试模式下运行该应用程序的代码。你能请检查如果代码冻结吗?例如,如果WDOG到期或如果你得到任何断言。
  2. 添加一个断点断开的回调——user_app_connection ()。一旦断开手机设备,断点打击吗?如果是的,原因项目gapc_disconnect_ind scructure表示断开的原因。它的价值是什么?

谢谢,PM_Dialog

ltdev
离线
最后看到:1年1周前
加入:2018-11-12 09:19
你好;

你好;

——我们只有uart定制。所以,我们不能用jtag调试它。

——我添加一些user_app_connection和user_app_disconn printf消息

{

/ /服务1声明
[SVC1_IDX_SVC] = {(uint8_t *) &att_decl_svc ATT_UUID_128_LEN,烫(RD,启用),
sizeof (custs1_svc1), sizeof (custs1_svc1), (uint8_t *) &custs1_svc1},

/ /长声明价值特征
[SVC1_IDX_LONG_VALUE_CHAR] = {(uint8_t *) &att_decl_char ATT_UUID_16_LEN,烫(RD,启用),
0 0零},

/ /长值特征值
[SVC1_IDX_LONG_VALUE_VAL] = {SVC1_LONG_VALUE_UUID_128 ATT_UUID_128_LEN,烫(WR,启用)|烫(WRITE_REQ,启用),
400年0零}

};

在两个我们有2个问题

1 -当我定义的结构;

{

/ /服务1声明
[SVC1_IDX_SVC] = {(uint8_t *) &att_decl_svc ATT_UUID_128_LEN,烫(RD,启用),
sizeof (custs1_svc1), sizeof (custs1_svc1), (uint8_t *) &custs1_svc1},

/ /长声明价值特征
[SVC1_IDX_LONG_VALUE_CHAR] = {(uint8_t *) &att_decl_char ATT_UUID_16_LEN,烫(RD,启用),
0 0零},

/ /长值特征值
[SVC1_IDX_LONG_VALUE_VAL] = {SVC1_LONG_VALUE_UUID_128 ATT_UUID_128_LEN,烫(WR,启用)|烫(WRITE_REQ,启用),
50 0零},

};

在这种情况下,我试着51个字节写入我得到ATTR_LEN_ERR特征。塔尔之后我改变了50个字节到400字节。这问题解决了。

2)解决问题1之后我定义我的服务结构

{

/ /服务1声明
[SVC1_IDX_SVC] = {(uint8_t *) &att_decl_svc ATT_UUID_128_LEN,烫(RD,启用),
sizeof (custs1_svc1), sizeof (custs1_svc1), (uint8_t *) &custs1_svc1},

/ /长声明价值特征
[SVC1_IDX_LONG_VALUE_CHAR] = {(uint8_t *) &att_decl_char ATT_UUID_16_LEN,烫(RD,启用),
0 0零},

/ /长值特征值
[SVC1_IDX_LONG_VALUE_VAL] = {SVC1_LONG_VALUE_UUID_128 ATT_UUID_128_LEN,烫(WR,启用)|烫(WRITE_REQ,启用),
400、0零},

};

在这种情况下我可以写特征最高可达285个字节。当我试着写超过285字节;我的客户端设备(在测试用例nrf连接的应用程序在android上)有GATT_TIMEOUT_ERR和断开连接。但是我的服务器设备(DA14585定制板)不合理这断开状态。所以不重新开始做广告。和我不能连接一遍。

显然我希望消息。

尊重……

PM_Dialog
离线
最后看到:4个月2周前
工作人员
加入:2018-02-08 11:03
嗨ltdev,

嗨ltdev,

你从外部引导SPI flash或从系统内存吗?

如果你从系统内存和启动设备并没有,这意味着冻成一个断言,或者WDOG过期或敝中断发生。

您可以验证通过SPI flash的引导,你就会看到,设备重启。

你应该在调试模式下运行项目在某种程度上,试图找到代码冻结的地方。否则我们不知道问题的根源是什么。

你有任何对话框dk吗?因为你没有一个JTAG接口,您可以使用任何DK的对话框。所有DA145xx开发工具包包含一个耐火J-Link设备提供串行线调试门限)能力。

http://lpccs-docs.dialog-semiconductor.com/Tutorial_SDK6/debug_probe.html

谢谢,PM_Dialog

ltdev
离线
最后看到:1年1周前
加入:2018-11-12 09:19
嗨,我解决了这个问题

嗨没有j-link我解决了这个问题

谢谢你!

PM_Dialog
离线
最后看到:4个月2周前
工作人员
加入:2018-02-08 11:03
嗨ltdev,

嗨ltdev,

高兴你解决这个问题。如果你有其他后续问题,请创建一个新的论坛帖子。

谢谢,PM_Dialog