mirror of
https://github.com/MrUnknownDE/OpenIris-ESPIDF.git
synced 2026-04-11 18:53:44 +02:00
- Move calibration functions to platform-specific files - Add ADC_SAMPLER_SUPPORTED macro for unified platform detection - Add ESP32-S2 support (UNTESTED) - Remove explicit #if defined() macros from common code
71 lines
1.9 KiB
CMake
71 lines
1.9 KiB
CMake
# Architecture:
|
|
# +-----------------------+
|
|
# | MonitoringManager | ← High-level coordinator
|
|
# +-----------------------+
|
|
# | BatteryMonitor | ← Battery logic (platform-independent)
|
|
# | CurrentMonitor | ← Current logic (platform-independent)
|
|
# +-----------------------+
|
|
# | AdcSampler | ← BSP: Unified ADC sampling interface
|
|
# +-----------------------+
|
|
# | ESP-IDF ADC HAL | ← Espressif official driver
|
|
# +-----------------------+
|
|
#
|
|
# Supported platforms (must support ESP-CAM):
|
|
# - ESP32: Tested
|
|
# - ESP32-S3: Tested
|
|
# - ESP32-S2: UNTESTED - Based on datasheet
|
|
|
|
set(
|
|
requires
|
|
Helpers
|
|
)
|
|
|
|
# List of supported ADC platforms (aligned with ESP_CAMERA_SUPPORTED)
|
|
set(ADC_SUPPORTED_TARGETS "esp32" "esp32s3" "esp32s2")
|
|
|
|
# Check if current target supports ADC
|
|
list(FIND ADC_SUPPORTED_TARGETS "$ENV{IDF_TARGET}" ADC_TARGET_INDEX)
|
|
if (NOT ADC_TARGET_INDEX EQUAL -1)
|
|
set(ADC_SAMPLER_SUPPORTED TRUE)
|
|
else()
|
|
set(ADC_SAMPLER_SUPPORTED FALSE)
|
|
endif()
|
|
|
|
# Platform-specific dependencies
|
|
if (ADC_SAMPLER_SUPPORTED)
|
|
list(APPEND requires
|
|
driver
|
|
esp_adc
|
|
)
|
|
endif()
|
|
|
|
# Common source files (platform-independent business logic)
|
|
set(
|
|
source_files
|
|
"Monitoring/MonitoringManager.cpp"
|
|
"Monitoring/BatteryMonitor.cpp"
|
|
"Monitoring/CurrentMonitor.cpp"
|
|
)
|
|
|
|
# BSP Layer: ADC sampler implementation
|
|
if (ADC_SAMPLER_SUPPORTED)
|
|
# Common ADC implementation
|
|
list(APPEND source_files
|
|
"Monitoring/AdcSampler.cpp"
|
|
)
|
|
|
|
# Platform-specific GPIO-to-channel mapping and calibration
|
|
if ("$ENV{IDF_TARGET}" STREQUAL "esp32s3")
|
|
list(APPEND source_files "Monitoring/AdcSampler_esp32s3.cpp")
|
|
elseif ("$ENV{IDF_TARGET}" STREQUAL "esp32s2")
|
|
list(APPEND source_files "Monitoring/AdcSampler_esp32s2.cpp")
|
|
elseif ("$ENV{IDF_TARGET}" STREQUAL "esp32")
|
|
list(APPEND source_files "Monitoring/AdcSampler_esp32.cpp")
|
|
endif()
|
|
endif()
|
|
|
|
|
|
idf_component_register(SRCS ${source_files}
|
|
INCLUDE_DIRS "Monitoring"
|
|
REQUIRES ${requires}
|
|
) |