收藏
回答

小程序蓝牙多个写入命令如何区分回调函数返回的数据?

目前这边的需求,一个写入命令返回一串数据,如写入0x85返回015454545454545444AAAAAA,然后这段二进制数据在onBLECharacteristicValueChange回调函数里是分包返回的,然后是实时刷新的,50ms回调分包返回一次,每一串数据结束以AAAAAA为结尾。如第一次返回015454545454,第二次54545444AAAAAA,依次类推。

那么,在写入第二个命令时,接口也是返回类似015454545454545444AAAAAA的数据,同时也是分包发送返回,那如何区分哪一串数据是哪个命令返回的呢?

而且onBLECharacteristicValueChange这个回调接口是异步的吧?假设一次写入命令分包返回2次如A和B,第二个写入命令返回C和D,那可能是不是就会出现ABCD或者ACBD或者其他等概率情况呢?

目前没有头绪,各位有遇到过这个需求吗?

最后一次编辑于  2023-08-07
回答关注问题邀请回答
收藏

1 个回答

  • 依然
    依然
    2023-08-07

    区分不了具体是从那个指令上来的,我之前的做法就是一进一出。

    1. 单线程操作每次最多只能有一条发送指令和接收指令。
    2. 每个指令都要有超时时间,超过时间就放弃。
    3. 每个指令都一定要有返回值。
    2023-08-07
    有用
    回复 2
    • 毕竟1米八 ¹
      毕竟1米八 ¹
      2023-08-07
      可是我的其中一个指令数据是实时50ms返回一次的,类似websocket
      2023-08-07
      回复
    • 依然
      依然
      2023-08-07回复毕竟1米八 ¹
      那就相当于你这个指令必须占据50ms的时间,期间不能再做任何硬件通信。
      2023-08-07
      回复
登录 后发表内容