/**
 * Author : Anatole SCHRAMM-HENRY
 * Created the: 08/09/2022
 * Updated the: 20/12/2025
 *    - Replaced the NRF module with a RFM95W (LoRa)
 * This class encapsulates the various configuration values for the board like the Pin Mapping for instance.
 */
#ifndef BOARDCONFIG_H
#define BOARDCONFIG_H

#include "definition.h"

class BoardConfig
{
  public:
    BoardConfig(
    const Pin ExternalInt       = D2_EXTERNAL_INT,
    const Pin LDOEnable         = D4_LDO_EN,
    const Pin BattVSensEnable   = D5_BAT_V_SENS_EN,
    const Pin RFMRst            = D6_RFM_RST,
    const Pin SwitchVSensEnable = D7_SWITCH_V_SENS_EN,
    const Pin RFMDI0            = D8_RFM_DI0,
    const Pin RFMCs             = D10_RFM_CS,
    const Pin MOSI              = D11_MOSI,
    const Pin MISO              = D12_MISO,
    const Pin SCK               = D13_SCK,
    const Pin BattAnalogVSens   = A0_BAT_V_SENS,
    const Pin SwitchAnalogVSens = A1_SWITCH_V_SENS
    );

    const Pin ExternalInt;
    const Pin LDOEnable;
    const Pin BattVSensEnable;
    const Pin RFMRst;
    const Pin SwitchVSensEnable;
    const Pin RFMDI0;
    const Pin RFMCs;
    const Pin MOSI;
    const Pin MISO;
    const Pin SCK;
    const Pin BattAnalogVSens;
    const Pin SwitchAnalogVSens;
    
  protected:
  private:
};

#endif //BOARDCONFIG_H
