Forum: PC-Programmierung RS232 Kommunikation unter Windows


von Thomas_v2.1 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
hier nun das Programm, das unter Windows über die serielle
Schnittstelle mit einem angeschlossenen Mikrocontroller kommuninziert.
Die Kommunikation geschieht über eine "Port.dll" die von Burkart
Kainka erstellt wurde. Da findet man auch weitere Funktionen und
Beschreibungen zu dieser .dll
http://www.b-kainka.de/download.htm

Mit dem Programm selber lassen sich über Checkboxen auf einem
Controllerboard angeschlossene LEDs an- und ausschalten, und außerdem
der Zustand angeschlossener Taster abfragen. Um dauernd abzufragen
müsste man einen separaten Thread starten - soweit bin ich aber noch
nicht :-(

Zu den im Archiv enthaltenen Programmen:
rs232.c - C-Programm das in das Controllerboard kommt (Philips
89C51RD2)
com.h - beinhaltet die Funktion ladeDLL() zum Laden der Port.dll
Unit1.cpp - eigentliches Hauptprogramm
ControllerRS232.exe - Kompiliertes und ausführbares Programm

Das Projekt habe ich mit dem Borland C++ Builder 5 erstellt.

Über Kommentare würde ich mich freuen, da dieses auch mein erstes
Windowsprogramm in C++ ist.

MfG
Thomas

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Thomas

das ist glaub ich nicht der Kommentar den Du Dir erhoffst:

Unser Firewall meldet VIRUS in Deiner .rar !!!!

Gerhard

von Thomas_v2.1 (Gast)


Lesenswert?

Hallo,

also ich habe mir die selber nochmal runtergeladen und konnte keinen
Virus finden. Welcher sollte es denn sein, wenn du eine Warnung
bekommst wird ja auch gesagt welcher Virus das sein soll. Ich habe das
mit eine frisch aktualisierten Norton AV 2002 gemacht, und es wurde
nichts gefunden. (Obwohl das natürlich auch kein absoluter Garant für
Virenfreiheit ist)
Vielleicht liegt es daran dass die kompilierte .exe Datei auch
drinsteckt, ansonsten werde ich die herausnehmen und nochmal posten.

Mehrere einzelne Textdateien lassen sich ja leider nicht zusammen
anhängen.

Thomas

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Thomas

ich habs nochmal versucht, aber unser Firewall bleibt bei seiner
Meinung und läßt den Download nicht zu.  Was er gefunden hat, sagt er
aber nicht. Nur: "Virus detected or file corrupted".


Gerhard

von Thorsten (Gast)


Angehängte Dateien:

Lesenswert?

Beim Start (unter WinXP) passiert das : <siehe Anhang>

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Thomas

(relative) Entwarnung:
ich hab in unserer DV-Abteilung nachgefragt:" Äh.. ich glaub, der kann
kein RAR entpacken..."

Sorry
Gerhard

von Thomas_v2.1 (Gast)


Angehängte Dateien:

Lesenswert?

Ok, dann halt nochmal als zip-File und nur der Quellcode ohne
ausführbare Datei und dll. Sollte normalerweise nix schiefgehen.

Thomas

von Thorsten (Gast)


Lesenswert?

Leider hab ich den Borland Compiler nicht. Kannst du das nicht einfach
so kompilieren, daß die DLL nicht benötigt wird ?

von Thomas_v2.1 (Gast)


Angehängte Dateien:

Lesenswert?

Habs mal probiert, konnte es jedoch mangels Rechner ohne Borland
Compiler gerade nicht testen.
Die exe-Datei hat sich dadurch natürlich auf 400Kb vergrößert. Die
Port.dll muss aber immer noch im gleichen Verzeichnis wie die
ausführbare Datei stehen, da ich, um diese statisch zu linken, das
Programm hätte abändern müssen.

von Thorsten (Gast)


Lesenswert?

Ein kleiner Tip: UPX benutzen (http://upx.sourceforge.net/). Das ist ein
Packer speziell für exe-Files, deine 400kB verkleinern sich dann auf
161kB und das File muß später nicht mehr entpackt werden.


Thorsten

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Thomas

ich habs aus Zeitgründen noch nicht ausprobiert, nur mal in die dateien
gekuckt. Eins ist mir dabei aufgefallen: In .h-dateien sollten nur
Definitionen stehen, kein Code. Aus com.h solltest Du den Code
rausholen und in ein - was weiß ich - com.c oder com.cpp packen.


Gerhard

von Gerhard Gunzelmann (Gast)


Lesenswert?

Nochwas

speziell für Delphi und Borland C++ Builder gibts für RS232 da noch
was:

http://www.winsoft.sk/comport.htm

Gruß
Gerhard

von Thorsten (Gast)


Lesenswert?

Ich war gerade auch mal auf der Seite. Welche Einschränkungen gibts denn
bei der Demoversion ? Ich konnte dort nichts finden.

Thorsten

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Thorsten

ich hab die Sowa schon getestet, funktioniert einwandfrei, es gibt beim
Starten des Programms nur ein fenster zum wegklicken. Wenn man damit
leben kann...


Gerhard

von Wolf4124 (Gast)


Lesenswert?

Hallo Thomas_v2.1
Wenn du denn ´Link zu der Internetseite mit dem Port-Treiber angibst
nehme ich an, das du ein Buch vom Autor gelesen hast.
Kannst du eins empfehlen?
Ich möchte mit einem Programm Daten aus der RS232 empfangen.

Gruß

von Rufus T. Firefly (Gast)


Lesenswert?

Die serielle Schnittstelle ist unter Windows eigentlich nicht so schwer
zu programmieren, daß man zu irgendwelchen Fremd-DLLs greifen müsste.
Gut, möglicherweise bereitet einem da Borlands Compiler (unnötige)
Probleme - keine Ahnung, ich verwende Borland-Compiler nicht mehr, seit
der Verarsche mit Borland C++ 4.0.

Beispiele & Sourcen für Compiler, die MFC-Sourcen übersetzen können,
finden sich unter www.codeproject.com; hier beispielsweise
http://www.codeproject.com/system/serial.asp

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Thomas

ich hab jetzt Dein programm ausprobiert. Bei mir läuft das aber nicht.
ich hab winxp, da gibts ne böse Fehlermeldung, wenn ich auf "COM
öffnen" drücke:

Windose meldet dann " ControllerRS232 raised exception class
EAccessViolation...." und "DLL kann nicht geladen werden". Das kommt
dann wohl von deinem Programm, hab nicht geschaut.

Läuft das nur unter einem bestimmten BS, oder muß man da noch ne DLL
irgendwohin schaufeln ?

Gerhard

von Thorsten (Gast)


Lesenswert?

Die Port.dll muß im gleichen Verzeichnis sein. Ich habs auch unter XP
probiert, funktioniert einwandfrei. Ist bei dir COM1 verfügbar ?

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo

klaro, hab den Borland auf meinem 2.rechner, hab vergessen das PORT.Dll
rüberzukoperen. jetzt läuft soweit. gut - hab nix dranhängen. bringt
zumindest keine Fehlermeldung


Gerhard

von Nando Specht (Gast)


Angehängte Dateien:

Lesenswert?

Zur Kommunikation nehme ich immer ASYNC32 von tmssoftware
(http://www.tmssoftware.com/).

Geht aber nur für Delphi und Borland Builder.
Das schöne dabei ist, dass es Freewarekomponenten sind und sie somit
keinen Einschränkungen unterliegen. Leider ist die Installation etwas
kompliziert und man benötigt dringend Englischkenntnisse.

von Thomas_v2.1 (Gast)


Lesenswert?

@Wolf4124:
also zu dem Buch selber kann ich dir auch nicht viel sagen. Ich habe
mir das mal in der Buchhandlung angesehen, fand es vom Thema eigentlich
sehr interessant wie viele seiner Bücher. Leider benutzt er als
Programmiersprache größtenteils irgendein Basic, oder mal
Delphi/Pascal.
Da ich irgendwie auf Basic keine Lust mehr habe (irgendwie musste man
auf den Homecomputern von Atari800XL, Schneider CPC oder Atari ST immer
umlernen, und das hat sich soweit ich das sehe heute noch nicht
geändert, da es da einfach keinen Standard gibt).
Deswegen wollte ich mich mehr auf C/C++ konzentrieren, da ich das
Gelernte dann fast überall einsetzen kann, sei es auf Controller-
Windows- oder Linuxsystemen.

von Nando Specht (Gast)


Angehängte Dateien:

Lesenswert?

Auf der tmssoftware gibts noch ein paar Demo-Beispiele, ich hab sie mal
angehangen.

Man kann natürlich mit diesen Komponenten noch viel mehr tun, z.B.
Terminal- und Modememulation, etc. Zum Ansprechen der Seriellen
Schnittstelle des PC oder mit USB-Serial-Adaptern hab ich sehr gute
Erfahrungen gemacht. Zumindest erspart es das Einbinden von dll's.

von eugen d (Gast)


Lesenswert?

wieso benuzt ihr nicht die win32 api funktionen zum kommunizieren über
rs232 ich hab es mir auch wesentlich schwieriger vorgestellt einfach
mit CreateFile port öffnen und mit writefile oder readfile lesen oder
schreiben auf die ports
greez eugen d

von Alex (Gast)


Lesenswert?

@Eugen

Kannst du nicht einfach mal ein kleines Beispiel posten, in dem die
Verwendung der von der erwähnten Funktionen demonstriert wird?
Ich habe auch schon in diversen Foren versucht, "die Lösung" für mich
zu finden, allerdings kommen häufig nur sehr schwammige Aussagen als
Antwort. So weiss man nie, ob der Antwortende es überhaupt schon einmal
selbst gemacht hat, oder einfach nur von ihm erworbenes Halbwissen
weitergibt.

Gruß Alex

von eugen d (Gast)


Lesenswert?

jo mach ich kann aber etwas dauern, ich bin grad im stress wegen bund
und so :-\ aber ich habe hart um dieses wissen gekämpft und möchte es
gerne verbreiten ;-)*gg
greez eugen  etwa in 2-3 tagen poste ich es hier

von eugen d (Gast)


Angehängte Dateien:

Lesenswert?

hier iss nun die beschreibung wie man comports mit winapi öffnen kann,
ich habe es so geschrieben, wie ich es brauchte um es zu kapieren also
es iss  das erste "tut" von mir

zur ergänzung sollte man ( generell für windowsprogrammierung nötig)
die winapi referenz saugen da sind dann auch deteils drinn die ich nur
angedeutet hab
ftp://ftp.cs.virginia.edu/pub/lcc-win32/win32hlp.exe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.