Files
dali_cpp/include/dali.hpp
T
Tony bbcfcd11f6 Add support for DT4, DT5, and DT6 devices
- Updated CMakeLists.txt to include new source files for DT4, DT5, and DT6.
- Modified dali.hpp to include headers for DT4, DT5, and DT6.
- Added command definitions for DT4, DT5, and DT6 in dali_define.hpp.
- Enhanced DaliDeviceCapabilities to support DT4, DT5, and DT6 detection.
- Implemented DT4 and DT5 classes with methods for device control and status querying.
- Created DT6 class with methods for device control and status querying.
- Updated decode.cpp to include new device types in the deviceTypeName mapping.
- Enhanced device.cpp to handle new device capabilities.
2026-04-24 13:36:08 +08:00

68 lines
1.4 KiB
C++

#pragma once
#include "base.hpp"
#include "bacnet_bridge.hpp"
#include "bridge.hpp"
#include "bridge_model.hpp"
#include "bridge_provisioning.hpp"
#include "bus_monitor.hpp"
#include "comm.hpp"
#include "dali_comm.hpp"
#include "decode.hpp"
#include "device.hpp"
#include "dt1.hpp"
#include "dt4.hpp"
#include "dt5.hpp"
#include "dt6.hpp"
#include "dt8.hpp"
#include "addr.hpp"
#include "gateway_cloud.hpp"
#include "gateway_provisioning.hpp"
#include "color.hpp"
#include "errors.hpp"
#include "log.hpp"
#include "modbus_bridge.hpp"
#include "query_scheduler.hpp"
#include "sequence.hpp"
#include "sequence_store.hpp"
#include <memory>
#include <string>
// Convenience umbrella header for the ESP-IDF DALI component.
class Dali {
public:
static Dali& instance(DaliComm& comm) {
if (!instance_) {
instance_ = std::unique_ptr<Dali>(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;
DaliDT4 dt4;
DaliDT5 dt5;
DaliDT6 dt6;
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), dt4(base), dt5(base), dt6(base),
dt8(base), addr(base) {}
void open() {}
void close() {}
private:
inline static std::unique_ptr<Dali> instance_ = nullptr;
};