13#define LOG_SAMPLING_FAC 1
15#define SD_CONFIG SdioConfig(FIFO_SDIO)
16#define PREALLOC 1024L*1024L*1024L
17#define DATAPACKET_SIZE sizeof(float)*64
18#define RING_BUF_SIZE DATAPACKET_SIZE*10
19#define SDSECTOR_SIZE 512
20#define FILENAME_MAXSIZE 32
21#define FILENAME_FORMAT "log_%04d-%02d-%02d_%02d.%02d.%02d.sbb"
22#define FILENAME_ENTRIES year(), month(), day(), hour(), minute(), second()
23#define FILENAME_REPORT "report.log"
48 reportFile.printf(
"\n#### NEW LOG on %04d-%02d-%02d at %02d:%02d:%02d ####\n", year(), month(), day(), hour(), minute(), second());
49 reportFile.printf(
"Code generated on %s at %s\n", __DATE__, __TIME__);
59 reportFile.print(
"CONFIG INFO:\n\tplease refer to config.h\n");
89 reportFile.printf(
"Turning off on %04d-%02d-%02d at %02d:%02d:%02d\n", year(), month(), day(), hour(), minute(), second());
141 uint32_t startWriteLogTime = micros();
151 log_buf.write((uint8_t*) &
ctrl.controlModel_U,
sizeof(ControlClass::controlModel_U));
152 log_buf.write((uint8_t*) &
ctrl.controlModel_Y,
sizeof(ControlClass::controlModel_Y));
163 size_t ringBufBytesUsed =
log_buf.bytesUsed();
178 timing.dt_logger = micros() - startWriteLogTime;
#define SAMPLING_TIME
Sampling time of the control loop (us).
Definition config.h:119
#define SD_CONFIG
Configuration type of sd card.
Definition logger.h:15
boolean doLog
True when logging.
Definition logger.h:28
RingBuf< FsFile, RING_BUF_SIZE > log_buf
Ring buffer object.
Definition logger.h:34
char filename[FILENAME_MAXSIZE]
Log filename.
Definition logger.h:29
void log_closer(void)
Close the log file.
Definition logger.h:126
void start_logger(void)
Initialize the logger.
Definition logger.h:99
uint64_t logSampleWritten
Number of logged bytes.
Definition logger.h:31
#define LOG_SAMPLING_FAC
Sampling factor of data logging (expressed in units of SAMPLING_TIME).
Definition logger.h:13
#define DATAPACKET_SIZE
Size of logged data packet (in bytes).
Definition logger.h:17
FsFile reportFile
File for report log.
Definition logger.h:33
void print_report(int mode)
Print the report.
Definition logger.h:37
FsFile logFile
Log file object.
Definition logger.h:32
#define PREALLOC
Log file preallocation (in bytes).
Definition logger.h:16
#define sd
SD fat object (uses sd fat included in SD library).
Definition logger.h:14
float fill_packet[(DATAPACKET_SIZE - sizeof(ControlClass::controlModel_U) - sizeof(ControlClass::controlModel_Y))/sizeof(float)]
Fill the data packet.
Definition logger.h:30
#define FILENAME_ENTRIES
Entries of the log filename format.
Definition logger.h:22
#define FILENAME_FORMAT
Log filename format.
Definition logger.h:21
#define FILENAME_MAXSIZE
Max length of the name of the log file.
Definition logger.h:20
void do_logger(void)
Log signals.
Definition logger.h:140
#define SDSECTOR_SIZE
Size of the SD sector (in bytes).
Definition logger.h:19
Timing timing
Timing of functions.
Definition objects.h:222
Steer steer_raw
Raw data from the steering sensors.
Definition objects.h:229
ImuData imuData_raw
Raw data from IMU and magnetometer.
Definition objects.h:224
ControlClass ctrl
Control object.
Definition objects.h:241
int8_t LEDmode
LED mode variable.
Definition objects.h:220
IOstatus iostatus
IO status flags.
Definition objects.h:233
ActCurr actCurr_raw
Raw data from the motor current sensor.
Definition objects.h:228
ForkDisp forkDisp_raw
Raw data from the fork-displacement sensor.
Definition objects.h:230
RiderTorque riderTorque_raw
Raw data from the torsiometer.
Definition objects.h:227
Voltage voltage_raw
Raw data from the battery voltage sensor.
Definition objects.h:231
Counter counters
Counters for lower sampling rate.
Definition objects.h:223
uint32_t nanVal
NaN variable.
Definition objects.h:219
#define FILENAME_REPORT
Filename for report log.
Definition logger.h:23
constexpr int8_t DEF
Default mode without signal-logging.
Definition objects.h:31
constexpr int8_t LOG
Default mode with signal-logging.
Definition objects.h:32