TComPort + TComDataPacket

0

Witam,

Usiluje za pomocą ComPort + ComDataPacket odczytywac to co zwraca drukarka fiskalna i mam problem.
Wysylam do portu instrukcje drukarka odpowiada ale niestety w ComDataPacket1Packet nic nie zwraca mimo ustawienia ze ma wycinac zwrocony string:
ComDataPacket1.StartString:=#27;
ComDataPacket1.StopString:=#13;
Ma ktos doswiadczenie z tym? Bo rece mi juz opadaja na wiele sposob kabinuje i nigdy nic nie zwraca a dodam ze jak zrobie ComPort1.ReadStr w ComPort1RxChar to zwraca czesc wyniku ale problem w tym ze drukarka zwraca kawalkami i wyczytalem ze dobrze jest zastosowac ComDataPacket....

0

jeśli nic nie zwraca to znaczy, że pakiety nie zaczynają się od #27 i/lub nie kończą na #13

0
Misiekd napisał(a)

jeśli nic nie zwraca to znaczy, że pakiety nie zaczynają się od #27 i/lub nie kończą na #13

Hm zrobilem inaczej ustawilem size po jakim ma pokazac ale standardowo jak laduje str do memo to wyswietla kwadraciki, zrobilem myk i zamieniam str na s:=PAnsiChar(str); po tym mam wynik:
P1#X0;0;0;1;1;0;10;4;16/22.00/7.00/4.00/0.00/32/82.37/0.00/0.00/0.00//0/DFE00000001\P0#Z#s\indowTextFont.Heightő Font.NameTahoma
Font.Style
Dziwne to jest ze w ComDataPacket1Packet nie zwraca stringa...

0

to daj w RxChar zeby do memo dodawalo kod ascii znaku ktory przychodzi, bedziesz wiedzial jaki znak transmisje rozpoczyna a jaki konczy.
p.s. nie "kąbinuje", tylko "kombinuje".

0

Przede wszystkim sprawdź np. HyperTerminalem, co daje Ci ta drukarka. Dla pewności możesz użyć też hexEdita jakiegoś.

W gotowcach wrzuciłem kiedyś coś do odczytu z portu com używając właśnie tych komponentów, weź se znajdź, może to Ci się przyda.

0
Juhas napisał(a)

Przede wszystkim sprawdź np. HyperTerminalem, co daje Ci ta drukarka. Dla pewności możesz użyć też hexEdita jakiegoś.

W gotowcach wrzuciłem kiedyś coś do odczytu z portu com używając właśnie tych komponentów, weź se znajdź, może to Ci się przyda.

No dzieki zaraz poszukam w HyperTerminalem ladnie odczytuje ;-)

0
gerffi napisał(a)

jak zrobie ComPort1.ReadStr w ComPort1RxChar to zwraca czesc wyniku

a spróbuj dodać jakieś opóźnienie w RxChar np: Sleep(500). Jeśli zwraca Ci tylko część wyniku to pewnie bufor nie nadąża się zapełniać.
Powodzonka

1 użytkowników online, w tym zalogowanych: 0, gości: 1