<!DOCTYPE module SYSTEM "module.dtd">

<module name="logger_sd_chibios" dir="loggers">
  <doc>
    <description>
      Log on a SD card, either text or binary data.
      Based on ChibiOS HAL and Threads.
      If board allows it (ex: Apogee), the log file is automatically closed on power down.
      Files are written on a FAT file system using the FatFS library and can be accessed
      by using the autopilot as a mass storage (plug USB while the board is running).
    </description>
    <configure name="SDLOG_LED" value="none|num" description="LED number or 'none' to disable. Default: none"/>
    <define name="SDLOG_START_DELAY" value="30" unit="s" description="Set the delay in seconds before starting the logger. This delay can be used to get plug USB cable and get data without starting a new log. Default: 30s"/>
    <define name="SDLOG_AUTO_FLUSH_PERIOD" value="10" unit="s" description="Data flush period. Shorter period may decrease performances. Default: 10s"/>
    <define name="SDLOG_CONTIGUOUS_STORAGE_MEM" value="50" unit="Mo" description="Try to reserve a given contiguous mass storage memory. Default: 50Mo"/>
  </doc>
  <depends>tlsf</depends>
  <header>
    <file name="sdlog_chibios.h" />
  </header>
  <init fun="sdlog_chibios_init()"/>
  <makefile target="ap">
    <configure name="SDLOG_LED" default="none"/>
    <define name="SDLOG_LED" value="$(SDLOG_LED)" cond="ifneq ($(SDLOG_LED),none)"/>
    <file name="sdlog_chibios.c"/>
    <file name="sdlog_chibios/sdLog.c"/>
    <file name="sdlog_chibios/msg_queue.c"/>
    <file name="sdlog_chibios/sdLog.c"/>
    <file name="sdlog_chibios/printf.c"/>
    <file name="sdlog_chibios/usb_msd.c"/>
    <file name="sdlog_chibios/usbStorage.c"/>
    <file_arch name="sdio_arch.c" dir="mcu_periph"/>
    <configure name="USE_FATFS" value="TRUE"/>
    <define name="HAL_USE_RTC" value="TRUE"/>
    <define name="HAL_USE_SDC" value="TRUE"/>
    <define name="HAL_USE_USB" value="TRUE"/>
  </makefile>
</module>
