#include "FlightController.hpp" #include "GSON.h" #include "RF/BluetoothDispatcher.hpp" class FlightDispatcher { /* Deserialize state and update it in FlightController. */ public: FlightDispatcher(BluetoothDispatcher *bluetoothDispatcher, FlightController *flightController, bool loop_on_fail = true); ~FlightDispatcher(); void tick(); private: void _onNewDeviceConnected(BTAddress device); void _onNewMessageReceived(char *package); void _sendTelemetry(); static constexpr const char *_tag = "FlightDispatcher"; static constexpr const int _telemetryTimeIntervalMS = 200; static constexpr const uint8_t _jsonMaxDepth = 5; uint32_t _telemetryTimer = millis(); BluetoothDispatcher *_bluetoothDispatcher; FlightController *_flightController; };