Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: Paolo Zambarbieri - Giugno 24, 2020, 11:47:29 am
-
Ciao a tutti
Ho un problema con la lettura di dati da una seriale utilizzando la libreria Lazserial.
Ho connesso uno strumento che trasmette a una frequenza 10Khz dei pacchetti da 6 byte, a una bit-rate di 230400 Kbit.
Non riesco a conservare l'allineamento dei byte che mi arrivano temporalmente shiftati , non ho un carattere di sincronizzazione da usare come riferimento.
il risultato migliore l'ho ottenuto usando questa funzione, ma non mi garantisce l'allineamento , nel senso che se parte col byte sbagliato lo mantiene sempre.
Ho provato a giocare sul Timeout ma se troppo poco shiftano oltre i 20ms è uguale.
Avete qualche suggerimento?
Ciao grazie
procedure TForm1.SerialeRxData(Sender: TObject);
Begin
datain:=seriale.SynSer.RecvBufferStr(6,20);
rx_flag:=true;
end;
-
Ciao Paolo, mi dispiace ma non ho mai lavorato con quel pacchetto e ad essere onesto non mi occupo di programmazione seriale da almeno 8/10 anni. Quindi io non posso esserti utile. Mi sembra di ricordare che l'utente "Jurassic Pork" del forum internazionale ha creato quel package (ma potrei sbagliarmi, vado a memoria). Ti consiglio di contattare lui direttamente.
-
Ok Grazie ottimo consiglio proverò, non ho mai avuto alcun problema con questa libreria ma la applicazione è un po' particolare.
-
Figurati, se risolvi ricordati di scrivere qui come. Così potresti aiutare qualcun'altro in futuro.