www.mikrocontroller.net

Forum: PC-Programmierung delphi --> RS232


Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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);

Autor: Arc Net (arc)
Datum:

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

Autor: Torsten (Gast)
Datum:

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

Autor: Weinga-Unity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Andreas Weschenfelder (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Outi Outlaw (outlaw)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: criuix (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: 6641 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gast (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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ß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.