REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
client::RunDataNotificationHandler Class Reference

This class allows to compose a specific JSON message without using ArduinoJSON. More...

#include <protocol_oob.h>

Inheritance diagram for client::RunDataNotificationHandler:
Collaboration diagram for client::RunDataNotificationHandler:

Public Member Functions

 RunDataNotificationHandler (carrier::Carrier &carrier, Print &target)
 
void prepare (run::Run &run) override
 
void handle (volatile uint32_t *data, size_t outer_count, size_t inner_count, const run::Run &run) override
 
void stream (volatile uint32_t *buffer, run::Run &run) override
 
- Public Member Functions inherited from run::RunDataHandler
virtual void init ()
 

Static Public Member Functions

static size_t calculate_inner_buffer_length (size_t inner_count)
 
static size_t calculate_outer_buffer_position (size_t outer_count, size_t inner_count)
 
static size_t calculate_total_buffer_length (size_t outer_count, size_t inner_count)
 

Public Attributes

carrier::Carriercarrier
 
Print & target
 
- Public Attributes inherited from run::RunDataHandler
volatile bool first_data = false
 
volatile bool last_data = false
 

Detailed Description

This class allows to compose a specific JSON message without using ArduinoJSON.

The message contains ADC/DAQ data and using ArduinoJSON buffering turns out to be toos slow in practice.

The class is only used internally in the RunStateChangeNotificationHandler.

This class is rather hacky, should be considered to be replaced with

See also
utils::StreamingJson or even some tailored binary stuff, see tickets/issues where JSON alternatives are discussed.

Definition at line 44 of file protocol_oob.h.

Constructor & Destructor Documentation

◆ RunDataNotificationHandler()

FLASHMEM client::RunDataNotificationHandler::RunDataNotificationHandler ( carrier::Carrier & carrier,
Print & target )

Definition at line 30 of file protocol_oob.cpp.

Member Function Documentation

◆ calculate_inner_buffer_length()

FLASHMEM size_t client::RunDataNotificationHandler::calculate_inner_buffer_length ( size_t inner_count)
static

Definition at line 115 of file protocol_oob.cpp.

◆ calculate_outer_buffer_position()

FLASHMEM size_t client::RunDataNotificationHandler::calculate_outer_buffer_position ( size_t outer_count,
size_t inner_count )
static

Definition at line 120 of file protocol_oob.cpp.

◆ calculate_total_buffer_length()

FLASHMEM size_t client::RunDataNotificationHandler::calculate_total_buffer_length ( size_t outer_count,
size_t inner_count )
static

Definition at line 127 of file protocol_oob.cpp.

◆ handle()

FLASHMEM void client::RunDataNotificationHandler::handle ( volatile uint32_t * data,
size_t outer_count,
size_t inner_count,
const run::Run & run )
overridevirtual

Implements run::RunDataHandler.

Definition at line 33 of file protocol_oob.cpp.

References LOG_ERROR, daq::raw_to_float(), daq::raw_to_str(), and uint32_t.

◆ prepare()

FLASHMEM void client::RunDataNotificationHandler::prepare ( run::Run & run)
overridevirtual

Implements run::RunDataHandler.

Definition at line 89 of file protocol_oob.cpp.

◆ stream()

FLASHMEM void client::RunDataNotificationHandler::stream ( volatile uint32_t * buffer,
run::Run & run )
overridevirtual

Implements run::RunDataHandler.

Definition at line 85 of file protocol_oob.cpp.

Member Data Documentation

◆ carrier

carrier::Carrier& client::RunDataNotificationHandler::carrier

Definition at line 48 of file protocol_oob.h.

◆ target

Print& client::RunDataNotificationHandler::target

Definition at line 49 of file protocol_oob.h.


The documentation for this class was generated from the following files: