# ESP32 TLE92466ED Driver - Apps Configuration
# This file centralizes all app definitions, their source files, and metadata
# Used by build scripts, flash scripts, CI workflows, and CMake
#
# HIERARCHICAL CONFIGURATION:
# - Global settings in 'metadata' section apply to all apps by default
# - Individual apps can override 'idf_versions' and 'build_types' if needed
# - Apps without overrides use global settings automatically

version: "1.0"

metadata:
  project: "ESP32 TLE92466ED Driver Examples"
  default_app: "basic_usage"
  target: "esp32c6"
  idf_versions: ["release/v5.5", "release/v5.4"]
  build_types: [["Debug", "Release"], ["Debug"]]

apps:
  # --------------------------------------------------------------------------
  # Basic Usage Example
  # --------------------------------------------------------------------------
  basic_usage:
    description: "Basic TLE92466ED usage with FreeRTOS test framework"
    source_file: "BasicUsageExample.cpp"
    category: "demo"
    idf_versions: ["release/v5.5"]
    build_types: ["Debug", "Release"]
    ci_enabled: true
    featured: true
    documentation: "docs/README_BASIC_USAGE.md"
    test_sections:
      - "INITIALIZATION_TESTS"
      - "BASIC_OPERATION_TESTS"
      - "CURRENT_CONTROL_TESTS"
    features:
      - "HAL initialization and verification"
      - "Driver initialization and chip ID reading"
      - "Single channel current control (0-2000mA)"
      - "Channel enable/disable operations"
      - "Current ramping demonstration"
      - "Real-time diagnostics reading"
      - "FreeRTOS task-based test execution"
      - "GPIO14 progress indicator"
      - "Automatic pass/fail tracking"

  # --------------------------------------------------------------------------
  # Multi-Channel Example
  # --------------------------------------------------------------------------
  multi_channel:
    description: "Multi-channel control with independent current settings"
    source_file: "MultiChannelExample.cpp"
    category: "demo"
    idf_versions: ["release/v5.5"]
    build_types: ["Debug", "Release"]
    ci_enabled: true
    featured: true
    documentation: "docs/README_MULTI_CHANNEL.md"
    features:
      - "All 6 channels independent control"
      - "Sequential channel activation"
      - "Synchronized channel operations"
      - "Wave patterns across channels"
      - "Current ramping and smooth transitions"
      - "Performance monitoring"
      - "Channel group management"

# ============================================================================
# BUILD CONFIGURATION (ESP-IDF Standard Build Types)
# ============================================================================

build_config:
  # Standard ESP-IDF/CMake build types
  # These match CMAKE_BUILD_TYPE values in ESP-IDF
  build_types:
    Debug:
      description: "Debug build with symbols, verbose logging, assertions"
      cmake_build_type: "Debug"
      optimization: "-O0"
      debug_level: "-g3"
      defines: ["DEBUG", "TLE92466ED_DEBUG"]

    Release:
      description: "Release build optimized for performance"
      cmake_build_type: "Release"
      optimization: "-O2"
      debug_level: "-g0"
      defines: ["NDEBUG", "TLE92466ED_RELEASE"]

  build_directory_pattern: "build-app-{app_type}-type-{build_type}-target-{target}-idf-{idf_version}"
  project_name_pattern: "esp32_tle92466ed_{app_type}_app"

ci_config:
  # CI build timeout
  timeout_minutes: 30
  # Fail fast on first error
  fail_fast: false
  # Apps to exclude from specific build types (if needed)
  exclude_combinations: []
  # Apps that require special handling
  special_apps: []
