initial commit
This commit is contained in:
116
include/device.hpp
Normal file
116
include/device.hpp
Normal file
@@ -0,0 +1,116 @@
|
||||
#pragma once
|
||||
|
||||
#include "model_value.hpp"
|
||||
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
struct DaliLongAddress {
|
||||
int h = 0;
|
||||
int m = 0;
|
||||
int l = 0;
|
||||
|
||||
static DaliLongAddress fromJson(const DaliValue::Object* json);
|
||||
DaliValue::Object toJson() const;
|
||||
};
|
||||
|
||||
struct DaliDeviceCapabilities {
|
||||
std::optional<bool> supportsDt1;
|
||||
std::optional<bool> supportsDt8;
|
||||
|
||||
static DaliDeviceCapabilities fromJson(const DaliValue::Object* json);
|
||||
DaliValue::Object toJson() const;
|
||||
void merge(const DaliDeviceCapabilities& other);
|
||||
};
|
||||
|
||||
struct DaliStatusFlags {
|
||||
std::optional<bool> controlGearPresent;
|
||||
std::optional<bool> lampFailure;
|
||||
std::optional<bool> lampPowerOn;
|
||||
std::optional<bool> limitError;
|
||||
std::optional<bool> fadingCompleted;
|
||||
std::optional<bool> resetState;
|
||||
std::optional<bool> missingShortAddress;
|
||||
std::optional<bool> psFault;
|
||||
|
||||
static DaliStatusFlags fromJson(const DaliValue::Object* json);
|
||||
DaliValue::Object toJson() const;
|
||||
bool hasData() const;
|
||||
void merge(const DaliStatusFlags& other);
|
||||
};
|
||||
|
||||
struct DaliDt8State {
|
||||
std::optional<int> colorType;
|
||||
std::optional<std::string> activeMode;
|
||||
std::optional<int> xyX;
|
||||
std::optional<int> xyY;
|
||||
std::optional<int> xyMinX;
|
||||
std::optional<int> xyMaxX;
|
||||
std::optional<int> xyMinY;
|
||||
std::optional<int> xyMaxY;
|
||||
std::optional<int> mirek;
|
||||
std::optional<int> mirekMin;
|
||||
std::optional<int> mirekMax;
|
||||
std::optional<std::vector<int>> rgbwaf;
|
||||
std::optional<std::vector<int>> primaryN;
|
||||
|
||||
static DaliDt8State fromJson(const DaliValue::Object* json);
|
||||
DaliValue::Object toJson() const;
|
||||
};
|
||||
|
||||
struct DaliDt1State {
|
||||
std::optional<int> emergencyLevel;
|
||||
std::optional<int> emergencyMinLevel;
|
||||
std::optional<int> emergencyMaxLevel;
|
||||
std::optional<int> prolongTimeMinutes;
|
||||
std::optional<int> ratedDurationMinutes;
|
||||
std::optional<int> testDelayTime;
|
||||
std::optional<int> failureStatus;
|
||||
std::optional<int> emergencyStatus;
|
||||
std::optional<int> emergencyMode;
|
||||
std::optional<int> feature;
|
||||
std::optional<int> version;
|
||||
|
||||
static DaliDt1State fromJson(const DaliValue::Object* json);
|
||||
DaliValue::Object toJson() const;
|
||||
};
|
||||
|
||||
struct DaliDevice {
|
||||
std::string id;
|
||||
std::string name;
|
||||
std::optional<int> shortAddress;
|
||||
std::optional<DaliLongAddress> longAddress;
|
||||
bool isolated = false;
|
||||
|
||||
std::optional<int> brightness;
|
||||
std::optional<int> groupBits;
|
||||
std::optional<std::vector<int>> scenes;
|
||||
|
||||
std::optional<int> fadeTime;
|
||||
std::optional<int> fadeRate;
|
||||
std::optional<int> powerOnLevel;
|
||||
std::optional<int> systemFailureLevel;
|
||||
std::optional<int> minLevel;
|
||||
std::optional<int> maxLevel;
|
||||
std::optional<int> operatingMode;
|
||||
std::optional<int> physicalMinLevel;
|
||||
|
||||
std::optional<int> deviceType;
|
||||
std::vector<int> extType;
|
||||
std::optional<int> version;
|
||||
|
||||
DaliDeviceCapabilities capabilities;
|
||||
std::optional<DaliDt8State> dt8;
|
||||
std::optional<DaliDt1State> dt1;
|
||||
DaliStatusFlags statusFlags;
|
||||
|
||||
std::optional<std::string> lastSyncedUtc;
|
||||
DaliValue::Object metadata;
|
||||
|
||||
static DaliDevice fromJson(const DaliValue::Object& json);
|
||||
DaliValue::Object toJson() const;
|
||||
|
||||
std::string displayName() const;
|
||||
void merge(const DaliDevice& other);
|
||||
};
|
||||
Reference in New Issue
Block a user