CharGraph-FW/include/defines.inc
2026-01-29 07:26:48 +01:00

109 lines
6.0 KiB
C++

#ifndef _DEFINES_INC_
#define _DEFINES_INC_
#ifdef BRIDGE_LEDS_POS77
#warning "BRIDGE_LEDS_POS77 is definded, so RGB-LED on pos 77 would bridged"
#endif
#if defined(DEBUG_SOURCE) && (DEBUG_SOURCE == true)
#warning "DEBUG_MODE is set to true, so Serial is active"
#define DEBUG_PRINT(x) {Serial.print(x);Serial.flush(); yield();}
#define DEBUG_PRINTLN(x) {Serial.println(x);Serial.flush(); yield();}
#define DEBUG_PRINTF(...) {Serial.printf(__VA_ARGS__);Serial.flush(); yield();}
#else
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x)
#define DEBUG_PRINTF(...)
#endif
#define I2C_SDA D2
#define I2C_SCL D1
// APA102/SK9822 auf D7 (DATA), D5 (CLK)
#define DATA_PIN2 D7
#define CLK_PIN2 D5
#define AP_SSID_LENGHT 13
#define AP_PASSWORD_LENGTH 17
#define MAXWORDS 3 // Anzahl Spezialwörter
// ════════════════════════════════════════════════════════════════
// EEPROM ADRESSEN
// ════════════════════════════════════════════════════════════════
#define EEPROM_SIZE 512
#define ADDR_BRIGHTNESS 0
#define ADDR_COLOR_R 1
#define ADDR_COLOR_G 2
#define ADDR_COLOR_B 3
#define ADDR_SPECIAL_R 4
#define ADDR_SPECIAL_G 5
#define ADDR_SPECIAL_B 6
#define ADDR_CONFIGURED 7
#define ADDR_TIMESTAMP 8
#define ADDR_SSID (ADDR_TIMESTAMP+sizeof(savedTime))
#define ADDR_PASSWORD (ADDR_SSID + AP_SSID_LENGHT)
#define ADDR_WIFI_SET (ADDR_PASSWORD + AP_PASSWORD_LENGTH)
#define ADDR_LAST_SYNC 40
#define ADDR_DRIFT_RATE 44
#define ADDR_SYNC_COUNT 48
#define ADDR_CHARSOAP 50
#define ADDR_CHARSOAP_SET 161
#define ADDR_BOOT_COUNTER 163 // Boot-Counter
#define ADDR_CLEAN_SHUTDOWN 164 // Clean-Shutdown-Flag
#define ADDR_RUNNING_FLAG 165 // "System läuft" Flag
// ════════════════════════════════════════════════════════════════
// OTA UPDATE ADRESSEN (346 bytes frei: 166-511)
// ════════════════════════════════════════════════════════════════
#define ADDR_OTA_VERSION 166 // Firmware-Version (32 bytes)
#define ADDR_OTA_BUILD_DATE 198 // Build-Datum/Zeit (20 bytes)
#define ADDR_OTA_FLAGS 218 // OTA-Status-Flags (1 byte)
#define OTA_FLAG_UPDATE_SUCCESS 0x01
#define OTA_FLAG_UPDATE_FAILED 0x02
// ════════════════════════════════════════════════════════════════
// WIFI STATION & NTP ADRESSEN (293 bytes frei: 219-511)
// ════════════════════════════════════════════════════════════════
#define ADDR_STA_SSID 219 // Station SSID (32 bytes)
#define ADDR_STA_PASSWORD 251 // Station Password (64 bytes)
#define ADDR_STA_ENABLED 315 // Station enabled flag (1 byte)
#define ADDR_STA_DHCP 316 // DHCP enabled (1 byte)
#define ADDR_STA_IP 317 // Static IP (4 bytes)
#define ADDR_STA_GATEWAY 321 // Gateway (4 bytes)
#define ADDR_STA_SUBNET 325 // Subnet mask (4 bytes)
#define ADDR_STA_DNS 329 // DNS server (4 bytes)
#define ADDR_NTP_SERVER 333 // NTP server hostname (32 bytes)
#define ADDR_NTP_LAST_SYNC 365 // Last NTP sync timestamp (4 bytes)
#define ADDR_NTP_ENABLED 369 // NTP enabled flag (1 byte)
// ════════════════════════════════════════════════════════════════
// AUTO-BRIGHTNESS ADRESSEN (140 bytes frei: 377-511)
// ════════════════════════════════════════════════════════════════
#define ADDR_AUTO_BRIGHTNESS_ENABLED 370 // Auto-Brightness aktiviert (1 byte)
#define ADDR_AUTO_BRIGHTNESS_MIN_ADC 371 // Min ADC-Wert (2 bytes uint16_t)
#define ADDR_AUTO_BRIGHTNESS_MAX_ADC 373 // Max ADC-Wert (2 bytes uint16_t)
#define ADDR_AUTO_BRIGHTNESS_MIN 375 // Min Helligkeit (1 byte uint8_t)
#define ADDR_AUTO_BRIGHTNESS_MAX 376 // Max Helligkeit (1 byte uint8_t)
// ════════════════════════════════════════════════════════════════
// SPECIAL WORD & MINUTE LEDS ADRESSEN (93 bytes frei: 377-511)
// ════════════════════════════════════════════════════════════════
#define ADDR_SPECIAL_WORD_1 377 // Erstes Spezialwort (12 bytes)
#define ADDR_SPECIAL_WORD_2 389 // Zweites Spezialwort (12 bytes)
#define ADDR_SPECIAL_WORD_3 401 // Drittes Spezialwort (12 bytes)
#define ADDR_MINUTE_LEDS 413 // 4 Minuten-LEDs Positionen (4 bytes)
#define ADDR_SPECIAL_WORD_SET 417 // Flag: Custom Special Words (1 byte)
#define ADDR_MINUTE_LEDS_SET 418 // Flag: Custom Minute LEDs (1 byte)
#define ADDR_SPECIAL_WORD_INTERVAL 419 // Anzeigeintervall in Minuten (1 byte)
#define STA_ENABLED_MAGIC 0xAA
#define NTP_ENABLED_MAGIC 0xBB
#define AUTO_BRIGHTNESS_MAGIC 0xCC
#define SPECIAL_WORD_MAGIC 0xDD
#define MINUTE_LEDS_MAGIC 0xEE
#define RUNNING_FLAG_MAGIC 0x42 // Magic Byte
#define MAGIC_BYTE_INIT 0xAA
#endif