Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Jak wyslac HEX przez RS232c w Delphi (API)?

Moderatorzy: Jacek Bogusz, Moderatorzy

GospoPL
-
-
Posty: 3
Rejestracja: 30 mar 2007, o 13:08
Lokalizacja: Edinburgh
Kontaktowanie:

Jak wyslac HEX przez RS232c w Delphi (API)?

Postautor: GospoPL » 14 maja 2008, o 11:32

Witam jesli wysylam przez hyperterminal dane jako hex to nie ma problemu wszystko dziala pieknie. Problem sie pojawia jak chce to wyslac swoim programem. Mam ksiazke Danieluka i na jej podstawie potrafie napisac program. Niestety nie wiem jak wyslac taka ramke: 2e 2e 00 00 40 50 ff.

StrCopy(Buffer_O, query);
RichEdit1.Text := Buffer_O;
Write_Comm(hCommDev, StrLen(Buffer_O));
FlushFileBuffers(hCommDev);

powiedzmy ze chcialbym skorzystac z tych polecen powyzej. Jak zamienic hex to string??
Jak najlatwiej wyslac taka ramke? (nie korzystam z zadnych komponentow typu Cport).


Dodam jeszcze: jak wysylam hyperterminalem (takim gdzie za dane moge zaznaczyc hex) to mam dokladnie taki syganl:
2e 2e 40 50 ff ..@Pے

Moim programem moge wyslac ..@Pے i na wyjsciu pojawi sie to co chce czyli 2e 2e 40 50 ff.

problem sie zaczyna jak chce wyslac ciag takich znakow (z zerem) 2e 2e 00 00 40 50 ff
mam wtedy taki sygnal:
2e 2e 00 00 40 50 ff ......@Pے

......@Pے po wyslaniu moim programem daje:
2e 2e 2e 2e 2e 2e 40 50 ff a to mi juz nie pasuje.

drugi przyklad:
wysylam ciag: 02 0f 1b
otrzymuje:
02 0f 1b ...
no a juz wiadomo ze jak wysle moim programem ... to bedzie 2e 2e 2e -> czyli nie to co powinno.




czesc programu ktorym ja to chce wyslac:

StrCopy(bufferout, query);
bufferout:=('......@P˙');
edit1.text:=bufferout;
flushfilebuffers(hcommdev);

w jaki sposob wrzucic do bufora taki ciag: 11 22 33 44 bezposrednio a nie za pomoca ascii?
Co i gdzie pozmieniac???
dzieki za zainteresowanie.

1988maciejt
-
-
Posty: 25
Rejestracja: 7 sty 2008, o 19:07
Lokalizacja: Koziegłowy WLKP
Kontaktowanie:

Postautor: 1988maciejt » 30 maja 2008, o 08:25

A ja używam do tego celu kontrolki Microsoft Comm Control obecnej w każdym Windowsie. Nie muszę się "zabawiać" w pisanie funkcji, czy procedur transmisji... Dużo prościej, i jak do tej pory nie napotkałem żadnych problemów odnośnie komunikacji szeregowej z własnymi układami mikroprocesorowymi.
Pozdrawiam!

GospoPL
-
-
Posty: 3
Rejestracja: 30 mar 2007, o 13:08
Lokalizacja: Edinburgh
Kontaktowanie:

Postautor: GospoPL » 31 maja 2008, o 19:25

Mialem problem poniewaz nikt nigdy i nigdzie nie powiedzial mi w jaki sposob wyslac wartosci hex, wiec blad lezal po stronie zapisu.
Nalezalo uzyc:

chr($ff)+chr($e0)+chr($e1)

i to wszystko.

Pozdrawiam!!

Wróć do „PLD/FPGA i inne zagadnienia techniki cyfrowej”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości