Stima V4 Slave RAIN  4.2
EERegister Class Reference

#include <register_class.hpp>

Public Member Functions

 EERegister ()
 Constructor Class. More...
 
 EERegister (TwoWire *wire, BinarySemaphore *wireLock, uint8_t i2c_address=EEPROM_AT24C64_DEFAULT_ADDRESS)
 Construct a new EERegister::EERegister object. More...
 
void setup (void)
 Check if exist or create space register with init default value. More...
 
void read (const char *const register_name, uavcan_register_Value_1_0 *const inout_value)
 Legge un registro Cypal/Uavcan wrapper UAVCAN (Imposta Default su Set inout_value su value se non esiste) More...
 
void write (const char *const register_name, const uavcan_register_Value_1_0 *const value)
 Store the given register value into the persistent storage. More...
 
uavcan_register_Name_1_0 getNameByIndex (const uint16_t index)
 Scroll degli indici dal primo all'ultimo e return ID UavCAN Nel passaggio di un eventuale INDICE vuoto, non viene incrementato l'ID ID Uavcan è solo l'elenco sequenziale degli ID registarti validi La procedura scorre tutta l'area registri e ritorda IDX+1 alla lettura di un ID Valido. More...
 
void doFactoryReset (void)
 Erase all registers such that the defaults are used at the next launch. More...
 
bool assign (uavcan_register_Value_1_0 *const dst, const uavcan_register_Value_1_0 *const src)
 Register type Assign UAVCAN. More...
 

Private Member Functions

void _memory_write_block (uint16_t address, uint8_t *data, uint8_t len)
 Wrapper memory_write_block. More...
 
void _memory_read_block (uint16_t address, uint8_t *data, uint8_t len)
 Wrapper memory_read_block. More...
 
void _memory_write_byte (uint16_t address, uint8_t data)
 Wrapper memory_write_byte. More...
 
void _memory_read_byte (uint16_t address, uint8_t *data)
 Wrapper memory_read_byte. More...
 
void _eeprom_register_factory (void)
 Inizializza l'area memory (indice) dedicata a REGISTER. More...
 
void _eeprom_register_clear (uint8_t reg_numb)
 Inizializza/Elimina un registro CYPAL/STIMAV4 dalla memoria. More...
 
size_t _eeprom_register_get_fast (uint8_t reg_numb, uint8_t *reg_name, uint8_t *reg_value)
 Legge un registro CYPAL/STIMAV4 dalla memoria (per indice) (fast=senza controlli validità) la procedura chiamante si occupa dei limiti. More...
 
size_t _eeprom_register_get_len_intest_fast (uint8_t reg_numb)
 Legge un registro CYPAL/STIMAV4 dalla memoria (per indice) (fast=senza controlli validità) la procedura chiamante si occupa dei limiti. More...
 
void _eeprom_register_get_intest_fast (uint8_t reg_numb, uint8_t *reg_name, uint8_t name_len)
 Legge un registro CYPAL/STIMAV4 dalla memoria (per indice) (fast=senza controlli validità) la procedura chiamante si occupa dei limiti. More...
 
bool _eeprom_register_get_name_from_index (uint8_t reg_numb, uint8_t *reg_name)
 Legge un registro CYPAL/STIMAV4 dalla EEprom (per indice) More...
 
size_t _eeprom_register_get_from_name (uint8_t const *reg_name, uint8_t *reg_numb, uint8_t *data)
 Legge un registro CYPAL/STIMAV4 dalla memoria (per Nome) More...
 
uint8_t _eeprom_register_get_index_from_name (uint8_t *reg_name)
 Legge un indiced di registro CYPAL/STIMAV4 dalla memoria (per Nome) More...
 
void _eeprom_register_set (uint8_t reg_numb, uint8_t *reg_name, uint8_t *data, size_t len_data)
 Scrive/edita un registro CYPAL/STIMAV4 sulla memoria. More...
 
void _eeprom_register_get_next_id (uint8_t *current_register)
 Ritorna il prossimo indice (se esiste) valido nella sezione memoria Cypal dedicata. More...
 
uint8_t _eeprom_register_add (uint8_t *reg_name, uint8_t *data, size_t data_len)
 Aggiunge un registro alla configurazione CYPAL/STIMAV4. More...
 

Private Attributes

EEprom _Eprom
 

Detailed Description

Definition at line 93 of file register_class.hpp.

Constructor & Destructor Documentation

◆ EERegister() [1/2]

EERegister::EERegister ( )

Constructor Class.

Definition at line 48 of file register_class.cpp.

◆ EERegister() [2/2]

EERegister::EERegister ( TwoWire *  wire,
BinarySemaphore *  wireLock,
uint8_t  i2c_address = EEPROM_AT24C64_DEFAULT_ADDRESS 
)

Construct a new EERegister::EERegister object.

Parameters
wireI2C class
wireLockI2C semaphore
i2c_addressI2C address

Definition at line 55 of file register_class.cpp.

Member Function Documentation

◆ _eeprom_register_add()

uint8_t EERegister::_eeprom_register_add ( uint8_t *  reg_name,
uint8_t *  data,
size_t  data_len 
)
private

Aggiunge un registro alla configurazione CYPAL/STIMAV4.

Parameters
reg_nameNome del resistro UAVCAN/CYPAL
dataValore del registro
data_lenDimensione valore del registro
Returns
indice dell'elemento inserito nello stazio EEprom Cypal Dedicato [FAIL = MEM_UAVCAN_REG_UNDEF]

Definition at line 293 of file register_class.cpp.

◆ _eeprom_register_clear()

void EERegister::_eeprom_register_clear ( uint8_t  reg_numb)
private

Inizializza/Elimina un registro CYPAL/STIMAV4 dalla memoria.

Parameters
reg_numbnumero di registro da eliminare

Definition at line 101 of file register_class.cpp.

◆ _eeprom_register_factory()

void EERegister::_eeprom_register_factory ( void  )
private

Inizializza l'area memory (indice) dedicata a REGISTER.

Definition at line 92 of file register_class.cpp.

◆ _eeprom_register_get_fast()

size_t EERegister::_eeprom_register_get_fast ( uint8_t  reg_numb,
uint8_t *  reg_name,
uint8_t *  reg_value 
)
private

Legge un registro CYPAL/STIMAV4 dalla memoria (per indice) (fast=senza controlli validità) la procedura chiamante si occupa dei limiti.

Parameters
reg_numb(IN) Numero di regsitro da leggere
reg_name(OUT) Nome del resistro UAVCAN/CYPAL
reg_value(OUT) Valore del registro
Returns
lunghezza del registro

Definition at line 113 of file register_class.cpp.

◆ _eeprom_register_get_from_name()

size_t EERegister::_eeprom_register_get_from_name ( uint8_t const *  reg_name,
uint8_t *  reg_numb,
uint8_t *  data 
)
private

Legge un registro CYPAL/STIMAV4 dalla memoria (per Nome)

Parameters
reg_name(IN) Nome del regsitro da leggere
reg_numb(OUT) Numero del registro
data(OUT) Valore del registro
Returns
lunghezza del registro se valido, altrimenti 0

Definition at line 175 of file register_class.cpp.

◆ _eeprom_register_get_index_from_name()

uint8_t EERegister::_eeprom_register_get_index_from_name ( uint8_t *  reg_name)
private

Legge un indiced di registro CYPAL/STIMAV4 dalla memoria (per Nome)

Parameters
reg_name(IN) Nome del regsitro da leggere
Returns
indice del registro se esiste altrimenti MEM_UAVCAN_REG_UNDEF

Definition at line 210 of file register_class.cpp.

◆ _eeprom_register_get_intest_fast()

void EERegister::_eeprom_register_get_intest_fast ( uint8_t  reg_numb,
uint8_t *  reg_name,
uint8_t  name_len 
)
private

Legge un registro CYPAL/STIMAV4 dalla memoria (per indice) (fast=senza controlli validità) la procedura chiamante si occupa dei limiti.

Parameters
reg_numb(IN) Numero di regsitro da leggere
reg_name(OUT) Nome del resistro UAVCAN/CYPAL
name_len(IN) Lunghezza del messaggio di intestazione (preventivamente letto)

Definition at line 144 of file register_class.cpp.

◆ _eeprom_register_get_len_intest_fast()

size_t EERegister::_eeprom_register_get_len_intest_fast ( uint8_t  reg_numb)
private

Legge un registro CYPAL/STIMAV4 dalla memoria (per indice) (fast=senza controlli validità) la procedura chiamante si occupa dei limiti.

Parameters
reg_numb(IN) Numero di regsitro da leggere
Returns
lunghezza del registro indirizzato

Definition at line 132 of file register_class.cpp.

◆ _eeprom_register_get_name_from_index()

bool EERegister::_eeprom_register_get_name_from_index ( uint8_t  reg_numb,
uint8_t *  reg_name 
)
private

Legge un registro CYPAL/STIMAV4 dalla EEprom (per indice)

Parameters
reg_numb(IN) Numero di regsitro da leggere
reg_name(OUT) Nome del resistro UAVCAN/CYPAL
Returns
true se registro trovato

Definition at line 153 of file register_class.cpp.

◆ _eeprom_register_get_next_id()

void EERegister::_eeprom_register_get_next_id ( uint8_t *  current_register)
private

Ritorna il prossimo indice (se esiste) valido nella sezione memoria Cypal dedicata.

Parameters
current_registerindirizzo di partenza nel campo di validità [MEM_UAVCAN_MAX_REG] [IN/OUT]

Definition at line 267 of file register_class.cpp.

◆ _eeprom_register_set()

void EERegister::_eeprom_register_set ( uint8_t  reg_numb,
uint8_t *  reg_name,
uint8_t *  data,
size_t  len_data 
)
private

Scrive/edita un registro CYPAL/STIMAV4 sulla memoria.

Parameters
reg_numbNumero di regsitro da impostare
reg_nameNome del resistro UAVCAN/CYPAL
dataValore del registro
len_dataDimensione valore del registro

Definition at line 244 of file register_class.cpp.

◆ _memory_read_block()

void EERegister::_memory_read_block ( uint16_t  address,
uint8_t *  data,
uint8_t  len 
)
private

Wrapper memory_read_block.

Parameters
addressAddress to read
datadata readed
lenpacket len request

Definition at line 73 of file register_class.cpp.

◆ _memory_read_byte()

void EERegister::_memory_read_byte ( uint16_t  address,
uint8_t *  data 
)
private

Wrapper memory_read_byte.

Parameters
addressAddress to read
datasingle byte readed

Definition at line 87 of file register_class.cpp.

◆ _memory_write_block()

void EERegister::_memory_write_block ( uint16_t  address,
uint8_t *  data,
uint8_t  len 
)
private

Wrapper memory_write_block.

Parameters
addressAddress to write
datadata to write
lenpacket len

Definition at line 65 of file register_class.cpp.

◆ _memory_write_byte()

void EERegister::_memory_write_byte ( uint16_t  address,
uint8_t  data 
)
private

Wrapper memory_write_byte.

Parameters
addressAddress to write
datasingle byte data to write

Definition at line 80 of file register_class.cpp.

◆ assign()

bool EERegister::assign ( uavcan_register_Value_1_0 *const  dst,
const uavcan_register_Value_1_0 *const  src 
)

Register type Assign UAVCAN.

Copy one value to the other if their types and dimensionality are the same or automatic conversion is possible. If the destination is empty, it is simply replaced with the source (assignment always succeeds). The return value is true if the assignment has been performed, false if it is not possible (in the latter case the destination is NOT modified).

Parameters
dstdestination register
srcsource register
Returns
Register assign completed OK

Definition at line 448 of file register_class.cpp.

◆ doFactoryReset()

void EERegister::doFactoryReset ( void  )

Erase all registers such that the defaults are used at the next launch.

Set factoryReset Register UAVCAN.

Definition at line 440 of file register_class.cpp.

◆ getNameByIndex()

uavcan_register_Name_1_0 EERegister::getNameByIndex ( const uint16_t  index)

Scroll degli indici dal primo all'ultimo e return ID UavCAN Nel passaggio di un eventuale INDICE vuoto, non viene incrementato l'ID ID Uavcan è solo l'elenco sequenziale degli ID registarti validi La procedura scorre tutta l'area registri e ritorda IDX+1 alla lettura di un ID Valido.

This function is mostly intended for implementing the standard RPC-service uavcan.register.List. It returns the name of the register at the specified index (where the ordering is undefined but guaranteed to be short-term stable), or empty name if the index is out of bounds.

Parameters
indexindice di controllo
Returns
UavCan Name Register Formato UAVCAN

Definition at line 412 of file register_class.cpp.

◆ read()

void EERegister::read ( const char *const  register_name,
uavcan_register_Value_1_0 *const  inout_value 
)

Legge un registro Cypal/Uavcan wrapper UAVCAN (Imposta Default su Set inout_value su value se non esiste)

Reads the specified register from the persistent storage into inout_value. If the register does not exist or it cannot be automatically converted to the type of the provided argument, the value will be stored in the persistent storage using registerWrite(), overriding existing value. The default will not be initialized if the argument is empty.

Parameters
register_namenome del registro
inout_valuevalore del registro (formato uavcan) -> Set Valore default

Definition at line 376 of file register_class.cpp.

◆ setup()

void EERegister::setup ( void  )

Check if exist or create space register with init default value.

Definition at line 307 of file register_class.cpp.

◆ write()

void EERegister::write ( const char *const  register_name,
const uavcan_register_Value_1_0 *const  value 
)

Store the given register value into the persistent storage.

Scrive un registro Cypal/Uavcan wrapper UAVCAN.

Parameters
register_namenome del registro
valuevalore del registro (formato uavcan)

Definition at line 393 of file register_class.cpp.

Member Data Documentation

◆ _Eprom

EEprom EERegister::_Eprom
private

Definition at line 148 of file register_class.hpp.


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