ACwing FC firmware
STM32WB55: attitude IEKF, altitude Kalman filter, flight core, protocol v2
Loading...
Searching...
No Matches
log_store.h
Go to the documentation of this file.
1
19#ifndef LOG_STORE_H
20#define LOG_STORE_H
21
22#include <stdint.h>
23#include "log_format.h"
24
25#define LOG_LIST_MAX 64u
26
28typedef struct {
29 void *ctx;
30 uint32_t size;
31 int (*read)(void *ctx, uint32_t addr, void *buf, uint32_t n);
32 int (*prog)(void *ctx, uint32_t addr, const void *buf, uint32_t n);
33 int (*erase)(void *ctx, uint32_t addr);
35
36typedef struct {
37 uint16_t id;
38 uint16_t first;
39 uint16_t nsect;
40 uint8_t truncated;
41 uint8_t active;
42 uint32_t t0_ms;
44
45int log_mount(const log_flash_t *f);
46uint8_t log_count(void);
47const log_entry_t *log_entry(uint8_t index);
48const log_entry_t *log_find(uint16_t id);
49uint8_t log_used_pct(void);
50
51int log_open(uint32_t t0_ms);
52int log_append(uint8_t type, const void *payload, uint8_t len);
53int log_close(void);
54uint8_t log_is_open(void);
55
57int log_read(uint16_t id, uint32_t offset, void *buf, uint32_t n);
58uint32_t log_size(uint16_t id);
61int log_erase_all(void);
62
63#endif /* LOG_STORE_H */
uint32_t n
Definition calib_mgr.c:35
On-flash format of the ACwing flight log (format 1).
static uint32_t addr(uint16_t sect)
Definition log_store.c:49
uint8_t log_count(void)
Definition log_store.c:120
const log_entry_t * log_find(uint16_t id)
Definition log_store.c:124
int log_append(uint8_t type, const void *payload, uint8_t len)
Definition log_store.c:193
int log_open(uint32_t t0_ms)
0 = ok
Definition log_store.c:182
int log_close(void)
Definition log_store.c:214
int log_mount(const log_flash_t *f)
0 = ok (empty flash is ok)
Definition log_store.c:82
uint8_t log_used_pct(void)
Definition log_store.c:130
int log_read(uint16_t id, uint32_t offset, void *buf, uint32_t n)
bytes of a closed log 'id' from 'offset' (sectors concatenated, headers included)
Definition log_store.c:230
uint32_t log_size(uint16_t id)
nsect × LOG_SECTOR, 0 unknown
Definition log_store.c:224
uint8_t log_is_open(void)
Definition log_store.c:122
const log_entry_t * log_entry(uint8_t index)
oldest first
Definition log_store.c:121
int log_erase_all(void)
erases every sector that holds data; logs restart from id 1
Definition log_store.c:246
Definition log_store.h:36
uint32_t t0_ms
Definition log_store.h:42
uint16_t first
sector of the lowest seq still present
Definition log_store.h:38
uint16_t id
Definition log_store.h:37
uint16_t nsect
Definition log_store.h:39
uint8_t active
being written now
Definition log_store.h:41
uint8_t truncated
seq 0 overwritten
Definition log_store.h:40
flash backend; addresses in bytes from the start of the log area
Definition log_store.h:28
void * ctx
Definition log_store.h:29
uint32_t size
multiple of LOG_SECTOR
Definition log_store.h:30