#pragma once #include #include #include #include #include class PMSVSettings; class Command; class ReturnCommand; class CommunicationController { private: RF24 nrfRadio; GeneralCommandHandler generalCommandHandler; ActionCommandHandler actionCommandHandler; MeasurementCommandHandler measurementCommandHandler; std::queue commandQueue; protected: void handleCommand(const Command &command); void sendReturnCommand(const ReturnCommand &command); void parseNextCommand(); public: CommunicationController(const PMSVSettings &settings, MovementController &movementController); void update(); };