MQTT-Display-LaserCutter/platformio.ini
MaPaLo76 3827342c0c feat(laser): implement LaserTracker with debounce, gratis time and NVS save
- Add include/laser_tracker.h: LaserTracker class declaration
  - Software debounce (LASER_DEBOUNCE_MS = 50ms from config.h)
  - Polarity-aware GPIO read (LOW_ACTIVE / HIGH_ACTIVE from settings)
  - Session lifecycle: onSessionStart / onSessionEnd
  - Gratis time countdown, net seconds accumulation
  - Getters: isActive, getTotalMinutes, getSessionSeconds,
    getCountdownRemaining, getLastSessionSeconds, resetTotal

- Add src/laser_tracker.cpp: full implementation
  - readRaw() applies signal polarity
  - loop() handles debounce state machine and edge detection
  - onSessionEnd() saves updated totalMinutes to NVS
  - getTotalMinutes() returns live value (base + current net session)

- Add test_sketches/test_laser_tracker.cpp: interactive test sketch
  - Button on GPIO 4 simulates laser signal
  - BOOT button (GPIO 0, 3s hold) resets total
  - Display: modules 1-3 = total minutes, modules 5-7 = countdown/net

- Add test-laser-tracker env to platformio.ini
- Update src/main.cpp: integrate laserTracker.begin/loop + live display
- Update Implementation-Plan.md: mark Phase 5 tasks 5.1-5.6 complete
2026-02-22 14:30:14 +01:00

151 lines
5.3 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:az-delivery-devkit-v4]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
; Upload & Monitor
upload_port = COM3
monitor_speed = 115200
monitor_echo = yes
monitor_filters = esp32_exception_decoder, default
; Partitionsschema: min_spiffs gibt mehr Platz für OTA (2x ~1.8 MB App)
board_build.partitions = min_spiffs.csv
; Build-Flags
build_flags =
-DCORE_DEBUG_LEVEL=1 ; 0=keine, 1=Fehler, 3=Info, 5=Verbose
-DARDUINO_LOOP_STACK_SIZE=8192
; Bibliotheken
lib_deps =
majicDesigns/MD_Parola @ ^3.7.3
majicDesigns/MD_MAX72XX @ ^3.5.1
knolleary/PubSubClient @ ^2.8
tzapu/WiFiManager @ ^2.0.17
https://github.com/me-no-dev/AsyncTCP.git
https://github.com/me-no-dev/ESPAsyncWebServer.git
bblanchon/ArduinoJson @ ^7.3.0
https://github.com/ayushsharma82/ElegantOTA.git
; =============================================================================
; TEST ENVIRONMENT 1.4 Dot-Matrix-Display Verdrahtungstest
; Flash: pio run -e test-display --target upload
; =============================================================================
[env:test-display]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
upload_port = COM3
monitor_speed = 115200
monitor_echo = yes
build_src_filter = -<*> +<../test_sketches/test_display.cpp>
; SPI auf 1 MHz reduzieren: robuster bei 8 verketteten Modulen / langen Leitungen
build_flags =
-DMAX_SPI_CLOCK_SPEED=1000000L
-Wno-cpp ; unterdrückt "INFO: ARDUINO SPI interface selected"-Warning aus MD_MAX72XX
lib_deps =
majicDesigns/MD_Parola @ ^3.7.3
majicDesigns/MD_MAX72XX @ ^3.5.1
; =============================================================================
; TEST ENVIRONMENT 1.5 Push Button / Potentialfreier Schalter Verdrahtungstest
; Flash: pio run -e test-button --target upload
; =============================================================================
[env:test-button]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
upload_port = COM3
monitor_speed = 115200
monitor_echo = yes
build_src_filter = -<*> +<../test_sketches/test_button.cpp>
; =============================================================================
; TEST ENVIRONMENT 2.2 NVS Persistenz-Verifizierung
; Flash: pio run -e test-nvs --target upload
; Monitor: pio device monitor -e test-nvs
; =============================================================================
[env:test-nvs]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
upload_port = COM3
monitor_speed = 115200
monitor_echo = yes
build_src_filter = -<*> +<../test_sketches/test_nvs.cpp> +<../src/settings.cpp>
; MD_MAX72XX wird nur wegen config.h -> DISPLAY_HW_TYPE benötigt
lib_deps =
majicDesigns/MD_MAX72XX @ ^3.5.1
; =============================================================================
; TEST ENVIRONMENT 3.3 WiFiManager Verbindungstest
; Flash: pio run -e test-wifi --target upload
; Monitor: pio device monitor -e test-wifi
; Credentials löschen: BOOT-Taste (GPIO 0) beim Start 3 s gedrückt halten
; =============================================================================
[env:test-wifi]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
upload_port = COM3
monitor_speed = 115200
monitor_echo = yes
board_build.partitions = min_spiffs.csv
build_src_filter = -<*> +<../test_sketches/test_wifi.cpp> +<../src/wifi_connector.cpp>
build_flags =
-DCORE_DEBUG_LEVEL=1
lib_deps =
tzapu/WiFiManager @ ^2.0.17
majicDesigns/MD_MAX72XX @ ^3.5.1
; =============================================================================
; TEST ENVIRONMENT 5.6 LaserTracker Verifikation
; Flash: pio run -e test-laser-tracker --target upload
; Monitor: pio device monitor -e test-laser-tracker
; Button (GPIO 4) druecken = Laser aktiv simulieren
; BOOT-Taste (GPIO 0) 3s halten = Gesamtzeit loeschen
; =============================================================================
[env:test-laser-tracker]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
upload_port = COM3
monitor_speed = 115200
monitor_echo = yes
build_src_filter = -<*> +<../test_sketches/test_laser_tracker.cpp> +<../src/display_manager.cpp> +<../src/settings.cpp> +<../src/laser_tracker.cpp>
build_flags =
-DCORE_DEBUG_LEVEL=1
-Wno-cpp
lib_deps =
majicDesigns/MD_MAX72XX @ ^3.5.1
; =============================================================================
; TEST ENVIRONMENT 4.3 DisplayManager Verifikation
; Flash: pio run -e test-display-mgr --target upload
; Monitor: pio device monitor -e test-display-mgr
; =============================================================================
[env:test-display-mgr]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
upload_port = COM3
monitor_speed = 115200
monitor_echo = yes
build_src_filter = -<*> +<../test_sketches/test_display_manager.cpp> +<../src/display_manager.cpp>
build_flags =
-DCORE_DEBUG_LEVEL=1
-Wno-cpp
lib_deps =
majicDesigns/MD_MAX72XX @ ^3.5.1