Go Down

Topic: PJON - Multi-master, multi-media network protocol stack  (Read 65567 times) previous topic - next topic

gioscarab

Ciao Cesco, scusa la risposta in mega ritardo. Su RPI non stiamo attivamente lavorando ad implementare SoftwareBitBang. Ad oggi e' necessario avere un qualsiasi altro mcu supportato che faccia da switch:
Code: [Select]
SoftwareBitBang <-> SWITCH <-> ThroughSerial <-> Raspberry Pi

manolomao

Ciao, vorrei fare una domanda sulla gestione degli errori: quando inteviene l'errore "CONNECTION_LOST"?
Ho provato a far visualizzare questo errore per marcare la mancanza di comunicazione tra due arduini, ma non mi appare...ho seguito il setting degli errori come da specifica, poi ho tolto il cavo che mette in comunicazione i due arduini e nulla...non mi segnala nulla.
mentre se ricollego il cavo parte a comunicare correttamente...

gioscarab

Ciao manolomao se stai usando send_packet or send_packet_blocking e' normale peche' queste chiamate blocking usano il loro valore di ritorno per comunicarti il risultato della trasmissione, vedi:
https://github.com/gioblu/PJON/blob/master/documentation/data-transmission.md

Rileggendo la documentazione mi rendo conto che non e' specificato che gli errori vengono emessi solo dalle chiamate non-blocking, aggiorno subito aggiungendo la specifica mancante, grazie mille :)

manolomao

Ciao Gioscarab,uso questa istruzione:
Code: [Select]
busRS485.send(20,car_buffer,strlen(car_buffer));
Quello che volevo fare è gestire la mancanza di comunicazione....una volta che cade, mi visualizza l'errore di comunicazione...
Come posso fare???

fabpolli

Come posso fare???
Come gestire l'errore sta a te, ovvero la libreria prevede un segnale di acknowledge sincrono, asincrono oppure anche senza segnale di "messaggio ricevuto", in base a come la si configura.
Se non ridefinito è previsto l'acknowledge sincrono, quosto significa che se un dispositivo non è disponibile manca il ritorno e la libreria tramite la callback dell'errore te lo segnala, a questo punto sta a te decidere cosa fare, ad esempio potresti prevedere un certo numero di tentativi di reinoltro del messaggio (magari distanziando gli invii con scala logaritmica un po' come fanno i cellulari quando richiamano in automatico un numero occupato) e doco questo numero di invii segnali la cosa. Oppure potresti subito segnalare l'anomalia senza tentare l'invio successivo, insomma dipende da cosa fanno i tuoi dispositivi e da quanto è grave l'assenza di comunicazione per il corretto funzionamrnto del tutto.

Go Up