Stima V4 Slave RAIN
4.2
|
#include <canard_class_rain.hpp>
Classes | |
struct | CanardRxQueue |
class | flag |
union | heartbeat_VSC |
class | master |
class | next_transfer_id |
class | port_id |
class | publisher_enabled |
Public Types | |
enum | Sensor_Type : uint8_t { tbr , tpr , tbm } |
enum | GetMonotonicTime_Type : uint8_t { syncronized_time , start_syncronization } |
enum | Introspection_Port : uint8_t { PublisherSubjectID , SubscriptionSubjectID , ClientPortID , ServicePortID } |
enum | Command_Private : uint8_t { download_file = 5 , calibrate_accelerometer = 6 , module_maintenance = 7 , reset_flags = 8 , enable_publish_rmap = 10 , disable_publish_rmap = 11 , enable_publish_port_list = 12 , disable_publish_port_list = 13 , remote_test = 99 , remote_test_value = 100 } |
typedef struct canardClass::CanardRxQueue | CanardRxQueue |
Public Member Functions | |
canardClass () | |
Contruttore della classe Canard. More... | |
void | send (CanardMicrosecond tx_deadline_usec, const CanardTransferMetadata *const metadata, const size_t payload_size, const void *const payload) |
Send messaggio Canard con daeadline del tempo sincronizzato. More... | |
void | sendResponse (const CanardMicrosecond tx_deadline_usec, const CanardTransferMetadata *const request_metadata, const size_t payload_size, const void *const payload) |
Send risposta al messaggio Canard con daeadline del tempo sincronizzato. More... | |
bool | transmitQueueDataPresent (void) |
Test coda presenza dati in trasmissione di Canard. More... | |
void | transmitQueue (void) |
Trasmette la coda con timeStamp sincronizzato. Per inviare con real_time va aggiornata la sincronizzazione prima della chiamata al relativo metodo di getMonotonicMicrosecond() More... | |
void | receiveQueueEmpty (void) |
Azzera il buffer di ricezione dati collegato a BxCAN e ISR Interrupt. More... | |
bool | receiveQueueDataPresent (void) |
Ritorna true se ci sono dati utili da gestire dal buffer di RX per BxCAN. More... | |
uint8_t | receiveQueueElement (void) |
Ritorna l'elemento corrente del buffer di BxCAN, pronto ad essere gestito con Canard. More... | |
uint8_t | receiveQueueNextElement (uint8_t currElement) |
Ritorna il prossimo elemento del buffer. More... | |
void | receiveQueue (void) |
Gestione metodo ricezione coda messaggi dal buffer FIFO preparato di BxCAN Il buffer gestito nella ISR CAN_Rx viene passato alla libreria Canard e in automatico è gestita la richiamata di callBack per la funzione esterna di gestione su Rx Messaggi conformi. More... | |
void | receiveQueue (char *logMessage) |
Gestione metodo ricezione coda messaggi dal buffer FIFO preparato di BxCAN Il buffer gestito nella ISR CAN_Rx viene passato alla libreria Canard e in automatico è gestita la richiamata di callBack per la funzione esterna di gestione su Rx Messaggi conformi Overloading per log dei messaggi. More... | |
void | setReceiveMessage_CB (void(*ptrFunction)(canardClass &, const CanardRxTransfer *, void *), void *param) |
Setta il CallBack Function per il processo esterno di interprete su messaggio ricevuto e conforme a Canard. Richiama la funzione esterna su CanardRxAccept Valido. Abilitato su SET. More... | |
void | enableReceiveMessage_CB (void) |
Abilita il CallBack Function Canard RX Message CanardRxAccept. More... | |
void | disableReceiveMessage_CB (void) |
Disabilita il CallBack Function Canard RX Message CanardRxAccept. More... | |
bool | rxSubscribe (const CanardTransferKind transfer_kind, const CanardPortID port_id, const size_t extent, const CanardMicrosecond transfer_id_timeout_usec) |
Sottoscrizione di una funzione Canard. More... | |
uint8_t | rxSubscriptionAvaiable (void) |
Ritorna il numero di sottoscrizioni ancora disponibili. More... | |
void | rxUnSubscribe (const CanardTransferKind transfer_kind, const CanardPortID port_id) |
Rimozione di una sottoscrizione di una funzione Canard. More... | |
bool | send_file_read_block (CanardNodeID server_id, char *fileName, uint64_t remoteOffset) |
Avvia la richiesta di un blocco file contiguo al file_server con ID Fisico. More... | |
bool | master_file_read_block_pending (uint32_t timeout_us) |
Avvia la richiesta di un blocco file contiguo al file_server tramite classe e controllo Master. More... | |
bool | slave_heartbeat_send_message (void) |
Invia il messaggio di HeartBeat ai nodi remoti. More... | |
bool | slave_pnp_send_request (uint64_t serial_number) |
Invia il messaggio di PNP request (richiesta di node_id valido) al nodo server PNP (master) More... | |
bool | slave_servicelist_send_message (void) |
Invia il messaggio dei servizi attivi ai nodi remoti. More... | |
void | set_canard_node_id (CanardNodeID local_id) |
Imposta l'ID Nodo locale per l'istanza Canard privata della classe Canard. More... | |
CanardNodeID | get_canard_node_id (void) |
Legge l'ID Nodo locale per l'istanza Canard privata della classe Canard. More... | |
bool | is_canard_node_anonymous (void) |
Controlla se il nodo è anonimo (senza ID Impostato) More... | |
void | set_canard_master_id (CanardNodeID remote_id) |
Set node master ID (slave respond to RMAP command and flag with master ID) More... | |
CanardNodeID | get_canard_master_id (void) |
Get master node id for local set and flag operation automatic (sleep, power...) More... | |
Static Public Member Functions | |
static CanardMicrosecond | getMicros () |
Get MonotonicTime Interno realTime. More... | |
static CanardMicrosecond | getMicros (GetMonotonicTime_Type syncro_type) |
Get MonotonicTime Interno con richiesta del tipo di sincronizzazione Overloading di RealTime. More... | |
static uint32_t | getUpTimeSecond (void) |
Ritorna i secondi dall'avvio Canard per UpTime in (in formato 64 BIT necessario per UAVCAN) Non permette il reset n ei 70 minuti circa previsti per l'overflow della funzione uS a 32 Bit. More... | |
Public Attributes | |
class canardClass::master | master |
rmap_module_Rain_1_0 | module_rain |
class canardClass::port_id | port_id |
class canardClass::publisher_enabled | publisher_enabled |
class canardClass::next_transfer_id | next_transfer_id |
class canardClass::flag | flag |
Private Member Functions | |
void | _fillSubscriptions (const CanardTreeNode *const tree, uavcan_node_port_SubjectIDList_0_1 *const obj) |
Prepara la lista delle sottoscrizioni Canard (privata) More... | |
void | _fillServers (const CanardTreeNode *const tree, uavcan_node_port_ServiceIDList_0_1 *const obj) |
Prepara la lista dei servizi Canard (privata) More... | |
_Alignas (O1HEAP_ALIGNMENT) uint8_t _heap_arena[HEAP_ARENA_SIZE] | |
O1HeapDiagnostics | _memGetDiagnostics (void) |
Diagnostica Heap Data per Heartbeat e/o azioni interne. More... | |
Static Private Member Functions | |
static void * | _memAllocate (CanardInstance *const ins, const size_t amount) |
Gestione O1Heap Memory Canard Allocate. More... | |
static void | _memFree (CanardInstance *const ins, void *const pointer) |
Gestione O1Heap Memory Canard Free. More... | |
Private Attributes | |
CanardInstance | _canard |
CanardNodeID | _master_id |
CanardRxQueue | _canard_rx_queue |
CanardTxQueue | _canard_tx_queues [CAN_REDUNDANCY_FACTOR] |
O1HeapInstance * | _heap |
bool | _attach_rx_callback |
void(* | _attach_rx_callback_PTR )(canardClass &, const CanardRxTransfer *, void *) |
void * | _attach_param_PTR |
CanardRxSubscription | _rxSubscription [MAX_SUBSCRIPTION] |
uint8_t | _rxSubscriptionIdx |
Static Private Attributes | |
static uint32_t | _lastMicros |
static uint64_t | _currMicros |
static uint64_t | _syncMicros |
static uint64_t | _mastMicros |
Definition at line 55 of file canard_class_rain.hpp.
typedef struct canardClass::CanardRxQueue canardClass::CanardRxQueue |
enum canardClass::Command_Private : uint8_t |
Definition at line 85 of file canard_class_rain.hpp.
enum canardClass::GetMonotonicTime_Type : uint8_t |
Enumerator | |
---|---|
syncronized_time | |
start_syncronization |
Definition at line 71 of file canard_class_rain.hpp.
enum canardClass::Introspection_Port : uint8_t |
Enumerator | |
---|---|
PublisherSubjectID | |
SubscriptionSubjectID | |
ClientPortID | |
ServicePortID |
Definition at line 77 of file canard_class_rain.hpp.
enum canardClass::Sensor_Type : uint8_t |
Enumerator | |
---|---|
tbr | |
tpr | |
tbm |
Definition at line 64 of file canard_class_rain.hpp.
canardClass::canardClass | ( | ) |
Contruttore della classe Canard.
Definition at line 76 of file canard_class_rain.cpp.
|
private |
|
private |
Prepara la lista dei servizi Canard (privata)
tree | out albero servizi |
obj | oggetto servizi |
Definition at line 821 of file canard_class_rain.cpp.
|
private |
Prepara la lista delle sottoscrizioni Canard (privata)
tree | out albero sottoscrizioni |
obj | oggetto sottoscrizioni |
Definition at line 805 of file canard_class_rain.cpp.
|
staticprivate |
Gestione O1Heap Memory Canard Allocate.
ins | istanza canard |
amount | dimensione da allocare |
Definition at line 1095 of file canard_class_rain.cpp.
|
staticprivate |
Gestione O1Heap Memory Canard Free.
ins | istanza canard |
pointer | puntatore alla posizione da deallocare |
Definition at line 1104 of file canard_class_rain.cpp.
|
private |
Diagnostica Heap Data per Heartbeat e/o azioni interne.
Definition at line 1111 of file canard_class_rain.cpp.
void canardClass::disableReceiveMessage_CB | ( | void | ) |
Disabilita il CallBack Function Canard RX Message CanardRxAccept.
Definition at line 380 of file canard_class_rain.cpp.
void canardClass::enableReceiveMessage_CB | ( | void | ) |
Abilita il CallBack Function Canard RX Message CanardRxAccept.
Definition at line 375 of file canard_class_rain.cpp.
CanardNodeID canardClass::get_canard_master_id | ( | void | ) |
Get master node id for local set and flag operation automatic (sleep, power...)
Definition at line 1082 of file canard_class_rain.cpp.
CanardNodeID canardClass::get_canard_node_id | ( | void | ) |
Legge l'ID Nodo locale per l'istanza Canard privata della classe Canard.
Definition at line 1061 of file canard_class_rain.cpp.
|
static |
Get MonotonicTime Interno realTime.
Definition at line 135 of file canard_class_rain.cpp.
|
static |
Get MonotonicTime Interno con richiesta del tipo di sincronizzazione Overloading di RealTime.
syncro_type | Tipo di funzione richiesta (sincronizzato, inizializza sincronizzazione) |
Definition at line 153 of file canard_class_rain.cpp.
|
static |
Ritorna i secondi dall'avvio Canard per UpTime in (in formato 64 BIT necessario per UAVCAN) Non permette il reset n ei 70 minuti circa previsti per l'overflow della funzione uS a 32 Bit.
Definition at line 162 of file canard_class_rain.cpp.
bool canardClass::is_canard_node_anonymous | ( | void | ) |
Controlla se il nodo è anonimo (senza ID Impostato)
Definition at line 1068 of file canard_class_rain.cpp.
bool canardClass::master_file_read_block_pending | ( | uint32_t | timeout_us | ) |
Avvia la richiesta di un blocco file contiguo al file_server tramite classe e controllo Master.
timeout_us | deadline di comando |
Definition at line 433 of file canard_class_rain.cpp.
void canardClass::receiveQueue | ( | char * | logMessage | ) |
Gestione metodo ricezione coda messaggi dal buffer FIFO preparato di BxCAN Il buffer gestito nella ISR CAN_Rx viene passato alla libreria Canard e in automatico è gestita la richiamata di callBack per la funzione esterna di gestione su Rx Messaggi conformi Overloading per log dei messaggi.
logMessage | Buffer esterno per la gestione del messaggio di log |
Definition at line 324 of file canard_class_rain.cpp.
void canardClass::receiveQueue | ( | void | ) |
Gestione metodo ricezione coda messaggi dal buffer FIFO preparato di BxCAN Il buffer gestito nella ISR CAN_Rx viene passato alla libreria Canard e in automatico è gestita la richiamata di callBack per la funzione esterna di gestione su Rx Messaggi conformi.
Definition at line 299 of file canard_class_rain.cpp.
bool canardClass::receiveQueueDataPresent | ( | void | ) |
Ritorna true se ci sono dati utili da gestire dal buffer di RX per BxCAN.
Definition at line 274 of file canard_class_rain.cpp.
uint8_t canardClass::receiveQueueElement | ( | void | ) |
Ritorna l'elemento corrente del buffer di BxCAN, pronto ad essere gestito con Canard.
Definition at line 280 of file canard_class_rain.cpp.
void canardClass::receiveQueueEmpty | ( | void | ) |
Azzera il buffer di ricezione dati collegato a BxCAN e ISR Interrupt.
Definition at line 268 of file canard_class_rain.cpp.
uint8_t canardClass::receiveQueueNextElement | ( | uint8_t | currElement | ) |
Ritorna il prossimo elemento del buffer.
currElement | elemento corrente gestito |
Definition at line 291 of file canard_class_rain.cpp.
bool canardClass::rxSubscribe | ( | const CanardTransferKind | transfer_kind, |
const CanardPortID | port_id, | ||
const size_t | extent, | ||
const CanardMicrosecond | transfer_id_timeout_usec | ||
) |
Sottoscrizione di una funzione Canard.
transfer_kind | tipo di messaggio |
port_id | porta del messaggio |
extent | dimensione del pacchetto dati |
transfer_id_timeout_usec | daeadline di validità messaggio in microsecondi |
Definition at line 394 of file canard_class_rain.cpp.
uint8_t canardClass::rxSubscriptionAvaiable | ( | void | ) |
Ritorna il numero di sottoscrizioni ancora disponibili.
Definition at line 413 of file canard_class_rain.cpp.
void canardClass::rxUnSubscribe | ( | const CanardTransferKind | transfer_kind, |
const CanardPortID | port_id | ||
) |
Rimozione di una sottoscrizione di una funzione Canard.
transfer_kind | tipo di messaggio |
port_id | porta del messaggio |
Definition at line 420 of file canard_class_rain.cpp.
void canardClass::send | ( | CanardMicrosecond | tx_deadline_usec, |
const CanardTransferMetadata *const | metadata, | ||
const size_t | payload_size, | ||
const void *const | payload | ||
) |
Send messaggio Canard con daeadline del tempo sincronizzato.
tx_deadline_usec | microsecondi di validità del messaggio |
metadata | metadata del messaggio |
payload_size | dimensione del messaggio |
payload | messaggio da trasmettere |
Definition at line 175 of file canard_class_rain.cpp.
bool canardClass::send_file_read_block | ( | CanardNodeID | server_id, |
char * | fileName, | ||
uint64_t | remoteOffset | ||
) |
Avvia la richiesta di un blocco file contiguo al file_server con ID Fisico.
server_id | remote file_server |
fileName | Nome del file da prelevare |
remoteOffset | offset di prelievo del blocco file remoto |
Definition at line 447 of file canard_class_rain.cpp.
void canardClass::sendResponse | ( | const CanardMicrosecond | tx_deadline_usec, |
const CanardTransferMetadata *const | request_metadata, | ||
const size_t | payload_size, | ||
const void *const | payload | ||
) |
Send risposta al messaggio Canard con daeadline del tempo sincronizzato.
tx_deadline_usec | microsecondi di validità del messaggio |
request_metadata | metadata del messaggio |
payload_size | dimensione del messaggio |
payload | messaggio da trasmettere |
Definition at line 194 of file canard_class_rain.cpp.
void canardClass::set_canard_master_id | ( | CanardNodeID | remote_id | ) |
Set node master ID (slave respond to RMAP command and flag with master ID)
remote_id | remote id for master (normal reading in register) |
Definition at line 1075 of file canard_class_rain.cpp.
void canardClass::set_canard_node_id | ( | CanardNodeID | local_id | ) |
Imposta l'ID Nodo locale per l'istanza Canard privata della classe Canard.
local_id | id nodo locale |
Definition at line 1054 of file canard_class_rain.cpp.
void canardClass::setReceiveMessage_CB | ( | void(*)(canardClass &, const CanardRxTransfer *, void *) | ptrFunction, |
void * | param | ||
) |
Setta il CallBack Function per il processo esterno di interprete su messaggio ricevuto e conforme a Canard. Richiama la funzione esterna su CanardRxAccept Valido. Abilitato su SET.
ptrFunction | puntatore alla funzione di callBack(canardClass&, const CanardRxTransfer*) |
param | canard rx transfer parameters |
Definition at line 368 of file canard_class_rain.cpp.
bool canardClass::slave_heartbeat_send_message | ( | void | ) |
Invia il messaggio di HeartBeat ai nodi remoti.
Definition at line 738 of file canard_class_rain.cpp.
bool canardClass::slave_pnp_send_request | ( | uint64_t | serial_number | ) |
Invia il messaggio di PNP request (richiesta di node_id valido) al nodo server PNP (master)
Definition at line 775 of file canard_class_rain.cpp.
bool canardClass::slave_servicelist_send_message | ( | void | ) |
Invia il messaggio dei servizi attivi ai nodi remoti.
Definition at line 835 of file canard_class_rain.cpp.
void canardClass::transmitQueue | ( | void | ) |
Trasmette la coda con timeStamp sincronizzato. Per inviare con real_time va aggiornata la sincronizzazione prima della chiamata al relativo metodo di getMonotonicMicrosecond()
Definition at line 218 of file canard_class_rain.cpp.
bool canardClass::transmitQueueDataPresent | ( | void | ) |
Test coda presenza dati in trasmissione di Canard.
Definition at line 205 of file canard_class_rain.cpp.
|
private |
Definition at line 418 of file canard_class_rain.hpp.
|
private |
Definition at line 416 of file canard_class_rain.hpp.
|
private |
Definition at line 417 of file canard_class_rain.hpp.
|
private |
Definition at line 385 of file canard_class_rain.hpp.
|
private |
Definition at line 392 of file canard_class_rain.hpp.
|
private |
Definition at line 393 of file canard_class_rain.hpp.
|
inlinestaticprivate |
Definition at line 397 of file canard_class_rain.hpp.
|
private |
Definition at line 406 of file canard_class_rain.hpp.
|
inlinestaticprivate |
Definition at line 396 of file canard_class_rain.hpp.
|
private |
Definition at line 389 of file canard_class_rain.hpp.
|
inlinestaticprivate |
Definition at line 399 of file canard_class_rain.hpp.
|
private |
Definition at line 421 of file canard_class_rain.hpp.
|
private |
Definition at line 422 of file canard_class_rain.hpp.
|
inlinestaticprivate |
Definition at line 398 of file canard_class_rain.hpp.
rmap_module_Rain_1_0 canardClass::module_rain |
Definition at line 290 of file canard_class_rain.hpp.