Forum: PC-Programmierung Lazarus: Schnittstelle auslesen per Synaser und Daten anzeigen


von Manfred (Gast)


Lesenswert?

Hallo Leute,

ich versuche verzweifelt mit dem Modul synaser die Daten der 
USB-Schnittstelle auszulesen und umzuwandeln. Soweit klappt alles, also 
die Kommunikation. Aber irgendwie doch nicht. Per Timer wollte jedes 
Byte einzeln auslesen und den Hex-Wert davon dann in einen String und 
diesen dann mit einem Memo anzeigen.
Aber ich scheitere schon beim auslesen.

Timer hat Intervall von 100

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  txt:=ser.RecvPacket(100);(Daten Byteweise lesen, 100 ms Wartezeit )
  label1.caption:=txt;
  Memo1.lines.add(inttostr(length(txt)));
end;

aber obwohl ich byteweise auslese, hat der String txt eine Länge 
zwischen 80-100 Zeichen. Das kann doch irgendwie nicht sein, oder? also 
muß ja "txt:=ser.RecvPacket(100); "  mehrfach aufgerufen werden und 
Label1.Caption und Memo1.line=länge vom String je nur 
einmal.........sollte ich es so lassen und einfach den String auswerten 
und umformatieren? Oder gibt es da noch eine bessere Möglichkeit für das 
Byte-Weise einlesen? Vielen Dank.

von ms (Gast)


Lesenswert?

Hallo Manfred,

byte für byte müsste so gehen.

function RecvByte(timeout: integer): byte; virtual;

Waits until one data byte is received which is returned as the function 
result. If no data is received within the Timeout (in milliseconds) 
period, LastError is set to ErrTimeout.

ms

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.