; PlatformIO Project Configuration File ; ; Build targets: ; production – serial off, light-sleep on (normal deployment) ; debug – serial + meter diag + state tracing (real meter, real data) ; test – synthetic meter data + payload codec self-test (no real meter needed) ; ; LoRa frequency and sender IDs are configured in include/config.h, ; NOT via build flags. Change them there before building. [env] platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.07/platform-espressif32.zip board = ttgo-lora32-v1 framework = arduino lib_deps = sandeepmistry/LoRa@^0.8.0 bblanchon/ArduinoJson@^6.21.5 adafruit/Adafruit SSD1306@^2.5.9 adafruit/Adafruit GFX Library@^1.11.9 knolleary/PubSubClient@^2.8 throwtheswitch/Unity@^2.6.1 ; --- Hardening flags for all builds --- build_flags = -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Wno-format-truncation ; --- Production: serial off, light-sleep on --- [env:production] build_flags = ${env.build_flags} -DSERIAL_DEBUG_MODE_FLAG=0 -DENABLE_LIGHT_SLEEP_IDLE=1 ; --- Debug: serial + all diagnostics, real meter data --- ; Does NOT enable test mode — uses real meter + real LoRa. [env:debug] build_flags = ${env.build_flags} -DSERIAL_DEBUG_MODE_FLAG=1 -DENABLE_LIGHT_SLEEP_IDLE=1 -DDEBUG_METER_DIAG -DDD3_DEBUG ; --- Test: synthetic meter samples, payload codec self-test at boot --- ; Replaces real meter reading with fake 1 Hz data and publishes to test MQTT topic. ; Use for bench testing without a physical meter attached. [env:test] build_flags = ${env.build_flags} -DSERIAL_DEBUG_MODE_FLAG=1 -DENABLE_TEST_MODE -DPAYLOAD_CODEC_TEST -DDEBUG_METER_DIAG -DDD3_DEBUG