Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mit Delphi Strings/Bytes über RS232 senden. (https://www.delphipraxis.net/155678-mit-delphi-strings-bytes-ueber-rs232-senden.html)

Muellermilchtrinker 3. Nov 2010 17:10

Mit Delphi Strings/Bytes über RS232 senden.
 
So, es wissen ja alle, dass ich einen LED Cube gebaut hab und gerade an der RS232 Ansteuerung bastel.
Ich warte so auf dem AVR auf einen Input:
Code:
Input "feld>",maf
input "muster>",portmuster
marray(maf) = binval
Alle Befehle könnt ihr hier genau nachschauen.
Im Terminal sieht das dann so aus:
Code:
feld>2
muster>&B00110011
Wie kann ich das nun mit Delphi senden. Bitte um Beispielcode.
Danke schonmal.

Assarbad 3. Nov 2010 20:21

AW: Mit Delphi Strings/Bytes über RS232 senden.
 
[DP]Daten über COM Port schicken[/DP] ... ?

Die guten alten Namen COM1...COMx aus DOS-Zeiten existieren auch unter Windows noch. Und wenn du die entsprechenden Rechte hast, lassen die sich wie andere Geräte auch mit MSDN-Library durchsuchenCreateFile öffnen, mit MSDN-Library durchsuchenReadFile lesen und mit MSDN-Library durchsuchenWriteFile schreiben. Diverse andere Operationen und die Verfügbarkeit von asynchroner Funktionalität hängen vom Gerätetreiber ab. Die Beschreibung zum Thema Gerätenamen findet sich bei CreateFile (s.o.).

VMware koppelt beispielsweise MSDN-Library durchsuchenPipes auf dem Hostsystem mit den COM-Ports des Gastsystems, was die Gleichartigkeit nur unterstreicht. WinDbg kann man bspw. zwecks KM-Debugging so anbinden.

Zitat:

Zitat von Muellermilchtrinker (Beitrag 1059398)
Bitte um Beispielcode.

Beispielcode gibt's von mir nicht, denn den müßte ich auch erst zusammenschreiben. Und das ganz ohne COM-Port an meinem Rechner. Außerdem lernt man nur, wenn man's selber macht. Alles andere endet in Frickelei. Und ja, das gilt auch für Hobbyisten.

Assarbad 3. Nov 2010 20:23

AW: Mit Delphi Strings/Bytes über RS232 senden.
 
Übrigens Hier im Forum suchendaten com port schicken ... :roll:

mkinzler 3. Nov 2010 20:24

AW: Mit Delphi Strings/Bytes über RS232 senden.
 
Es gibt aber auch Delphi-like fertige Komponenten dafür
http://sourceforge.net/projects/tpapro/
http://sourceforge.net/projects/comport/

himitsu 3. Nov 2010 20:28

AW: Mit Delphi Strings/Bytes über RS232 senden.
 
Nur schonmal Vornweg, da du ja mit D2009 arbeitest und wenn du wirklich selber Strings verschicken willst.

Verwende AnsiString oder RawByteString.

CreateFile+ReadFile/WriteFile, AssignFile+ReadLn/WriteLn oder ein TStream auf 'COMx' (x = die Portnummer) loslassen.
Hierbei werden die aktuellen Einstellungen/Systemvorgaben des Systems verwendet (für Baudrate, Stopbits und Co.), für weitere Einstellung gibt es verschiedene APIs (welche ich jetzt nicht auswendig kenn), oder man verwendet doch fertige Fremdkomponenten.

Assarbad 3. Nov 2010 20:32

AW: Mit Delphi Strings/Bytes über RS232 senden.
 
Zitat:

Zitat von himitsu (Beitrag 1059498)
auf 'COMx' (x = die Portnummer) loslassen

Schon probiert? Mir deucht da fehlt noch der abschließende Doppelpunkt als Teil des Gerätenamens (wie auch bei Laufwerksbuchstaben). Oder?

himitsu 3. Nov 2010 21:23

AW: Mit Delphi Strings/Bytes über RS232 senden.
 
Nee, da gibt's keinen Doppelpunkt.
Das sind halt alte Überbleibsel aus den guten alten DOS-Zeiten.

Und genau darum kann man solche Namen unter Windows auch nicht als Dateinamen verwenden.
http://www.delphipraxis.net/15428-da...tml#post361923

Ich weiß allerdings nicht, wie es bei den UNC-Pfaden aussieht, also ob es da noch andere Varianten gibt.

Assarbad 3. Nov 2010 21:29

AW: Mit Delphi Strings/Bytes über RS232 senden.
 
Zitat:

Zitat von himitsu (Beitrag 1059512)
Nee, da gibt's keinen Doppelpunkt.
Das sind halt alte Überbleibsel aus den guten alten DOS-Zeiten.

Okay dann. '\\.\' sollte aber vorangehen (muß aber nicht bei Werten unterhalb COM10).

Ich hatte es mit WinCE verwechselt. Sorry.

himitsu 3. Nov 2010 22:44

AW: Mit Delphi Strings/Bytes über RS232 senden.
 
Zitat:

Zitat von Assarbad (Beitrag 1059515)
Ich hatte es mit WinCE verwechselt. Sorry.

macht nix *tröst*


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz