Part Number:CC2640R2F
请问有没有办法保证一主多从通信中,某一次通信一定成功?就是说主机给从机发送命令,一定一次成功。不进行重发。只要有一次就行,不要求每次都是一次性成功。
Alex Zhang:
您好,针对于您描述的问题:只要有一次就行,不要求每次都是一次性成功。
那您可以直接去多次发送就可以了,取消掉重发判断就可以了,主机一直发,不去接受从机接受成功的回传判断条件即可。
,
Alex Zhang:
还有就是对于您这边提到的一次发送一定成功,任何通信都是做不到的,尤其是多个从机以及复杂的通信环境下。
您不想去进行单个数据多次重发的话,就直接去写发送数据过去就可以了,把接受重发回传条件去掉。
也就是主机一直在发,不去管从机是否能收到。
这样就可以做到每次发送的数据都是最新的状态,也就不会影响你数据的实时性,但是这样做可能会丢掉某一次的数据。
,
caiyu:
好的谢谢
,
Alex Zhang:
extern bStatus_t GATT_Notification( uint16 connHandle, attHandleValueNoti_t *pNoti, uint8 authenticated );(不需要主机回应就可以继续发送)
我刚刚为您找到了这个函数,这个函数与GATT——Indication的区别是一个需要主机回应而另一个不需要主机的回应。
,
caiyu:
BLE重传机制是一定能保证从机的数据一定被主机接收吗?
,
Alex Zhang:
您好,对的如果主机收不到数据的话不回去进行回传标志的,这样就会一直发送,直到有应答之后再进行下一步
当然这也取决你的程序如何设计。
这边我给您提供了这个函数,希望可以帮助到您。
Alex Zhang 说:
extern bStatus_t GATT_Notification( uint16 connHandle, attHandleValueNoti_t *pNoti, uint8 authenticated );(不需要主机回应就可以继续发送)
我刚刚为您找到了这个函数,这个函数与GATT——Indication的区别是一个需要主机回应而另一个不需要主机的回应。