SlimeVR / SlimeVR-Tracker-ESP

SlimeVR tracker firmware for ESP32/ESP8266 and different IMUs
Apache License 2.0
868 stars 298 forks source link

Implement packet bundling #263

Closed 0forks closed 1 year ago

0forks commented 1 year ago

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).