Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Serielle Ein- und Ausgabe in Konsolenanwendung (https://www.delphipraxis.net/43615-serielle-ein-und-ausgabe-konsolenanwendung.html)

boozzz 6. Apr 2005 14:14


Serielle Ein- und Ausgabe in Konsolenanwendung
 
Hallo
ich habe mir bei ELV das IO 88 Board (RS-232) zugelegt und habe Schwierigkeiten mit der Ansteuerung in Delphi.
Ich möchte damit 8 Hubmagnete und 8 Sensoren über die 8 Ein-und Ausgänge des Boards ansprechen.
Ich habe in mein Borland Delphi 7 bereits die Komponente CPDrv für die serielle Schnittstelle integriert, aber ich arbeite in einer Konsolenanwendung!
Der beiliegenden Anleitung zu Folge lassen sich mit dem Befehl <STX>I<ETX> alle Eingänge abfragen. Kann ich diesen Befehl einfach ohne weiteres meinem Quelltext hinzufügen? Wenn die Eingänge dann abgefragt sind, wo werden Sie dann abgespeichert? Wie kann ich Sie in ein Array mit 8 Feldern ablegen? :coder:

Vielen Dank
schon mal

boozzz :hi:

UweR 6. Apr 2005 14:54

Re: Serielle Ein- und Ausgabe in Konsolenanwendung
 
Hallo boozzz,

CPDrv kenne ich nicht, kann dir speziell dazu also nichts sagen. Aber vielleicht helfen dir ein paar allgemeine Hinweise ja schon weiter.

Ob Konsolen-Applikation oder Desktop-Anwendung ist für die Verwendung der komponente eigentlich egal. Aber warum überhaupt Konsole?

Zitat:

Der beiliegenden Anleitung zu Folge lassen sich mit dem Befehl <STX>I<ETX> alle Eingänge abfragen. Kann ich diesen Befehl einfach ohne weiteres meinem Quelltext hinzufügen?
Die kannst du ganz einfach einfügen, man muß halt nur wissen was STX und ETX bedeuten. Da wirst du wohl mal in eine ASCII-Tabelle schauen müssen. Die wird dir dann aber sagen das ETX den Wert 2 und ETX den Wert 3 hat. Wenn du einen String versenden willst kannst du dir den mit
Delphi-Quellcode:
 sSend := char(02) + 'I' + char(03);
zusammenschrauben.

Zitat:

Wenn die Eingänge dann abgefragt sind, wo werden Sie dann abgespeichert? Wie kann ich Sie in ein Array mit 8 Feldern ablegen?
Das hängt natürlich vom zurückgegebenen Format ab. Da kann ich dir ohne Zusatzinfo auch nicht weiter helfen

shmia 6. Apr 2005 15:03

Re: Serielle Ein- und Ausgabe in Konsolenanwendung
 
Zitat:

Zitat von boozzz
ich habe mir bei ELV das IO 88 Board (RS-232) zugelegt und habe Schwierigkeiten mit der Ansteuerung in Delphi.
Ich möchte damit 8 Hubmagnete und 8 Sensoren über die 8 Ein-und Ausgänge des Boards ansprechen.
Ich habe in mein Borland Delphi 7 bereits die Komponente CPDrv für die serielle Schnittstelle integriert, aber ich arbeite in einer Konsolenanwendung!
Der beiliegenden Anleitung zu Folge lassen sich mit dem Befehl <STX>I<ETX> alle Eingänge abfragen. Kann ich diesen Befehl einfach ohne weiteres meinem Quelltext hinzufügen? Wenn die Eingänge dann abgefragt sind, wo werden Sie dann abgespeichert? Wie kann ich Sie in ein Array mit 8 Feldern ablegen? :coder:

Ich würde als erstes eine neue Klasse namens TIO88Board erstellen.
Delphi-Quellcode:
TIO88Board = class(TPersistent)
public
   // die Eingänge als Readonly Property
   property InputValue:Word read GetInputValue;

   // die Ausgänge
   property OutputValue:Word read FOutputValue write SetOutputValue;

   property SerialComponent:TCPDrv read FSerialComponent write FSerialComponent;
end;
Der ganze Zugriff auf die Serielle Schnittstelle wird in TIO88Board gekaspselt.
(unter zu Hilfename von CPDrv)
Für InputValue und OutputValue habe ich mal den Datentyp Word verwendet, falls du mal 16 Ein- und Ausgänge hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 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