Modbus Vault v1.0
Loading...
Searching...
No Matches
logger_service.c File Reference

Implementation of the logger service. More...

#include "logger_service.h"
#include "debug_pins.h"
#include "esp_log.h"
#include "event_bus.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "metrics.h"
#include "runtime_tasks.h"
#include "telemetry_pipeline.h"
Include dependency graph for logger_service.c:

Macros

#define LOGGER_SERVICE_STORE_QUOTA   (2U)
 
#define LOGGER_SERVICE_LOGGING_QUEUE_LENGTH   (32U)
 

Functions

static void logger_service_task (void *parameters_void_ptr)
 Task used to store enqueued entries.
 
static void logger_service_stop_task (void)
 Stop logger service task.
 
bool logger_service_init (blackbox_logger_config_t *blackbox_logger_config_ptr, void(*on_replay_available_cb)(void))
 Initialize logger service.
 
bool logger_service_enqueue (const telemetry_pipeline_record_t *payload_ptr)
 Enqueue entries for storing.
 
bool logger_service_store (const telemetry_pipeline_record_t *payload_ptr)
 Store an entry.
 
bool logger_service_has_backlog (void)
 Logger has a backlog.
 
bool logger_service_fetch_next_replay (telemetry_pipeline_record_t *payload_ptr, blackbox_logger_iter_cb_t cb)
 Fetch next replay.
 
void logger_service_deinit (void)
 Deinitialize logger service.
 

Variables

static const char * TAG = "LOGGER_SERVICE"
 
static TaskHandle_t logger_service_task_handle = NULL
 
static QueueHandle_t logging_queue = NULL
 
static blackbox_logger_t logger = {0}
 
runtime_task_config_t logger_service_task_config
 

Detailed Description

Implementation of the logger service.

Author
Abanoub Salah
  • Uses blackbox logger to store and retrieve entries
  • Enqueue log entry or store log directly
  • Fetch next to get available next replay
  • Uses a task to store enqueued entries

Macro Definition Documentation

◆ LOGGER_SERVICE_LOGGING_QUEUE_LENGTH

#define LOGGER_SERVICE_LOGGING_QUEUE_LENGTH   (32U)

Logger queue length

◆ LOGGER_SERVICE_STORE_QUOTA

#define LOGGER_SERVICE_STORE_QUOTA   (2U)

Logger store quota

Function Documentation

◆ logger_service_deinit()

void logger_service_deinit ( void  )

Deinitialize logger service.

Deinitialize blackbox logger and delete used queue

Here is the call graph for this function:
Here is the caller graph for this function:

◆ logger_service_enqueue()

bool logger_service_enqueue ( const telemetry_pipeline_record_t payload_ptr)

Enqueue entries for storing.

Parameters
payload_ptrPointer to payload
Returns
true if enqueued false otherwise
Here is the caller graph for this function:

◆ logger_service_fetch_next_replay()

bool logger_service_fetch_next_replay ( telemetry_pipeline_record_t payload_ptr,
blackbox_logger_iter_cb_t  cb 
)

Fetch next replay.

Parameters
payload_ptrPointer to payload
cbcallback
Returns
true if fetched then processed by callback false otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ logger_service_has_backlog()

bool logger_service_has_backlog ( void  )

Logger has a backlog.

Returns
true if logger has a backlog false otherwise
Here is the call graph for this function:

◆ logger_service_init()

bool logger_service_init ( blackbox_logger_config_t blackbox_logger_config_ptr,
void(*)(void)  on_replay_available_cb 
)

Initialize logger service.

Initialize blackbox logger instance used in different functionality throughout

Parameters
blackbox_logger_config_ptrPointer to Blackbox logger configuration structure
on_replay_available_cbCallback for when replay available
Returns
true on initialize success false otherwise

< Logger queue length

Here is the call graph for this function:
Here is the caller graph for this function:

◆ logger_service_store()

bool logger_service_store ( const telemetry_pipeline_record_t payload_ptr)

Store an entry.

Parameters
payload_ptrPointer to payload
Returns
true if stored false otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ logger_service_task()

static void logger_service_task ( void *  parameters_void_ptr)
static

Task used to store enqueued entries.

Parameters
parameters_void_ptrVoid pointer to parameters

< Logger store quota

Here is the call graph for this function:

Variable Documentation

◆ logger

blackbox_logger_t logger = {0}
static

Blackbox Logger instance

◆ logger_service_task_config

runtime_task_config_t logger_service_task_config
Initial value:
.arg = NULL,
static TaskHandle_t logger_service_task_handle
Definition logger_service.c:31
static void logger_service_task(void *parameters_void_ptr)
Task used to store enqueued entries.
Definition logger_service.c:42
static void logger_service_stop_task(void)
Stop logger service task.
Definition logger_service.c:79
#define LOGGER_SERVICE_TASK_NAME
Definition logger_service.h:23
#define LOGGER_SERVICE_TASK_PRIORITY
Definition logger_service.h:25
#define LOGGER_SERVICE_TASK_CPU_AFFINITY
Definition logger_service.h:26
#define LOGGER_SERVICE_TASK_STACK_DEPTH
Definition logger_service.h:24

Logger task configuration structure

◆ logger_service_task_handle

TaskHandle_t logger_service_task_handle = NULL
static

Logger task handle

◆ logging_queue

QueueHandle_t logging_queue = NULL
static

Logger queue handle

◆ TAG

const char* TAG = "LOGGER_SERVICE"
static

Logger TAG name