Witam,
Używam komponentu TComPort do odbioru. Wykorzystuje go w projekcie, który odbiera tylko jeden znak i wszystko działa prawidłowo.
Nowy program działa na razie tak: Urządzenie wysyła co 1 sek. ciąg 3-znakowy (bajtowy). Jest to stały ciąg ABC (tak dla prób poprawności transmisji).
Właściwie to urządzenie będzie wysyłać stałego rozmiaru ciągi z większą częstotliwością i wartości poszczególnych znaków (bajtów) będą się zmieniać.
Dane z portu odbieram (i wyświetlam) w ten sposób:
Var Paczka : String;
procedure TForm1.PokazPaczke;
Begin
M1.Lines.Add(Paczka);
M1.Lines.Add('-------');
end;
procedure TForm1.CPortRxChar(Sender: TObject; Count: Integer);
begin
CPort.ReadStr(Paczka, Count);
PokazPaczke;
end;
A efekt odebranych ciągów znaków jest taki:
ABC
-------
A
-------
B
-------
C
-------
A
-------
B
-------
C
-------
A
-------
B
-------
C
-------
A
-------
BC
-------
A
-------
BC
-------
A
-------
BC
-------
A
-------
BC
-------
A
-------
BC
-------
A
-------
BC
-------
A
-------
BC
-------
A
-------
BC
-------
A
-------
BC
-------
... paczki są zmiennej wielkości. I nie wiem co jest przyczyną takiego wyniku, a chciałbym ten ciąg (testowy ABC) mieć zawsze w całości, żeby móc go odpowiednio obrobić. Możecie powiedzieć, co muszę poprawić/zmienić, żeby otrzymać to co powinno być, żeby paczki były o stałej długości??