/*
 *  index
 *
 *  all index lib
 *  Created on: 2023. 4. 3
 */

#include "Arduino.h"

// === ADDONS ===
#define ENABLE_ADDONS_AUTOLIGHT
#define ENABLE_ADDONS_AUTOLIGHT_V2
#define ENABLE_ADDONS_AUTOLIGHT_V3

// === DEVELOPMENT ===

// development/CeriaDev
#define ENABLE_DEVELOPMENT_CERIA_SERIAL
#define ENABLE_DEVELOPMENT_CERIA_DEV_OP

// === MODULES ===

// modules/communication/wired/i2c
#define ENABLE_MODULE_I2C_EXPANDER
#define ENABLE_MODULE_I2C_SCANNER
#define ENABLE_MODULE_IO_EXPANDER

// modules/communication/wired/modbus
#define ENABLE_MODULE_MODBUS

// modules/communication/wired/serial
#define ENABLE_MODULE_SERIAL_ENHANCED
#define ENABLE_MODULE_SERIAL_HARD
#define ENABLE_MODULE_SERIAL_NEMA
#define ENABLE_MODULE_SERIAL_SOFT
#define ENABLE_MODULE_SERIAL_SWAP

// modules/communication/wired/spi
#define ENABLE_MODULE_DOT_MATRIX
#define ENABLE_MODULE_SERIAL_SPI

// modules/communication/wireless/lora
#define ENABLE_MODULE_LORA_COM
#define ENABLE_MODULE_LORA_COM_V2
#define ENABLE_MODULE_LORA_EBYTE_E220

// modules/communication/wireless/now
#define ENABLE_MODULE_ESP_NOW

// modules/control
#define ENABLE_MODULE_DECISION_TREE
#define ENABLE_MODULE_FUZZY_MAMDANI
#define ENABLE_MODULE_FUZZY_SUGENO
#define ENABLE_MODULE_FUZZY_TSUKAMOTO
#define ENABLE_MODULE_KNN
#define ENABLE_MODULE_PID
#define ENABLE_MODULE_PID_CONTROLLER
#define ENABLE_MODULE_STANDARD_SCALER
#define ENABLE_MODULE_TRAIN_TEST_SPLIT

// modules/debug
#define ENABLE_MODULE_SERIAL_DEBUGGER
#define ENABLE_MODULE_SERIAL_DEBUGGER_LITE
#define ENABLE_MODULE_SERIAL_DEBUGGER_V2

// modules/display
#define ENABLE_MODULE_LCD_MENU
#define ENABLE_MODULE_OLED_MENU
#define ENABLE_MODULE_SH1106_MENU

// modules/driver/motor
#define ENABLE_MODULE_MOTOR_DRIVER

// modules/driver/servo
#define ENABLE_MODULE_SERVO_HCPA9685

// modules/file
#define ENABLE_MODULE_EEPROM_LIB
#define ENABLE_MODULE_EEPROM_LIB_ESP8266
#define ENABLE_MODULE_SD_ARDUINO
#define ENABLE_MODULE_SD_CARD_MODULE_ESP32

// modules/filter
#define ENABLE_MODULE_BAND_STOP_FILTER
#define ENABLE_MODULE_COMPLEMENTARY_FILTER
#define ENABLE_MODULE_DYNAMIC_TYPE_BAND_STOP_FILTER
#define ENABLE_MODULE_DYNAMIC_TYPE_COMPLEMENTARY_FILTER
#define ENABLE_MODULE_DYNAMIC_TYPE_EXPONENTIAL_MOVING_AVERAGE_FILTER
#define ENABLE_MODULE_DYNAMIC_TYPE_HIGH_PASS_FILTER
#define ENABLE_MODULE_DYNAMIC_TYPE_MEDIAN_FILTER
#define ENABLE_MODULE_DYNAMIC_TYPE_MOVING_AVERAGE_FILTER
#define ENABLE_MODULE_EXPONENTIAL_MOVING_AVERAGE_FILTER
#define ENABLE_MODULE_HIGH_PASS_FILTER
#define ENABLE_MODULE_KALMAN_FILTER
#define ENABLE_MODULE_LOW_PASS_FILTER
#define ENABLE_MODULE_MEDIAN_FILTER
#define ENABLE_MODULE_MOVING_AVERAGE_FILTER

// modules/io
#define ENABLE_MODULE_DIGITAL_INPUT
#define ENABLE_MODULE_DIGITAL_OUTPUT
#define ENABLE_MODULE_PCF8574_INPUT_MODULE
#define ENABLE_MODULE_PCF8574_MODULE
#define ENABLE_MODULE_PCF8574_OUTPUT_MODULE
#define ENABLE_MODULE_ROTARY_ENCODER
#define ENABLE_MODULE_SEVEN_SEGMENT
#define ENABLE_MODULE_SEVEN_SEGMENT_74HC595
#define ENABLE_MODULE_SEVEN_SEGMENT_PCF

// modules/task
#define ENABLE_MODULE_FREE_RTOS_HANDLER
#define ENABLE_MODULE_TASK_HANDLER

// modules/time
#define ENABLE_MODULE_TIMER_DURATION
#define ENABLE_MODULE_TIMER_MANAGER
#define ENABLE_MODULE_TIMER_TASK

// modules/utils
#define ENABLE_MODULE_EASY_LOGIC
#define ENABLE_MODULE_LOGIC_CONDITION_MANAGER
#define ENABLE_MODULE_STATE_ACTION_MANAGER
#define ENABLE_MODULE_VARIABLE_WATCHER

// modules/wifi
#define ENABLE_MODULE_DATETIME_NTP
#define ENABLE_MODULE_DATETIME_NTP_V2
#define ENABLE_MODULE_FIREBASE_APPLICATION_V3
#define ENABLE_MODULE_FIREBASE_FIRESTORE_V2
#define ENABLE_MODULE_FIREBASE_FIRESTORE_V3
#define ENABLE_MODULE_FIREBASE_HANDLER
#define ENABLE_MODULE_FIREBASE_MESSAGING_V2
#define ENABLE_MODULE_FIREBASE_MESSAGING_V3
#define ENABLE_MODULE_FIREBASE_RTDB_V2
#define ENABLE_MODULE_FIREBASE_RTDB_V3
#define ENABLE_MODULE_FIREBASE_STORAGE_V2
#define ENABLE_MODULE_FIREBASE_STORAGE_V3
#define ENABLE_MODULE_GOOGLE_SHEETS
#define ENABLE_MODULE_MQTT_MANAGER
#define ENABLE_MODULE_TELEGRAM_BOT
#define ENABLE_MODULE_WHATSAPP_BOT
#define ENABLE_MODULE_WIFI_HANDLER
#define ENABLE_MODULE_WIFI_HANDLER_V2
#define ENABLE_MODULE_WIFI_MODULE

// === SENSORS ===

// sensors/SensorModuleV1
#define ENABLE_SENSOR_MODULE
#define ENABLE_SENSOR_MODULE_UTILITY

// sensors/SensorModuleV1/calibration
#define ENABLE_ANALOG_SENSOR_CALIBRATOR
#define ENABLE_INTERACTIVE_SERIAL_ANALOG_SENSOR_CALIBRATOR
#define ENABLE_INTERACTIVE_SERIAL_GENERAL_SENSOR_CALIBRATOR
#define ENABLE_MULTI_SENSOR_CALIBRATION_MANAGER
#define ENABLE_SENSOR_CALIBRATION_MODULE

// sensors/SensorModuleV1 (individual sensors)
#define ENABLE_SENSOR_ABSTRACT
#define ENABLE_SENSOR_AHT
#define ENABLE_SENSOR_ANALOG
#define ENABLE_SENSOR_BME280
#define ENABLE_SENSOR_DHT
#define ENABLE_SENSOR_DIGITAL
#define ENABLE_SENSOR_DS18B20
#define ENABLE_SENSOR_DUST
#define ENABLE_SENSOR_FLOWMETER
#define ENABLE_SENSOR_FLOWMETERV2
#define ENABLE_SENSOR_FLOWMETERV3
#define ENABLE_SENSOR_GM67
#define ENABLE_SENSOR_GPS
#define ENABLE_SENSOR_HX711
#define ENABLE_SENSOR_INA219
#define ENABLE_SENSOR_KEYPADI2C
#define ENABLE_SENSOR_MAX30100LIB
#define ENABLE_SENSOR_MAX3010X
#define ENABLE_SENSOR_MAX3010XV2
#define ENABLE_SENSOR_MAX31865
#define ENABLE_SENSOR_MAX6675
#define ENABLE_SENSOR_MLX90614
#define ENABLE_SENSOR_MQ
#define ENABLE_SENSOR_PH
#define ENABLE_SENSOR_PZEM004T
#define ENABLE_SENSOR_RFID
#define ENABLE_SENSOR_RPM
#define ENABLE_SENSOR_RTC
#define ENABLE_SENSOR_SCD30
#define ENABLE_SENSOR_SOIL
#define ENABLE_SENSOR_SOILPH
#define ENABLE_SENSOR_TCS3200
#define ENABLE_SENSOR_TDS
#define ENABLE_SENSOR_TURBIDITY
#define ENABLE_SENSOR_ULTRASONIC
#define ENABLE_SENSOR_VOLTAGE

// sensors/SensorModuleV2
#define ENABLE_SENSOR_MODULE_V2
#define ENABLE_SENSOR_UTILITY_V2

// sensors/SensorModuleV2/SensorModule/Systems
#define ENABLE_SENSOR_ALERT_SYSTEM_V2
#define ENABLE_SENSOR_FILTER_V2

// sensors/SensorModuleV2/SensorModule/Tools
#define ENABLE_INTERACTIVE_SERIAL_GENERAL_SENSOR_CALIBRATOR_V2
#define ENABLE_SENSOR_CALIBRATION_MODULE_V2

// sensors/SensorModuleV2/SensorList (individual sensors)
#define ENABLE_SENSOR_ABSTRACT_V2
#define ENABLE_SENSOR_ANALOG_V2
#define ENABLE_SENSOR_BME680_V2
#define ENABLE_SENSOR_CUSTOM_TEMPLATE_V2
#define ENABLE_SENSOR_DHT_V2
#define ENABLE_SENSOR_GP2Y_DUST_V2
#define ENABLE_SENSOR_INA219_V2
#define ENABLE_SENSOR_MHRTC_V2
#define ENABLE_SENSOR_MLX90614_V2
#define ENABLE_SENSOR_MQ_V2
#define ENABLE_SENSOR_RTC_V2
#define ENABLE_SENSOR_RTC_DS1307_V2
#define ENABLE_SENSOR_RTC_DS3231_V2
#define ENABLE_SENSOR_RTC_PCF8523_V2
#define ENABLE_SENSOR_RTC_PCF8563_V2