Forum: PC-Programmierung delphi --> RS232


von Marcel (Gast)


Lesenswert?

Hallo,

ich möchte mit delphi einen string über die RS232-Schnittstelle senden.

Weiß jemand wie das geht?

Es wäre sehr nett, wenn mir jemand einen Codeschnipsel oder eine
Internetseite, auf der so etwas beschriebn ist, zuschicken könnte.


Marcel

: Gesperrt durch Moderator
von Tobi (Gast)


Lesenswert?

Hi Marcel,

entweder über fertige Komponenten, wie z.B. die Asyc-Tools oder über die 
API von Windows (hier Com1):

DeviceHandle := CreateFile('\\.\COM1',                    // name
                             GENERIC_READ or GENERIC_WRITE, // access 
attributes
                             0,                             // no 
sharing
                             nil,                           // no 
security
                             OPEN_EXISTING,                 // creation 
action
                             FILE_ATTRIBUTE_NORMAL,         // 
attributes
                             0);                            // no 
template

if DeviceHandle = INVALID_HANDLE_VALUE then exit; //Handle gültig??

//Dann daten schreiben
WriteFile(FHandle,TByteArray(Data)[DataIndex],WriteCount,BytesWritten,ni 
l);

von Arc N. (arc)


Lesenswert?

Wenn's eine Komponente mit Quelltext sein darf:
http://torry.net/pages.php?id=198
z.B. SerialNG, TCiaComPort, TComPort etc.

von Torsten (Gast)


Lesenswert?

Also ich kann die Komponente Serial NG empfehlen ^^ hab ich schon 
verwendet und geht eigentlich Problemlos.

von Weinga-Unity (Gast)


Lesenswert?


von Andreas W. (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite


Lesenswert?


von Felix (Gast)


Lesenswert?

Hallo,

Ich habe auch schon die o.g. TComPort library für einen RS232 RFID-Leser 
verwendet. Dabei musste ich allerdings nichts senden. Allerdings hat 
immer alles super funktioniert und senden kann man natürlich auch.

Grüße,
Felix

von Spess53 (Gast)


Lesenswert?

Hi

Mir ist vor kurzem die Zeitschrift 'Toolbox' 1/2008 in die Hände 
gekommen. Bei der Zeitschrift war eine DVD mit dem Inhalt der letzten 11 
Jahrgänge incl. Software ,Quelltexte, Tips und Tricks. Sehr viel Delphi 
dabei. Unter anderen eine sehr ausgefeilte Komponente 'TSerial' 
(ca.15000 Zeilen Quelltext).
Ansonsten z.B. nach 'CPORT', 'TComport32' suchen.

MfG Spess

von Outi O. (outlaw)


Lesenswert?

Ich würde auch über die API gehen, denn viele Module erlauben keine 
kommerzielle Nutzung oder sind dermaßen abgedreht, dass es schon wieder 
weh tut, zumal es sich dann auch um nix "eigenes" geht.

In Visual Basic 2008 Expression (kostenlos) ist übrigens ne 
Serialkomponente bereits integriert (wie wir ja alle wissen, ist in 
Turbodelphi und VS Expression kein Hinzufügen von Komponenten möglich, 
nur so als Tipp).

von Spess53 (Gast)


Lesenswert?

Hi

>wissen, ist in Turbodelphi und VS Expression kein Hinzufügen von Komponenten 
>möglich,...

Was aber kein Hinderungsgrund ist, andere Komponenten zu benutzen. 
Gerade nichtvisuelle Komponenten können problemlos genutzt werden. Man 
muss sie halt nur in der 'Create' des Hauptprogramms initialisieren.

MfG Spess

von criuix (Gast)


Lesenswert?

Hallo Leute,

Für die ganze Port Problematik hat Js. Payne ein erstklassiges Aktive X
geschrieben. ( www.jspayne.com ) das sollte alle Probleme beseitigen. Am
schönsten ist das es gleich mit allen Windows Versionen funktioniert.

von spess53 (Gast)


Lesenswert?

Hi

>Am schönsten ist das es gleich mit allen Windows Versionen funktioniert.

Warum auch nicht? Grundlegende API-Funktionen haben sich ..zig 
Windowsgenerationen nicht geändert.

>Ich würde auch über die API gehen, denn viele...

Mit ausreichenden API-Kenntnissen und genügend Enthusiasmus und Zeit ist 
es kein Problem eine eigene Komponente/OCX für diesen Zweck zu 
erstellen. Das Ergebnis wird dann irgendwo innerhalb der, mit Sicherheit 
über 100 existierenden, Varianten liegen. Die meisten davon 
unterscheiden sich hauptsächlich in den Namen der 
Eigenschaften/Methoden/Events, weniger in der Funktionalität. Aber man 
kann dann von sich behaupten, das Rad neu erfunden zu haben. Für private 
und nichtkommerzielle Anwendungen lohnt der Aufwand eigentlich nicht 
mehr. Für kommerzielle Anwendungen kann man entsprechende Komponenten 
käuflich erwerben

MfG Spess

von 6641 (Gast)


Lesenswert?

AktiveX, in die Tonne. Das ist das Schlimmste. Nimm das TPAPRO von oben. 
Verwende ich schon seit 10 Jahren, ist immer aktuell, immer kompatibel.

von gast (Gast)


Angehängte Dateien:

Lesenswert?

Einfach die Unit RS232 einbinden.

Dann beim Programmstart mit  OPENCOM('COM2: baud=19200 data=8 parity=N 
stop=1'); oder wie du es brauchst den Port aufmachen, mit CLOSECOM; beim 
Ende wieder zu.

Einen String sendest du ungefähr so:

var
i:integer;
text:String;
begin
for i:=0 to length(text)-1 do
begin
SendByte(text[i]);
end;

Also Sinngemäß so, das ist jetzt aus dem Kopf raus geschrieben.
Kann sein das du das Zeichen noch umwandeln musst mit ord() oder sowas:
SendByte(ord(text[i]));

Mit ReadByte; kannst du vom Port lesen, aber nur pollen. Events kann die 
DLL leider nicht

Gruß

Beitrag #5576476 wurde von einem Moderator gelöscht.
Beitrag #5576477 wurde von einem Moderator gelöscht.
Beitrag #5576478 wurde von einem Moderator gelöscht.
Beitrag #5580413 wurde von einem Moderator gelöscht.
Beitrag #5580414 wurde von einem Moderator gelöscht.
Beitrag #5580415 wurde von einem Moderator gelöscht.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.