RS232 Delphi WinXP

Hallo, Ich möchte unter WinXP und Delphi auf die RS232 Schnittstelle zugeifen. Meine bisherige Komponente funktioniert leider nicht mehr. Kennt jemand von euch INet Seiten zu dem Thema oder eine fertige bezahlbare Komponente ?

Tschau Mathias

Reply to
Mathias Schneider
Loading thread data ...

Mathias Schneider schrieb:

Public Domain:

formatting link

Funktioniert prima von Win95 bis XP, incl. Hardware-Handshake und USB/232-Adapter. (Ich habe die neue Version 3.0 aber noch nicht ausprobiert.)

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de
Reply to
Tilmann Reh

Hi!

Falsche NG, aber es gibt ne menge freie Komponenten unter

formatting link

mfg Jan

Reply to
Jan Stumpf

Mathias Schneider schrieb:

Hallo,

sehr gut funktioniert die DLL von Burkhard Kainka (34 KB):

formatting link

Delphi-Deklarationen der Funktionen sind in der ZIP-Datei enthalten.

Markus.

Reply to
Markus Koechy

Halo Mathias,

| Ich möchte unter WinXP und Delphi auf die RS232 Schnittstelle | zugeifen. Meine bisherige Komponente funktioniert leider nicht | mehr. | Kennt jemand von euch INet Seiten zu dem Thema oder eine | fertige bezahlbare Komponente ?

Ich hab mit der serial.dll von elektor gearbeitet. Für Dich als Delphi-Programmierer ist das sogar noch idealer, weil in der Elektor dazu (ist glaub ich sogar online) auch beschrieben wurde, wie dei DLL aufgebaut ist. Da der Quelltext in Delphi geschrieben ist solltest Du die API-Aufrufe auch direkt in Deinen Code einfügen können, dann brauchst Du gar keine externe Komponente dazu.

Gute Artikel hierzu: Elektor 3/2002 ab Seite 34 die serielle Schnittstelle mit API und genau 1 Jahr später auf der selben Seite Elektor 3/2002 ab Seite 34 die serielle Schnittstelle via DLL

Viel Erfolg

MArtin

P.S. soweit ich mich erinnere war die Beschreibung der DLL ein wenig fehlerbehaftet (oder ich habs falsch verstanden. Der Quellcode ist aber dabei, anhand dessen hab ichs dann kappiert, wie es geht.

Reply to
Martin Schönegg

Gehen die DOS-Interupts unter WinXP nicht mehr? (werden emuliert und dann weitergegeben oder haben die in Redmond die VM-geändert)

Ich hatte den Code mal vor längerer Zeit für ein DOS-Programm aus dem MS-DOS 3.0 Handbuch abgeschrieben. (und seit dem wundert es micht nicht mehr, dass Windows langsam ist, allein der ASM-Code in dem ein TSR eingebettet werden soll war riesig)

Ansonsten dürfte die RS232 (9-pol nicht voll belegt) in der Windows XP API Dateien (File) sein (selbst der USB-Port ist eine Datei). Mal in der Windows API blättern, da steht bestimmt ein Beispiel drin und mit Copy und Paste...

Die Daten sollte es in der Windows Platform SDK geben. (ich selber nehme lieber eine halbwegs aktuelle WIN32.hlp, evtl. wurde die bei Delphi mit auf die Festplatte überspielt)

Webseiten:

formatting link
formatting link
formatting link
msdn.microsoft.com

Grundregel: man kann beliebige dll's mit einbinden 1. Schritt DLL finden die man braucht 2. Schritt Funktionsnamen raussuchen 3. DLL einbinden. Wie man unter Delphi DLL's einbindet dürfte im Handbuch stehen. 4. DLL-Funktion aufrufen und aus den Stack die Werte die man braucht rausfischen. Variablen werden über den Stack übergeben. Delphi dürfte den 4. Schritt übernehmen, ansonsten die Rückgabevariable nach x Bit Teilen und y Bit rausnhemen und dann den Rest für gelöscht erklären (nur wenn einen der RAM ausgeht). 5. Manchmal wird nur der Speicherbereich übergeben, dann muss die Speicherstelle ausgelesen werden (by Reference).

--
A: Soll ich etwa den Rechtsweg gehen?
B: Wer streut den Rechtsweg im Winter?
Reply to
Stefan Engler

"Mathias Schneider" wrote in news:cm7ekj$1l2$ snipped-for-privacy@ns2.fe.internet.bosch.com:

synaser Ich habe mehrere Komponenten probiert, diese hier war die beste - obwohl es gar keine ist. Es ist "nur" eine Unit (class). Mit dll's morkel ich lieber nicht rum ;-).

M.

--
Bitte auf mwnews2@pentax.boerde.de antworten.
Reply to
Matthias Weingart

Martin Schönegg schrieb:

Die Elektor RS232-Version benutze ich auch schon länger. Läuft mit allen Windows Versionen. Allerdings hab ich ein kleines Problem damit. Die haben die RS232 Behandlung in einen Extra-Thread verlagert, angeblich damit das Hauptprogramm weiterlaufen kann, solange man (im anderen Thread) auf die Schnittstelle wartet. Wenn ich jedoch mitten in der Übertragung den RS232 Stecker abziehe bleibt das gesammte Programm stehen. Man kann es nicht mal korrekt beenden; nur noch abwürgen. Hast Du vielleicht rausgefunden woran das liegt. Ich habe lange erfolglos gesucht...

Gruß Andreas

Reply to
Andreas Fecht

Hallo Mathias,

probiers mal mit

Async Professional (APRO)

URL kann ich gerade nicht finden.

Ist non plus Ultra Lösung, gibts auch für Kylix

Gruss Jochen

Reply to
Jochen Rapp

Jochen Rapp schrieb:

Gibt's bei sourceforge, ist mittlerweile OpenSource, also für lau. Ist sehr umfangreich.

Alfred

Reply to
Alfred Gemsa

Hallo Andreas,

| Die haben die RS232 Behandlung in einen Extra-Thread verlagert, | angeblich damit das Hauptprogramm weiterlaufen kann, solange man (im | anderen Thread) auf die Schnittstelle wartet. | Wenn ich jedoch mitten in der Übertragung den RS232 Stecker abziehe | bleibt das gesammte Programm stehen.

Ich habe nie während einer Datenübertragung den Stecker abgezogen. Aber die Geschichte mit den Messages funktioniert bei mir schon gut, also das Hauptprogramm arbeitet Dinge ab, solange sich auf der Leitung nichts regt. Tut sich was, dann bekommt das Hauptprogramm das mit und reagiert entsprechend.

MArtin

Reply to
Martin Schönegg

Martin Schönegg schrieb:

Wenn ich den RS232 Thread aufrufe und dann nichts an der RS232 ankommt, steht das Programm. Was auch merkwürdig ist: Sobald ich das Fenster des Progamms auf dem Desktop verschiebe wird der RS232 Thread bei laufender Übertragung nicht mehr angesprungen. Ich habe dann einen Button definiert der den Thread anspringt, dann läufts wieder weiter. Softwareversion: Delphi 5.

Gruß Andreas

Reply to
Andreas Fecht

Hallo Andreas, | Wenn ich den RS232 Thread aufrufe und dann nichts an der RS232 ankommt, | steht das Programm.

Was sollte es sonst tun?

Typischerweise verwendest Du ja die Procedure CheckInputs um Abzuklähren, ob sich etwas am RS232Port geändert hatte. Wenn sich da nichts tut, dann brauchst Du da auch nichts abholen.

| Was auch merkwürdig ist: Sobald ich das Fenster des Progamms auf dem | Desktop verschiebe wird der RS232 Thread bei laufender | Übertragung nicht mehr angesprungen. Ich habe dann einen Button | definiert der den Thread anspringt, dann läufts wieder weiter. | Softwareversion: Delphi 5.

Mir scheint, da liegt ein Verständnisfehler vor, wie das Teil anzusprechen sei. BTW das Testprogramm, das beiliegt läuft bei mir auch nicht. Ich hab meine Routinen mit Purebasic geschrieben. Läuft im Dauereinsatz seit über einem Jahr problemlos.

MArtin

P.S. kannst mir ja mal den Quellcode schicken, vielleicht find ich die Zeit mir das anzuschauen.

Reply to
Martin Schönegg

Martin Schönegg schrieb:

Mein jetziges Programm ist ziemlich zugemüllt mit allem möglichen Kram, ich guck mal, ob ich noch 'ne einfachere Version finde und schicke sie Dir dann.

Gruß Andreas

Reply to
Andreas Fecht

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.