您好!
我正在使用 simple_peripheral 应用程序、我希望从主设备发送和接收数据。 我已经使用可以接收和发送到主设备的100字节数据进行了测试。
但是、当数据大于100字节时、我 能够从主器件正确接收数据。 但是 、当我从 simple_peripheral 向 Mater 发送数据(使用通知)时、它仅发送100个正确字节。
之后、它开始重复第一个索引中的数据。 我已经使用100字节、200字节、250字节和600字节的数据进行了测试,仅发现100字节的数据成功。 以下是我用于通过通知发送数据的代码
void sendData (uint16_t connHandle、uint8_t * offset) { uint16_t length = 20; //如果启用通知 uint16_t value = GATTServApp_ReadCharCfg (connHandle、myccDes); if (value & GATT_CLIENT_CFG_NOTIFY) { attHandleValueNoti_t 通知; oti.len =长度; NOTI.pValue = GATT_BM_alloc (connHandle、ATT_Handle_Value_Noti、Notti.plen、&Notti.len); if (NOti.pValue!=空) { gattAttribute_t *pAttr; pAttr= GATTServApp_FindAttr (dmyServiceAttrTbl、 GATT_NUM_ATTRS (domServiceAttrTbl)、 trampesCharVal (&T); oti.handle = pAttr->句柄; memcpy (oti.pValue、dataBuffer + offset[0]、length);// dataBuffer 具有所有数据 if (GATT_Notification (connHandle、&Noti、false)!=成功) { GATT_BM_FREE (((gattMsg_t *)&Noti、ATT_Handle_Value_Noti); } } }
可以帮帮我吗? 堆栈是否存在任何不支持更多数据的限制?
以下是主设备发送测试绿色数据的结果、而黑色是从从设备接收的数据。
100字节的测试结果
010601010101010101010101010101010102020202020202020202020202020202030603030303030303030303030303030303030303030303030303030
40604040404040404040404040404040506050505050505050505050505050505050505050606065d5e5f61626364
010601010101010101010101010101010102020202020202020202020202020202020306030303030303030303030303030303030303030303030303030304
0604040404040404040404040405060505050505050505050505050505050505050505050606065d5e5f61626364
使用120字节测试 REST
010701010101010101010101010101010202020202020202020202020202020202020303030303030303030303030303030303030303030303030
3040704040404040404040404040404040404050505050505050505050505050505050505050505060731323334ef03f0f107010101010101010101010101010101010101010101010101010101010207
0107010101010101010101010101010102020202020202020202020202020202020203030303030303030303030303030303030303030303030303030
407040404040404040404040404040505050505050505050505050505050505050506073132334ef03f0f1f2f306060606060606060707313233334ef03f0f1f2f3f3
正在等待您的回复。
此致