Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
sdlog_chibios.c File Reference
#include <ch.h>
#include <hal.h>
#include "modules/loggers/sdlog_chibios/sdLog.h"
#include "modules/loggers/sdlog_chibios/usbStorage.h"
#include "modules/loggers/sdlog_chibios.h"
#include "modules/tlsf/tlsf_malloc.h"
#include "mcu_periph/adc.h"
#include "mcu.h"
#include "led.h"
#include "subsystems/datalink/telemetry.h"
+ Include dependency graph for sdlog_chibios.c:

Go to the source code of this file.

Macros

#define SDLOG_START_DELAY   30
 
#define SDLOG_AUTO_FLUSH_PERIOD   10
 
#define SDLOG_CONTIGUOUS_STORAGE_MEM   50
 
#define DefaultAdcOfVoltage(voltage)   ((uint32_t) (voltage/(DefaultVoltageOfAdc(1))))
 

Enumerations

enum  { SDLOG_STOPPED = 0, SDLOG_RUNNING, SDLOG_ERROR }
 sdlog status More...
 

Functions

static THD_WORKING_AREA (wa_thd_startlog, 2048)
 
static void thd_startlog (void *arg)
 
static THD_WORKING_AREA (wa_thd_bat_survey, 1024)
 
static void thd_bat_survey (void *arg)
 
static void powerOutageIsr (void)
 
static void send_sdlog_status (struct transport_tx *trans, struct link_device *dev)
 
static int sdlog_check_free_space (struct chibios_sdlog *p, long *fd, uint16_t len)
 
static void sdlog_transmit (struct chibios_sdlog *p, long fd, uint8_t byte)
 
static void sdlog_transmit_buffer (struct chibios_sdlog *p, long fd, uint8_t *data, uint16_t len)
 
static void sdlog_send (struct chibios_sdlog *p, long fd)
 
static int null_function (struct chibios_sdlog *p)
 
void chibios_sdlog_init (struct chibios_sdlog *sdlog, FileDes *file)
 init chibios_sdlog structure More...
 
void sdlog_chibios_init (void)
 
void sdlog_chibios_finish (const bool flush)
 

Variables

static const uint16_t V_ALERT = DefaultAdcOfVoltage(5.5f)
 
static const char PPRZ_LOG_NAME [] = "pprzlog_"
 
static const char PPRZ_LOG_DIR [] = "PPRZ"
 
event_source_t powerOutageSource
 
event_listener_t powerOutageListener
 
bool sdOk = false
 
FileDes pprzLogFile = -1
 
struct chibios_sdlog chibios_sdlog
 
static enum { ... }  chibios_sdlog_status
 sdlog status More...
 

Macro Definition Documentation

#define DefaultAdcOfVoltage (   voltage)    ((uint32_t) (voltage/(DefaultVoltageOfAdc(1))))

Definition at line 63 of file sdlog_chibios.c.

#define SDLOG_AUTO_FLUSH_PERIOD   10

Definition at line 51 of file sdlog_chibios.c.

Referenced by thd_startlog().

#define SDLOG_CONTIGUOUS_STORAGE_MEM   50

Definition at line 56 of file sdlog_chibios.c.

Referenced by thd_startlog().

#define SDLOG_START_DELAY   30

Definition at line 46 of file sdlog_chibios.c.

Referenced by thd_startlog().

Enumeration Type Documentation

anonymous enum

sdlog status

Enumerator
SDLOG_STOPPED 
SDLOG_RUNNING 
SDLOG_ERROR 

Definition at line 97 of file sdlog_chibios.c.

Function Documentation

void chibios_sdlog_init ( struct chibios_sdlog sdlog,
FileDes file 
)

init chibios_sdlog structure

Definition at line 151 of file sdlog_chibios.c.

References chibios_sdlog::device, chibios_sdlog::file, null_function(), sdlog_check_free_space(), sdlog_send(), sdlog_transmit(), and sdlog_transmit_buffer().

Referenced by flight_recorder_init(), and thd_startlog().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int null_function ( struct chibios_sdlog p)
static

Definition at line 149 of file sdlog_chibios.c.

Referenced by chibios_sdlog_init().

+ Here is the caller graph for this function:

static void powerOutageIsr ( void  )
static

Definition at line 306 of file sdlog_chibios.c.

Referenced by thd_bat_survey().

+ Here is the caller graph for this function:

static int sdlog_check_free_space ( struct chibios_sdlog p,
long *  fd,
uint16_t  len 
)
static

Definition at line 116 of file sdlog_chibios.c.

References SDLOG_OK, and status.

Referenced by chibios_sdlog_init().

+ Here is the caller graph for this function:

void sdlog_chibios_finish ( const bool  flush)

Definition at line 182 of file sdlog_chibios.c.

References chibios_sdlog_status, led_disable, SDLOG_STOPPED, and sdLogFinish().

Referenced by thd_bat_survey(), and thdUsbStorage().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void sdlog_chibios_init ( void  )

Definition at line 166 of file sdlog_chibios.c.

References chibios_sdlog_status, DefaultPeriodic, register_periodic_telemetry(), SDLOG_STOPPED, send_sdlog_status(), thd_startlog(), and usbStorageStartPolling().

+ Here is the call graph for this function:

static void sdlog_send ( struct chibios_sdlog p,
long  fd 
)
static

Definition at line 143 of file sdlog_chibios.c.

References chibios_sdlog::file.

Referenced by chibios_sdlog_init().

+ Here is the caller graph for this function:

static void sdlog_transmit ( struct chibios_sdlog p,
long  fd,
uint8_t  byte 
)
static

Definition at line 128 of file sdlog_chibios.c.

References byte.

Referenced by chibios_sdlog_init().

+ Here is the caller graph for this function:

static void sdlog_transmit_buffer ( struct chibios_sdlog p,
long  fd,
uint8_t data,
uint16_t  len 
)
static

Definition at line 136 of file sdlog_chibios.c.

Referenced by chibios_sdlog_init().

+ Here is the caller graph for this function:

static void send_sdlog_status ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 105 of file sdlog_chibios.c.

References chibios_sdlog_status, and status.

Referenced by sdlog_chibios_init().

+ Here is the caller graph for this function:

static void thd_bat_survey ( void *  arg)
static

Definition at line 284 of file sdlog_chibios.c.

References mcu_deep_sleep(), powerOutageIsr(), SDLOG_BAT_ADC, SDLOG_BAT_CHAN, sdlog_chibios_finish(), and V_ALERT.

Referenced by thd_startlog().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void thd_startlog ( void *  arg)
static
static THD_WORKING_AREA ( wa_thd_startlog  ,
2048   
)
static
static THD_WORKING_AREA ( wa_thd_bat_survey  ,
1024   
)
static

Variable Documentation

Definition at line 87 of file sdlog_chibios.c.

enum { ... } chibios_sdlog_status
event_listener_t powerOutageListener

Definition at line 81 of file sdlog_chibios.c.

event_source_t powerOutageSource

Definition at line 80 of file sdlog_chibios.c.

const char PPRZ_LOG_DIR[] = "PPRZ"
static

Definition at line 66 of file sdlog_chibios.c.

Referenced by thd_startlog().

const char PPRZ_LOG_NAME[] = "pprzlog_"
static

Definition at line 65 of file sdlog_chibios.c.

Referenced by thd_startlog().

bool sdOk = false

Definition at line 83 of file sdlog_chibios.c.

Referenced by thd_startlog().

const uint16_t V_ALERT = DefaultAdcOfVoltage(5.5f)
static

Definition at line 64 of file sdlog_chibios.c.

Referenced by thd_bat_survey().