ESP8266 does not support frame aggregation natively in its networking implementation, this PR adds it on application level to decrease airtime by 50-70%.
New packet 22 (0x16): feature flags - packet-sized bitset (uint8[length]);
New packet 100 (0x64): bundle - contains multiple type- (uint32) and length- (uint16) prefixed packets.
In case of single sensor, sends rotation and acceleration packets (and everything produced by Sensor::sendData) as one.
In case of multiple sensors, by default attempts to wait for data from all sensors with a timeout of 10ms (send at no less than 100Hz).
Companion PR: https://github.com/SlimeVR/SlimeVR-Server/pull/794
ESP8266 does not support frame aggregation natively in its networking implementation, this PR adds it on application level to decrease airtime by 50-70%.
In case of single sensor, sends rotation and acceleration packets (and everything produced by
Sensor::sendData
) as one. In case of multiple sensors, by default attempts to wait for data from all sensors with a timeout of 10ms (send at no less than 100Hz).