16#ifndef BLACKBOX_LOGGER_H
17#define BLACKBOX_LOGGER_H
19#include "esp_partition.h"
21#include "freertos/FreeRTOS.h"
22#include "freertos/semphr.h"
79 void (*on_replay_available_func) (void);
82 esp_err_t (*write_func) (
const esp_partition_t *,
86 esp_err_t (*read_func) (
const esp_partition_t *,
90 esp_err_t (*erase_func) (
const esp_partition_t *, size_t, size_t);
179 uint32_t read_offset,
181 size_t entry_buf_max_capacity);
262 void *cb_arg_void_ptr,
264 const size_t entry_buf_max_capacity);
292 void *cb_arg_void_ptr,
294 const size_t entry_buf_max_capacity);
blackbox_logger_err_t blackbox_logger_iterate_replay(blackbox_logger_t *logger_ptr, blackbox_logger_iter_cb_t is_entry_processed_cb_func, void *cb_arg_void_ptr, blackbox_logger_entry_view_t *entry_ptr, const size_t entry_buf_max_capacity)
Iterate over available log entries.
Definition blackbox_logger.c:1032
bool(* blackbox_logger_iter_cb_t)(void *, const blackbox_logger_entry_view_t *)
Definition blackbox_logger.h:50
blackbox_logger_err_t blackbox_logger_read(const blackbox_logger_t *logger_ptr, uint32_t read_offset, blackbox_logger_entry_view_t *entry_ptr, size_t entry_buf_max_capacity)
Read an entry from flash.
Definition blackbox_logger.c:740
blackbox_logger_err_t blackbox_logger_write(blackbox_logger_t *logger_ptr, const blackbox_logger_entry_view_t *entry_ptr)
Write an entry to flash.
Definition blackbox_logger.c:651
void blackbox_logger_get_parameters_defaults(blackbox_logger_parameters_t *parameter_ptr)
Get Logger parameters defaults.
Definition blackbox_logger.c:1049
blackbox_logger_err_t
BlackBox Logger status codes enum.
Definition blackbox_logger.h:29
@ BLACKBOX_LOGGER_ERR_INVALID_ENTRY
Definition blackbox_logger.h:36
@ BLACKBOX_LOGGER_ERR_FAIL
Definition blackbox_logger.h:31
@ BLACKBOX_LOGGER_ERR_NO_MEM
Definition blackbox_logger.h:33
@ BLACKBOX_LOGGER_ERR_WRITE_FAIL
Definition blackbox_logger.h:38
@ BLACKBOX_LOGGER_ERR_PROCESS_FAIL
Definition blackbox_logger.h:39
@ BLACKBOX_LOGGER_ERR_ERASE_FAIL
Definition blackbox_logger.h:37
@ BLACKBOX_LOGGER_OK
Definition blackbox_logger.h:30
@ BLACKBOX_LOGGER_ERR_INVALID_CRC
Definition blackbox_logger.h:35
@ BLACKBOX_LOGGER_ERR_TIMEOUT
Definition blackbox_logger.h:34
@ BLACKBOX_LOGGER_ERR_INVALID_ARG
Definition blackbox_logger.h:32
bool blackbox_logger_has_replay_data(const blackbox_logger_t *logger_ptr)
Is log data available for replay.
Definition blackbox_logger.c:1060
void blackbox_logger_deinit(blackbox_logger_t *logger_ptr)
De-init BlackBox Logger.
Definition blackbox_logger.c:1071
blackbox_logger_err_t blackbox_logger_flush(blackbox_logger_t *logger_ptr)
Flush buffered data to flash.
Definition blackbox_logger.c:822
blackbox_logger_err_t blackbox_logger_next_replay(blackbox_logger_t *logger_ptr, blackbox_logger_iter_cb_t is_entry_processed_cb_func, void *cb_arg_void_ptr, blackbox_logger_entry_view_t *entry_ptr, const size_t entry_buf_max_capacity)
Replay next available log entry.
Definition blackbox_logger.c:978
blackbox_logger_err_t blackbox_logger_init(blackbox_logger_t *logger_ptr, blackbox_logger_config_t *config_ptr)
Initialize BlackBox Logger.
Definition blackbox_logger.c:590
BlackBox logger configuration structure.
Definition blackbox_logger.h:66
uint8_t *const sector_buf_ptr
Definition blackbox_logger.h:74
const size_t batch_buf_size
Definition blackbox_logger.h:77
blackbox_logger_parameters_t parameters
Definition blackbox_logger.h:68
const uint8_t address_align
Definition blackbox_logger.h:70
const size_t sector_buf_size
Definition blackbox_logger.h:75
const uint64_t flush_timer_timeout_us
Definition blackbox_logger.h:71
esp_partition_t * partition_ptr
Definition blackbox_logger.h:67
uint8_t *const batch_buf_ptr
Definition blackbox_logger.h:76
Blackbox logger entry view structure.
Definition blackbox_logger.h:45
size_t length
Definition blackbox_logger.h:47
uint8_t * data_ptr
Definition blackbox_logger.h:46
BlackBox logger configuration parameters structure.
Definition blackbox_logger.h:56
uint32_t write_offset
Definition blackbox_logger.h:57
bool is_dirty
Definition blackbox_logger.h:60
uint32_t replay_offset
Definition blackbox_logger.h:58
uint32_t last_id
Definition blackbox_logger.h:59
BlackBox logger type structure.
Definition blackbox_logger.h:96
SemaphoreHandle_t sector_buf_lock
Definition blackbox_logger.h:108
int32_t last_erased_sector
Definition blackbox_logger.h:104
SemaphoreHandle_t write_lock
Definition blackbox_logger.h:109
uint32_t replay_offset
Definition blackbox_logger.h:102
uint32_t write_offset
Definition blackbox_logger.h:101
size_t batch_len
Definition blackbox_logger.h:105
uint32_t last_id
Definition blackbox_logger.h:103
blackbox_logger_config_t * config_ptr
Definition blackbox_logger.h:98
esp_timer_handle_t flush_timer
Definition blackbox_logger.h:110