initial commit
This commit is contained in:
56
include/addr.hpp
Normal file
56
include/addr.hpp
Normal file
@@ -0,0 +1,56 @@
|
||||
#pragma once
|
||||
|
||||
#include "base.hpp"
|
||||
|
||||
#include <optional>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
struct DaliCompareAddrResult {
|
||||
int retH = 0;
|
||||
int retM = 0;
|
||||
int retL = 0;
|
||||
int nextAddr = 0;
|
||||
};
|
||||
|
||||
class DaliAddr {
|
||||
public:
|
||||
explicit DaliAddr(DaliBase& base);
|
||||
|
||||
std::vector<int> onlineDevices;
|
||||
bool isSearching = false;
|
||||
int scanRangeStart = 0;
|
||||
int scanRangeEnd = 63;
|
||||
|
||||
bool isAllocAddr() const;
|
||||
void setIsAllocAddr(bool value);
|
||||
int lastAllocAddr() const;
|
||||
void setLastAllocAddr(int value);
|
||||
|
||||
void selectDevice(int address);
|
||||
|
||||
bool writeAddr(int addr, int newAddr);
|
||||
bool removeAddr(int addr);
|
||||
bool removeAllAddr();
|
||||
|
||||
std::vector<int> searchAddr(int addr = 63);
|
||||
std::vector<int> searchAddrRange(int start = 0, int end = 63);
|
||||
void stopSearch();
|
||||
|
||||
bool compareSingleAddress(int typ, int addr);
|
||||
std::pair<int, int> precompareNew(int typ, int m = 0);
|
||||
int compareAddress(int typ);
|
||||
int compareAddressNew(int typ, int m = 0);
|
||||
DaliCompareAddrResult compareAddr(int ad, std::optional<int> minH, std::optional<int> minM,
|
||||
std::optional<int> minL);
|
||||
int compareMulti(int h, int m, int l, int ad);
|
||||
bool allocateAllAddr(int ads = 0);
|
||||
void stopAllocAddr();
|
||||
|
||||
bool removeFromScene(int addr, int scene);
|
||||
std::optional<int> getSceneBright(int addr, int scene);
|
||||
bool resetAndAllocAddr(int n = 0, bool removeAddrFirst = false, bool closeLight = false);
|
||||
|
||||
private:
|
||||
DaliBase& base_;
|
||||
};
|
||||
Reference in New Issue
Block a user