67 lines
2.9 KiB
C
67 lines
2.9 KiB
C
#pragma once
|
|
|
|
|
|
#define paramDelay(time) (uint32_t)( \
|
|
(time & 0xC000) == 0xC000 ? (time & 0x3FFF) * 100 : \
|
|
(time & 0xC000) == 0x0000 ? (time & 0x3FFF) * 1000 : \
|
|
(time & 0xC000) == 0x4000 ? (time & 0x3FFF) * 60000 : \
|
|
(time & 0xC000) == 0x8000 ? ((time & 0x3FFF) > 1000 ? 3600000 : \
|
|
(time & 0x3FFF) * 3600000 ) : 0 )
|
|
|
|
// Parameter with single occurrence
|
|
#define StartupDelay 0 // int32_t
|
|
#define StartupDelaySelection 4 // 16 Bits, Bit 15-0
|
|
#define Heartbeat 6 // int32_t
|
|
#define TemperatureSensor 10 // 1 Bit, Bit 7
|
|
#define TemperatureSensorMask 0x80
|
|
#define TemperatureSensorShift 7
|
|
#define HumiditySensor 10 // 1 Bit, Bit 6
|
|
#define HumiditySensorMask 0x40
|
|
#define HumiditySensorShift 6
|
|
#define TemperatureAlign 11 // float
|
|
#define HumidityAlign 13 // float
|
|
#define HumiditySend 15 // 8 Bits, Bit 7-0
|
|
|
|
// Zeit (Sekundengenau)
|
|
#define ParamStartupDelay ((int32_t)knx.paramInt(StartupDelay))
|
|
// Zeit bis das Gerät nach einem Neustart aktiv wird
|
|
#define ParamStartupDelaySelection (knx.paramWord(StartupDelaySelection))
|
|
// 'In Betrieb'-Telegramm senden alle
|
|
#define ParamHeartbeat ((int32_t)knx.paramInt(Heartbeat))
|
|
// Temperatursensor
|
|
#define ParamTemperatureSensor ((bool)(knx.paramByte(TemperatureSensor) & TemperatureSensorMask))
|
|
// Luftfeuchtesensor
|
|
#define ParamHumiditySensor ((bool)(knx.paramByte(HumiditySensor) & HumiditySensorMask))
|
|
// Temperaturwert anpassen
|
|
#define ParamTemperatureAlign (knx.paramFloat(TemperatureAlign, Float_Enc_IEEE754Single))
|
|
// Luftfeuchte anpassen
|
|
#define ParamHumidityAlign (knx.paramFloat(HumidityAlign, Float_Enc_IEEE754Single))
|
|
// Wert senden als
|
|
#define ParamHumiditySend (knx.paramByte(HumiditySend))
|
|
|
|
// Communication objects with single occurrence
|
|
#define KoHeartbeat 1
|
|
#define KoTemperature 2
|
|
#define KoHumidity 3
|
|
#define KoRequest 4
|
|
|
|
// In Betieb
|
|
#define KoHeartbeat (knx.getGroupObject(KoHeartbeat))
|
|
// Temperaturmesswert
|
|
#define KoTemperature (knx.getGroupObject(KoTemperature))
|
|
// Luftfeuchtemesswert
|
|
#define KoHumidity (knx.getGroupObject(KoHumidity))
|
|
// Alle Messwerte anfordern
|
|
#define KoRequest (knx.getGroupObject(KoRequest))
|
|
|
|
#ifdef MAIN_FirmwareRevision
|
|
#ifndef FIRMWARE_REVISION
|
|
#define FIRMWARE_REVISION MAIN_FirmwareRevision
|
|
#endif
|
|
#endif
|
|
#ifdef MAIN_FirmwareName
|
|
#ifndef FIRMWARE_NAME
|
|
#define FIRMWARE_NAME MAIN_FirmwareName
|
|
#endif
|
|
#endif
|