knxdisplay/main/KnxWorker.hpp
2026-01-28 22:41:05 +01:00

38 lines
1.0 KiB
C++

#pragma once
#include <cstdint>
#include <cstddef>
// KNX Group Object Info für Web-API
struct KnxGroupObjectInfo {
uint16_t goIndex; // Group Object Index (1-based)
uint16_t groupAddress; // Gruppenadresse (z.B. 1/2/3 = 0x0A03), 0 wenn nicht zugeordnet
uint8_t dptMain; // DPT Haupttyp
uint8_t dptSub; // DPT Subtyp
bool commFlag; // Kommunikations-Flag
bool readFlag; // Lese-Flag
bool writeFlag; // Schreib-Flag
};
class KnxWorker {
public:
KnxWorker();
void init();
void toggleProgMode();
bool getProgMode();
void setProgMode(bool enabled);
void clearSettings();
void loop();
// KNX Gruppenadressen auslesen
size_t getGroupObjectCount();
bool getGroupObjectInfo(size_t index, KnxGroupObjectInfo& info);
// Gruppenadresse als String formatieren (z.B. "1/2/3")
static void formatGroupAddress(uint16_t addr, char* buf, size_t bufSize);
private:
volatile uint8_t knxResetState_ = 0;
volatile uint32_t knxResetAtMs_ = 0;
};