RS485 testing

secondo me non va bene...e ti spiego....
imposti una boolean a false
entri in un while perchè questa boolena è false
leggi la seriale e se trovi il LF ....
nella prima if imposti una seconda boolean a true
questa ti fa accedere al secondo if dove imposti la prima boolean (quella del while) a true
aggiungi alla String LF
esci da while e non c'entri più....
devi semore fare attenzione alla sequenza in cui imposti e verifichi le variabili.
prova questo:

String numero = "";
boolean LF = false;

void setup() {
  Serial.begin(9600);

}

void loop() {
  char c;
  if (Serial.available()) {
    c = Serial.read();
    if (LF) {
      if (c != 10 && c != 13) {
        numero += c;
      }
    }
    if (c == 10) {
      LF = true;
    }
    if (c == 13 && LF) {
      LF = false;
      float peso = numero.toFloat() / 100;
      Serial.println(peso);
      numero = "";
    }
  }
}

mi sono dimenticato di scrivere che...come le variabili hanno una loro visibilità (scope) anche le istruzioni come break e continue hanno un loro contesto (tra le graffe in cui sono inseriti) e non si propagano in tutto il programma...quindi quelle due che hai iserito tu hanno poco senso.

Non proprio,
Continue si riferisce esplicitamente al for, while, o do...while appena esterno ad essa
Break in in più anche allo switch appena esterno
Non seguono i blocchi (parentesi graffe) ma proprio i cicli

Gli errori nella funzione scritta da bk013 sono differenti
Confonde il carattere 10 col 13
Quindi lavora un LF sì e uno no
Dopo il primo LF passa per un oggetto stringa, al quale aggiunge di tutto, in particolare i CR
Al secondo LF tenta una conversione da oggetto stringa a float
Non so bene come si comporti la conversione con stringhe sporche, ma sembra che si comporti male
Restituisce il convertito diviso 100
comunque NON è il programma del quale parla nel post 31

La logica della mia invece è questa:
In un while che non termina mai
Se c'è un carattere
Lo legge
Ignora gli spazi (eventuali zeri soppressi )
Ignora uno dei due terminatori (tanto sono usati in coppia, me ne basta uno)
L'altro terminatore restituisce il risultato del calcolo
Sottinteso: se nessuno dei tre casi precedenti
Deve essere per forza una cifra
Esegui il calcolo parziale (con una routine 'rubata' al K&R)
Il trucco è calcolare in float e dividere subito per 100

Che poi è vero che come trucco vale poco, lavorare in int e eseguire una sola divisione farei prima
Lasciamo anche allo OP qualcosa

A occhio ho usato più bit a scriverlo in italiano che in C
Mi sa che oltre a pensare direttamente in algebra complessa mi conviene parlare in C invece che in italiano
Mai che trovi le faccine quando mi servono. ...

Ragazzi dato che non ci sto capendo più niente, mica potreste fornirmi una bozza di codice? sto andando veramente in fumo per questa cosa.

ciao...hai provato quello che ti abbiamo postato Standardoil ed io?....per quanto riguarda il mio ho fatto una simulazione e funziona...vedi tu.

Ciao, perdonami, ma tra le tante cose non avevo visto il tuo pezzo di codice. Provo immediatamente! Grazie

Cioè tu vuoi dirmi che non sei riuscito a sostituire la tua funzione problematica con la.mia, che ha gli stessi parametri (btw nessuno) e restituisce lo stesso tipo?
Si tratta di un semplice copia incolla....
Adesso sono io che non capisco più...

Edit
Avrei dovuto capirlo, (vergogna mia) senza leggere la tua presentazione.
Ingannieri++

No Standardoil, è che ieri tra le tante cose, ho fatto una confusione enorme tra i commenti dei post ed altre cose. Ho chiesto scusa anche a Orso per la distrazione. Oggi provo tutto. Non c'è nessun inganno, sto solo trovando difficoltà per una cosa che effettivamente è una stupidaggine e per la quale sono grato dell'aiuto che mi stata dando. Oggi ho a disposizione la bilancia e le celle di carico e farò queste prove con i due codici.
Purtroppo con i protocolli di comunicazione e relative tempistiche ho sempre avuto un pò di problemi.

Manno' inganniere è solo la mia abbreviazione per inesperto ingegnere

ciao bk013,

(pensiero personale) non mi devi mica chiedere scusa...non mi hai, o meglio non mi sento, ne offeso ne preso in giro...quello che volevo sapere è se avevi provato gli esempi postati da me e da Standrdoil...per capire se ti funzionavano o meno.

facci sapere

ciao