Separar Datos CPortLib Lazarus
Hola amigos.
Quisiera saber como pudiera separar los datos que envío desde mi Arduino Mega por puerto usb a lazarus de una forma efectiva. Los datos que llegan al puerto COM son de la siguiente forma: a variable1 variable2 variable3 variable4 variable5 En lazarus leo el puerto de la siguiente manera en un timer cada 1 segundo: ComPort1.Connected:=true; ComPort1.Open; sleep(300); ComPort1.ReadStr(Str,1000); Memo1.Text:=Str; Edit1.Text:=Memo1.Lines.Strings[2]; Edit2.Text:=Memo1.Lines.Strings[3]; Edit3.Text:=Memo1.Lines.Strings[4]; Edit4.Text:=Memo1.Lines.Strings[5]; Label1.Caption:=DateTimeToStr(now); Pero el problema es que aveces llegan unos datos y aveces no. Entonces... Cómo puedo condicionar para sincronizar los datos a partir de esa "bandera" que envío que en este caso es la letra "a" de tal forma que al separar los datos no me genere problemas?. De antemano gracias. |
No he entendido muy bien, pero supongo que el problema es que a veces te llegan 6 lineas (bandera + 5 lineas) y otras llegan menos.
Podrías obtener la cantidad de líneas de Memo1 y luego rellenar los Edits que sea posible: otra opción, si no he entendido mal el tema del flag sería:
|
La franja horaria es GMT +2. Ahora son las 02:28:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi