; PlatformIO Project Configuration File
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed, etc.
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting

[platformio]
default_envs = anchor

; Common configuration for both anchor and tag
[env]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
monitor_speed = 115200
monitor_filters = esp32_exception_decoder
build_flags = 
    -DCORE_DEBUG_LEVEL=3
    -DARDUINO_USB_CDC_ON_BOOT=1

; Library dependencies
lib_deps = 
    adafruit/Adafruit GFX Library@^1.11.7
    adafruit/Adafruit SSD1306@^2.5.7
    adafruit/Adafruit BusIO@^1.14.4
    bblanchon/ArduinoJson@^6.21.3

; Unified Anchor configuration
[env:anchor]
build_src_filter = +<*> -<main_anchor.cpp> -<main_tag.cpp>
build_flags = 
    ${env.build_flags}
    -DDEVICE_TYPE_ANCHOR=1
    -DUWB_INDEX=0
    -DNETWORK_ID=1234

; Unified Tag configuration  
[env:tag]
build_src_filter = +<*> -<main_anchor.cpp> -<main_tag.cpp>
build_flags = 
    ${env.build_flags}
    -DDEVICE_TYPE_TAG=1
    -DUWB_INDEX=1
    -DNETWORK_ID=1234

; Development environment with debugging
[env:debug]
build_src_filter = +<*> -<main_anchor.cpp> -<main_tag.cpp>
build_flags = 
    ${env.build_flags}
    -DDEVICE_TYPE_ANCHOR=1
    -DUWB_INDEX=0
    -DNETWORK_ID=1234
    -DDEBUG_ENABLED=1
debug_tool = esp-prog
debug_init_break = tbreak setup
