|
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.