#pragma once #include "base.hpp" #include "bus_monitor.hpp" #include "comm.hpp" #include "dali_comm.hpp" #include "decode.hpp" #include "device.hpp" #include "dt1.hpp" #include "dt8.hpp" #include "addr.hpp" #include "color.hpp" #include "errors.hpp" #include "log.hpp" #include "query_scheduler.hpp" #include "sequence.hpp" #include "sequence_store.hpp" #include #include // Convenience umbrella header for the ESP-IDF DALI component. class Dali { public: static Dali& instance(DaliComm& comm) { if (!instance_) { instance_ = std::unique_ptr(new Dali(comm)); } return *instance_; } static void resetInstance() { instance_.reset(); } static constexpr int broadcast = 127; std::string name = "dali1"; int gw = 0; DaliBase base; DaliDecode decode; DaliDT1 dt1; DaliDT8 dt8; DaliAddr addr; explicit Dali(DaliComm& comm, int g = 0, const std::string& n = "dali1") : name(n), gw(g), base(comm), decode(), dt1(base), dt8(base), addr(base) {} void open() {} void close() {} private: inline static std::unique_ptr instance_ = nullptr; };