skov 这个我在BLE Mesh各层帧包格式详解章节讲过。那我们就分两个部分:
- unsegmented
如果用的这种模式的话,那么opcode+parameters最大为11个字节,其中transmic为4bytes的情况下;因为你上述的数据不是标准的数据流,显然是vendor model,这个时候opcode就是3个字节,那么剩下的能给你用的就是8bytes. 而你要发送的数据就是20个字节,这样的话你就要发3次即:
- 3+8+4
- 3+8+4
- 3+4+4
- segmented
如果你用的是自带的分包,那么opcode+parameters最大为8个字节,其中transmic为4bytes的情况下;因为你上述的数据不是标准的数据流,显然是vendor model,这个时候opcode就是3个字节,而你要发送的数据就是20个字节,这样的话你就要发3次即:
- 3+9
- 12
- 3
可能你会问,为什么前面两包不用加4,那是因为自带的分包的话,transmic不用每包都传,只要所有包传完之后,再最后传即可。
当然,你还可以将opcode也变成你想传的数据,那样的话,2包即可