![]() |
ComPort hex senden
Hallo,
bin wieder auf ein Problem gestoßen! wollte mit der comport komponente hex Zahlen senden und empfangen. dazu habe ich
Code:
geschriben.
comport.writestr('C1'); //C1 als hex Zahl gedacht - kann durch jede andere hex Zahl ersetzt werden.
Aber, die Anwendung -das Angeschlossene Gerät ist ohne belang- hat mir nur mist zurück geschickt. Frage ist jetzt, ob mit dem obigen code hex Zahlen senden kann? bitte um Antwort. Logh |
Re: ComPort hex senden
Welche Comport Komponente?
Für sowas kann ich TurboPower - Async Professional empfehlen... Bye |
Re: ComPort hex senden
Schon
Delphi-Quellcode:
probiert?
comport.writestr(chr($C1));
|
Re: ComPort hex senden
mit chr kann doch nur die 7 bit ascci version benutzen oder?
ich versuchs mal danke |
Re: ComPort hex senden
Hallo,
du musst dich entscheiden was du willst. Willst du Hex Zahle als ASCI runterschicken, dann ist dein Ansatz richtig, ansonsten der des letzten Beitrags. Nimm Asynchpro (sourceforge). Damit hast du keine Problem. Hast du Baudrate Parity.... überprüft und richtig eingestellt? Rainer |
Re: ComPort hex senden
Hallo logh,
nein, woher hast du den Quatsch, wenn deine serielle Schnittstelle auf 8 Bit steht geht das. Dann werden auch 8 Bit übertragen, das hat absolut nichts mit chr() zu tun. Rainer |
Re: ComPort hex senden
Hai Logh,
ersteinmal muss man sich über eine Begriffsdefinition klar sein ;-) Es gibt keine HEXzahlen. Genausowenig wie Binär / Oktal oder sonst etwas. HEX ist eine schreibweise für die natürlichen Zahlen. Jetzt kommt es darauf an was dein serielles Gerät von dir möchte? Es gibt welche die möchten ihre Befehle als HEX-Zeichenfolge bekommen. z.B. Einschalten -> C4 (Es musst also das Zeichen C und das Zeichen 4 gesendet werden. Dann gibt es wieder welche die möchten einfach nur ein Byte als Befehl haben. Einschalten -> C4 (Es muss ein Byte mit dem Wert 196 gesendet werden. |
Re: ComPort hex senden
Zitat:
Ansonsten kannst du zumindest mit Delphi ab Version 2 davon ausgehen, daß ein Zeichen immer 8Bit ist. Also wird $C1 korrekt übersetzt. |
Re: ComPort hex senden
die frage bleibt offen, denn wie übertrage ich mit comport ein byte?
und wie emppfange ich in hex? |
Re: ComPort hex senden
Es gibt kein "in Hex" Stephan (Sharky) hat doch wunderbar erklärt was hexadezimal bedeutet. Du mußt dir nun also klarwerden, was du schicken willst. Wenn das, was du oben schicken wolltest, ein Byte sein soll, dann mach die Umwandlung wie ich oben geschrieben habe. Ansonsten denk nochmal nach was genau du willst und wie du uns das beibringen willst. Aktuell basieren die Tips nämlich auf Rätselraten :zwinker:
|
Re: ComPort hex senden
Gut ich möcht ein Byte schicken, z.B. C1 oder E1,...
und empfnsgen möchte ich auch nur byteweise. |
Re: ComPort hex senden
Zitat:
Dabei mußt du beachten, daß du vom Wert ($C1, $E1 ...) in ein Zeichen konvertierst. Das geht so: chr($C1) Mehrere Zeichen in Kette ergeben sprichwörtlich einen String. Diesen kannst du dann schicken. Du schickst also chr($C1) und liest dann einen String aus. Und so weiter und so weiter ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz