Paparazzi UAS  v5.15_devel-230-gc96ce27
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
logger_sd_chibios module

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).

Example for airframe file

Add to your firmware section: This example contains all possible configuration options, not all of them are mandatory!

1 <module name="tlsf"/>
2 <module name="logger_sd_chibios">
3  <define name="SDLOG_START_DELAY" unit="s" value="30" />
4  <define name="SDLOG_AUTO_FLUSH_PERIOD" unit="s" value="10" />
5  <define name="SDLOG_CONTIGUOUS_STORAGE_MEM" unit="Mo" value="50" />
6  <configure name="SDLOG_LED" value="none|num" />
7 </module>

Module configuration options

Configure Options

  • name: SDLOG_LED value: none|num
    Description: LED number or 'none' to disable. Default: none

Define Options

  • name: SDLOG_START_DELAY value: 30
    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
  • name: SDLOG_AUTO_FLUSH_PERIOD value: 10
    Description: Data flush period. Shorter period may decrease performances. Default: 10s
  • name: SDLOG_CONTIGUOUS_STORAGE_MEM value: 50
    Description: Try to reserve a given contiguous mass storage memory. Default: 50Mo

Dependencies

Module functions

Init Functions

These initialization functions are called once on startup.

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw logger_sd_chibios.xml file:

<!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="SDLOG_USE_RTC" default="TRUE"/>
<configure name="USE_FATFS" value="TRUE"/>
<define name="HAL_USE_RTC" value="TRUE" cond="ifeq (,$(findstring $(SDLOG_USE_RTC),0 FALSE))"/>
<define name="HAL_USE_SDC" value="TRUE"/>
<define name="HAL_USE_USB" value="TRUE"/>
</makefile>
</module>