Diagnostica
Trackle Library fornisce dei metodi per inviare lo stato di salute del dispositivo al Cloud. Questa funzionalità permette di monitorare gli eventuali problemi hardware o di rete che si possono presentate una volta che i dispositivi sono stati installati sul campo.
I valori di HealthCheck disponibili sono raggruppati in 3 categorie:
Cloud: informazioni sullo stato della connessione al cloud:
CLOUD_CONNECTION_STATUS: Stato della connessione cloud. Quando si riceve un evento vitale attraverso il Cloud è necessario che sia sempre connesso. I valori possibili sono disconnected, connecting, connected, disconnecting.
CLOUD_CONNECTION_ERROR_CODE: Un codice di errore specifico della piattaforma restituito dalla funzione del sistema operativo del dispositivo di basso livello per l'evento di connettività cloud più recente.
CLOUD_DISCONNECTS: Il numero di disconnessioni impreviste dal cloud dall'ultimo reset.
CLOUD_CONNECTION_ATTEMPTS: Numero di tentativi effettuati per stabilire la connessione al cloud.
CLOUD_DISCONNECTION_REASON: Ultimo motivo per cui la connessione cloud è stata interrotta. I valori possibili sono none, error, user, network_disconnect, listening.
CLOUD_REPEATED_MESSAGES: Il numero di volte in cui un messaggio CoAP è stato reinviato dal dispositivo al cloud a causa della mancata ricezione del messaggio originale.
CLOUD_UNACKNOWLEDGED_MESSAGES: Il numero di messaggi CoAP che sono stati reinviati per il numero massimo di volte dal dispositivo, ancora non riconosciuti dal cloud e quindi eliminati.
CLOUD_RATE_LIMITED_EVENTS: Il conteggio attuale dei publish che hanno causato un evento di rate limited da quando il dispositivo è stato riavviato.
CLOUD_COAP_ROUND_TRIP: Il tempo di round-tirp (andata e ritorno) dell'ultimo messaggio inviato al cloud, in millisecondi
System: informazioni sul funzionamento del sistema:
SYSTEM_LAST_RESET_REASON: Fornisce il motivo dell'ultimo reset del sistema. Può aiutare a identificare la causa di riavvii o reset del dispositivo.
SYSTEM_FREE_MEMORY: Restituisce la quantità di memoria libera disponibile nel sistema. Questa chiave può essere utilizzata per monitorare l'utilizzo della memoria.
SYSTEM_BATTERY_CHARGE: Rappresenta lo stato di carica della batteria del dispositivo in percentuale. Questa chiave fornisce informazioni sulla carica residua della batteria.
SYSTEM_SYSTEM_LOOPS: Fornisce il numero di cicli di loop del sistema. Questa chiave può essere utilizzata per tenere traccia del numero di iterazioni del ciclo principale del sistema.
SYSTEM_APPLICATION_LOOPS: Restituisce il numero di cicli di loop dell'applicazione. Questa chiave può essere utilizzata per monitorare il numero di iterazioni del ciclo dell'applicazione.
SYSTEM_UPTIME: Rappresenta il tempo trascorso (in secondi) dall'ultima accensione o riavvio del dispositivo.
SYSTEM_BATTERY_STATE: Lo stato di carica attuale della batteria. I possibili valori sono unknown, not_charging, charging, charged, discharging, fault, disconnected.
SYSTEM_POWER_SOURCE: Un'enumerazione che descrive la fonte di energia attuale. I valori possibili sono unknown, VIN, USB host, USB adapter, USB otg.
SYSTEM_TOTAL_RAM: la memoria RAM totale a disposizione del dispostivo.
SYSTEM_USED_RAM: la memoria RAM utilizzata dal dispositivo.
Network: informazioni sulla rete e sulla qualità della connessione:
NETWORK_CONNECTION_STATUS: Stato della connessione di rete. Quando si riceve un evento vitale attraverso il Cloud è necessario che sia sempre connesso. I valori possibili sono turned_off, turning_on, disconnected, connecting, connected, disconnecting, turning_off.
NETWORK_CONNECTION_ERROR_CODE: Un codice di errore specifico della piattaforma restituito dalla funzione di basso livello del sistema operativo del dispositivo per l'evento di connettività di rete più recente.
NETWORK_DISCONNECTS: Conteggio delle disconnessioni di rete .
NETWORK_CONNECTION_ATTEMPTS: Numero di tentativi necessari per stabilire una connessione di rete .
NETWORK_DISCONNECTION_REASON: Ultimo motivo per cui la rete si è disconnessa. I valori possibili sono none, error, user, network_off, listening, sleep, reset.
NETWORK_IPV4_ADDRESS: Rappresenta l'indirizzo IPv4 locale del dispositivo. Questo indirizzo è utile per identificare il dispositivo sulla rete.
NETWORK_IPV4_GATEWAY: Restituisce l'indirizzo del gateway IPv4 utilizzato dal dispositivo per comunicare con la rete.
NETWORK_RSSI: misura stimata di quanto bene un dispositivo può sentire, rilevare e ricevere segnali da qualsiasi punto di accesso o da un router specifico.
NETWORK_SIGNAL_STRENGTH_VALUE: valore della potenza del segnale utile ricevuto. Varia, circa, da -30 (valore migliore) a -130 (valore peggiore).
NETWORK_SIGNAL_STRENGTH: valore della potenza del segnale in percentuale; più si avvicina a 100, più alta è la qualità. Come regola generale, più il dispositivo è vicino a una torre o un router, maggiore sarà la potenza del segnale.
NETWORK_SIGNAL_QUALITY: valore della qualità del segnale in percentuale; più si avvicina a 100, più alta è la qualità. Come regola generale, minore è il numero di dispositivi nelle immediate vicinanze che comunicano utilizzando frequenze radio simili, migliore sarà la qualità del segnale
NETWORK_SIGNAL_QUALITY_VALUE: valore che indica il grado di qualità del segnale agganciato considerando gli RB (Resource Block) allocati, l'SNR ed influenzato dal carico della cella specifica agganciata. Varia da -1 (valore migliore) a -20 (valore peggiore). Il range "ottimale" si aggira dai -6 ai -9 e quello di "carico" dai -10 ai -13/-14.
NETWORK_ACCESS_TECNHOLOGY: tipo di tecnologia utilizzata (GSM, LTE, WI-FI, ecc...) di tipo
hal_net_access_tech_t
NETWORK_CELLULAR_CELL_GLOBAL_IDENTITY_MOBILE_COUNTRY_CODE: valore decimale che identifica la nazionalità dell'operatore all'interno della rete PLMN (Public Land Mobile Network) GSM. Per l'Italia questo codice è 222.
NETWORK_CELLULAR_CELL_GLOBAL_IDENTITY_MOBILE_NETWORK_CODE: valore decimale che identifica univocamente l'operatore all'interno della PLMN nazionale. In Italia per esempio, vale 01 per Tim, 10 per Vodafone, 88 per Wind.
NETWORK_CELLULAR_CELL_GLOBAL_IDENTITY_LOCATION_AREA_CODE: valore che identifica univocamente una Location Area entro una PLMN. La grandezza di quest'area non è fissa, ma dipende da come è progettata la rete.
NETWORK_CELLULAR_CELL_GLOBAL_IDENTITY_CELL_ID: valore che identifica la cella attualmente agganciata. Questo numero dipende dal gestore e dall'area.
NETWORK_MAC_ADDRESS_OUI: Restituisce il primo componente dell'indirizzo MAC (Organizationally Unique Identifier) associato al dispositivo.
NETWORK_MAC_ADDRESS_NIC: Restituisce il secondo componente dell'indirizzo MAC (Network Interface Card) associato al dispositivo.
Per valorizzare un parametro di diagnostica va chiamata la funzione relativa alla categoria (Power, Network o System); questa funzione riceve come parametri l'identificativo (costante) ed il valore a seconda del tipo.
L'HealthCheck può essere inviato al Cloud in modo automatico o manuale.
Per configurare l'invio automatico è necessario definire l'intervallo ti tempo tra due invii consecutivi attraverso la funzione setPublishHealthCheckInterval(uint32_t interval)
.
L'invio manuale avviene chiamando funzione publishHealthCheck().
Last updated