#pragma once #include "fgc/IControlChannel.h" #include "fgc/Logger.h" namespace fgc { // No-op control channel for running without an MQTT broker. Publishes are // dropped (logged at debug) and poll() never supplies a control command, so // the scheduler stays in automatic-sweep mode (ControlCode 0). class NullControlChannel : public IControlChannel { public: bool connect() override { return true; } void disconnect() override {} bool connected() const override { return true; } void publishStatus(int code) override { LOG_DEBUG << "[null] status " << code; } void publishCamEvent(const CamEvent& e) override { LOG_DEBUG << "[null] cam event " << e.camera << " hdg=" << e.heading_decideg << " t=" << e.timestamp_ms; } ControlCommand poll() override { return {}; } }; } // namespace fgc