Approvo, ma suggerisco qualche piccola limatura:
- nelle stringhe "paramListStart\n" e "paramListEnd\n" possiamo evitare completamente il carattere @ in quanto il mio marcatore è la stringa stessa.
- Concordo nel levare anche il marcatore "#" nell'elenco dei parametri in quanto quando io ricevo la stringa "paramListStart\n" entro in modalità di configurazione e ci rimango fino a che non trovo "paramListEnd\n". Qualsiasi cosa mi arriva mentre sono in quello stato per me è un parametro.
- Allunga il tempo iniziale dei 60 secondi a 90, così ho il tempo di fare lo scan di tutte le seriali del sistema e mostrarle a schermo, lasciando il tempo all'utente di scegliere quella giusta.
- Prevedo le 5 variabili che hai segnato, e uso i nomi indicati da te. Non cambiarmele!
Cosa succede se durante l'esecuzione del test ti arriva una stringa "setParam\n"? Forse conviene ignorarla completamente
Mi confermi che mi invii solo un file dati con i campi di misura senza altre cose?
1) Perfetto, approvo tutte le limature. Modifico è condivido su gdrive.
2) Se durante l'esecuzione dei test arriva un messaggio "setparam" non succede nulla, il messaggio viene totalmente ignorato. Solo i messaggi "stop" e "getdata" hanno efficacia durante l'esecuzione del test e tral'altro l'esecuzione di "getdata", se chiamata durante una fase di scarica, viene rinviata alla termnazione della scarica.
3) A dire il vero attualmente quando mandi "getdata" il dispositivo ti spedisce tutti e 3 i files: data0n.txt, chrg0n.txt e load0n.txt. O ignori gli ultimi due oppure modifico io. Dimmelo tu, a mè costa poca fatica modificarlo. Il file con i dati puntuali data0n.txt è costituito da righe del tipo
172.694, 1, C1, 3.57, -0.51, -86, -24, 20, 22
ma contiene anche qualche riga con messaggi diversi, che però individui facilmente perchè comincia sempre con un singolo backslash '\\'
Ad esempio all'inizio del file le prime righe contengono qualche info:
\ Software: eload v. 0.170116
\PARAMETRI DI SCARICA:
\ Controllo di Potenza
\ Potenza = 30.0 W
\ Scarica pulsata
\ Ton = 5.00 s
\ Toff = 15.00 s
\ Cicli = 2
\ (TENSIONE) cutoff = 3.20 V
\-----------------------------------------------------------
\ Tensione iniziale della cella: 3.54 V
127.602, 1, C1, 0.00, 0.00, 0, 0, 0, 0
132.614, 1, C1, 3.56, -0.57, -11, -3, 20, 21
137.624, 1, C1, 3.56, -0.54, -21, -6, 20, 21
142.633, 1, C1, 3.56, -0.53, -31, -9, 20, 21
...
Ed alla fine del file le ultime righe indicano come è avvenuta la terminazione del test, ad esempio
...
31022.648, 2, R2, 3.59, 0.12, 0, 0, 19, 20
31032.658, 2, R2, 3.59, 0.12, 0, 0, 19, 20
31042.666, 2, R2, 3.59, 0.12, 0, 0, 19, 20
\ Programma terminato: Terminati i cicli richiesti
Credo che sia molto semplice per tè ignorarle, basta leggere il flusso una riga per volta ed ignorare quella il cui primo carattere è un backslash.
N.B. Tutte le righe di dati sono terminate solo da un carattere linefeed (LF) , stile unix. Nelle righe di commento potrebbe anche esserci qualche carriage return (CR) ma sempre prima di LF.