Hallo Community, ich versuche gerade unter Windows XP einen com-port anzusteuern. Ich habe schon viele Themen durchgelesen aber die helfen mir leider wenig weiter. Ich habe sehr gute Kenntnisse in PHP und gut in C++. Jedoch was das Thema angeht ist das echt Neuland. Ich verwende den C++ Builder von Borland und habe schon einige Beispiele getestet, jedoch läuft keines weil der Compiler immer Fehler zurück gibt. In vielen Beispielen, kann man einen String übertragen wie "Hallo". Mir reicht es, wenn ich die 8 Pins mit 0 oder 1 belegen kann (01001011). Das ganze wollte ich als Konsolenanwendung machen, damit ich dieses unter cmd aufrufen kann. Das ich die Schnittstelle nicht direkt ansprechen kann ist klar. Im Inet habe ich gelesen, dass man Treiber einbinden soll. Wie soll das gehen? Dann ist in vielen Berichten die Rede von Timern...? Brauch ich das? Ich möchte ja keine Daten hintereinander versenden... Am Ende soll wenn ich das Programm öffne einfach nur am com1 ein dynamischer Wert anliegen. aufruf könnte etwa so aussehen: c:\send.exe -p 01001011 Ich möchte kein fertiges Programm, sondern etwas Hilfestellung weil bis jetzt bin ich bei 0%. Viele Grüße, xFight Ps: Bin bestimmt nicht der erste hier :-(
Dann schreib doch erstmal wie weit du schon gekommen bist. Ein Treiber liefert ja windows schon mit, du musst bloss die schnittstelle öffenen, die Übertragungsparameter einstellung und schon kannst du send. Die MSDN ist sehr ausführlich. http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx http://msdn.microsoft.com/en-us/library/aa363434(VS.85).aspx http://msdn.microsoft.com/en-us/library/aa363194(VS.85).aspx http://msdn.microsoft.com/en-us/library/aa365747(VS.85).aspx Das ganze ist die WindowsAPI, es gibt auch Bibliotheken die ganze sache ein wenig kapseln. Aber damit hatte ich nie gearebeitet.
> ich versuche gerade (...) einen com-port anzusteuern. > Mir reicht es, wenn ich die 8 Pins mit 0 oder 1 > belegen kann (01001011). Das kann so nicht gehen. Die serielle Schnittstelle hat nur drei Ausgangssignale: TxD, RTS und DTR. Die anderen Signale (RxD, CTS, DSR, DCD und RI) sind Eingänge.
Peter wrote: > Dann schreib doch erstmal wie weit du schon gekommen bist. Bin bis jetzt bei 0%, weil alles was ich versucht habe nicht funktioniert hat. > Ein Treiber liefert ja windows schon mit, du musst bloss die > schnittstelle öffenen, die Übertragungsparameter einstellung und schon > kannst du send. Und wie kann ich die Schnittstelle öffnen? > Die MSDN ist sehr ausführlich. > > http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx > http://msdn.microsoft.com/en-us/library/aa363434(VS.85).aspx > http://msdn.microsoft.com/en-us/library/aa363194(VS.85).aspx > http://msdn.microsoft.com/en-us/library/aa365747(VS.85).aspx Da blick ich nicht so genau durch... Für das Script benötige ich also diese Funktionen: CreateFile,SetCommConfig,... > Das ganze ist die WindowsAPI, es gibt auch Bibliotheken die ganze sache > ein wenig kapseln. Aber damit hatte ich nie gearebeitet. Kennt jemand so eine Bibliothek, die auch unter meinem Compiler läuft. Hatte schon eine getestet aber hat leider nicht gelaufen. > Das kann so nicht gehen. Die serielle Schnittstelle hat nur drei Ausgangssignale Man lernt immer dazu ;-) Danke für die Hilfe bis jetzt, xFight
> Da blick ich nicht so genau durch... > Für das Script benötige ich also diese Funktionen: > CreateFile,SetCommConfig,... ja, und die sind bei windows immer mit dabei. Die sollten sich aus jedem Compieler verwenden lassen.
2. Link bei Google http://www.tetraedre.com/advanced/serial.php Hab gesucht nach borland c++ comport Vlt. hilfts?
Also unter Linux brauch ich dafür kein Programm zu schreiben, das geht mit Bordmitteln (stty, echo und Gerätedateien) -- dann geht das unter Windoof bestimmt auch. Zumindest früher konnte man da auch auf COM schreiben :-)
> 2. Link bei Google > http://www.tetraedre.com/advanced/serial.php > > Hab gesucht nach borland c++ comport > > Vlt. hilfts? Vielen Dank für den Link. Damit kann ich meine LED, die ich zum testen angeschlossen habe, schön blinken lassen. Jedoch kann man damit Texte versenden und mir reicht es, wenn ich die Ausgänge auf 0 oder 1 setzen könnte. Ich habe auch schon weitergesucht und habe diese "Serial Port DLL" gefunden: http://kk.elektronik-4u.de/index.php?Sid=14 Mit dem Beispiel Programm, kann man die Ausgänge RTS und DTR auf 0 oder 1 setzen. > Ausgangssignale: TxD, RTS und DTR. Kann man den TxD nicht 0 oder 1 setzen? Und wie verwende ich diese Library unter C++? mfg, xFight
> Kann man den TxD nicht 0 oder 1 setzen?
Prinzipiell ja, nur widerspricht das komplett dem Sinn einer seriellen
Schnitstelle. Was Du machen möchtest, heißt MARK und SPACE.
Für Deinen Frickelansatz (sorry, anders kann ich Bit-Banging auf
PC-Schnittstellen nicht nennen) wäre die Parallelschnittstelle übrigens
etwas besser geeignet, allerdings bräuchstest Du dafür entweder eine
echte Parallelschnittstelle oder aber den
Selbstbau-USB-Paralleladapter von Henrik Haftmann. Andere
USB-Paralleladapter sind nur Druckerschnittstellen, Bitgefrickel
erlauben die nicht.
Danke für deine Antwort, jetzt weiß ich ich wieso man dazu extrem wenig im Inet findet ;-) Ich versuche es jetzt anders zu lösen, indem ich den LPT verwende. Dafür hab ich auch mehr Tutorials gefunden;-) Für mich hat sich das Thema erledigt. xFight
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.