Io non conosco nel dettaglio la SoftEasyTransfer, però da quello che vedo nel codice che hai postato mi sembra una libreria ben fatta. Più o meno è quello che dicevo nel mio post precedente riguardo alle struct usate come payload.
Preferisco questo del payload per vari motivi:
1) La classe o funzione che spedisce i dati è generica e non legata ad un tipo utente, ma richiede semplicemente un puntatore a byte e la lunghezza del payload in byte.
2) I dati da spedire sono messi in ordine e ricevuti nello stesso ordine in modo automatico grazie alla condivisione della struct.
3) La classe può essere personalizzata aggiungendo dei metodi setStartCode(int code) e setEndCode(int code)
questo permette al ricevente di scegliere il tipo di collezione di dati.
Un tipo di collezione di dati potrebbe essere:
- Dati di configurazione (code = 1)
- Dati di aggiornamento (code = 2)
- Dati di instradamento (code = 3)
- Dati di configurazione remota (code = 4)
In ricezione basta uno switch case startCode per ricevere dati e usarli in modo specifico, modo stabilito dal trasmittente.
@gpb01
Di soluzioni a problemi conosciuti (design pattern) ce n'è più di una, basta conoscerle tutte e scegliere quella che
preferiamo, questa del payload è una, le altre suggerite con tutte le varianti e quelle a venire sono tutte da scoprire.
Ciao.