ERLEDIGT
NEIN
NEIN
ANTWORTEN
53
53
ZUGRIFFE
55413
55413
EMPFEHLEN
-
23.02.04 18:05 #1MCBSP Tutorials.de Gastzugang
Hi
hab zwar durch die Suche Funktion etwas zum Thema Serielle Schnittstelle gefunden, hab aber mein Programm nicht zum laufen bekommen.
Deshalb wollte ich nochmals nachfragen,ob mir jemand weiterhelfen kann. Ich würde gerne Daten über die Serielle Schnittstelle einlesen und auslesen.
Entwiclungsumgebung: Visual C++ 6.0
Windows XP
Wer kann mir ein Beispiel schicken das funktioniert oder eine gute Homepage empfehlen auf der man Infos zum Thema bekommt.
-
23.03.04 03:27 #2
- Registriert seit
- Mar 2004
- Beiträge
- 2
Ich will dich ja nicht entmutigen, aber scheinbar ist etwas so triviales
wie serielle Kommunikation in C++ nicht vorgesehen.
Ich suche schon länger nach einer einfachen Möglichkeit ein simples "A" über
einen Com Port, seriell zu senden. Wobei der Char im Grunde keine Rolle spielt.
Könnt auch ein X sein
Das Signal triggert nur ein Relais. In VB is das ne Lacher, aber in C++ irgendwie ein Riesenauftrag. Ich hätt Krankenpfleger werden solln...hehe
Naja, viel Glück beim Suchen..
cheers
Mac
-
23.03.04 08:18 #3
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
http://www.programmersheaven.com/zone3/cat411/
http://www.codeproject.com/system/cserialport.asp
http://www.codeguru.com/Cpp/I-N/netw...cle.php/c2503/
http://www.topshareware.com/Virtual-...nsfer-7715.htm
http://www.codeproject.com/system/listports.asp
Hier ist schon so oft nach Programmierung der seriellen Schnittstelle gefragt worden, und irgendwie scheint da keiner was drüber zu wissen. Das soll vorkommen - ich weiss auch nichts darüber. Deshalb habe ich mich mal hingesetzt, um ein paar Informationen zu sammeln und habe ein Viertelstündchen gegoogelt. Das da oben sind nur ein paar von den Links zu kostenlosen Lösungen zu dem Thema, die ich gefunden habe. Meine Suchbegriffe waren übrigens "serial programming c++" bzw. "serial port c++".
Dieser hilfreiche Kommentar hat mich ungemein angespornt.Naja, viel Glück beim Suchen..
Ist es so schwer, Google zu benutzen? Oder liegt es am Englisch?
Sorry, aber ich bin etwas genervt.Geändert von Kachelator (23.03.04 um 08:22 Uhr)
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
23.03.04 10:56 #4
- Registriert seit
- Mar 2004
- Beiträge
- 2
hmmm...
Vielen dank für deine Mühe. Die Links habe ich tatsächlich nicht gefunden.
Allerdings - wenn man ein Forum betreibt, oder eins besucht, sollte man damit
rechnen mit newbie fragen konfrontiert zu werden. Oder einfach mal mit nem Frust
post. Deshalb finde ich deinen Sarkasmus irgendwie etwas herablassend.
Es werden nicht alle Menschen mit bits&bytes im Blut geboren, und es soll auch
welche geben die nicht der grosse Experte im Umgang mit Suchmaschinen sind
und daher Hilfe in Foren wie diesem suchen.
Egal, nochmals vielen Dank für deine Hilfe
cheers
--- Mac ---
btw...ich habe zwei Jahre in England gelebt und vier in Südostasien mein Englisch ist ausgezeichnet.
Ok, mein Chinesisch ist schlecht, aber das hätte auch nicht geholfen, glaube ich.
-
23.03.04 12:36 #5
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Ich betreibe diese Forum nicht, auch wenn ich ziemlich aktiv bin. Und als sarkastisch habe ich meinen Post auch nicht empfunden *). Dass es Newbies gitb, die (teilweise dumm wirkende) Fragen haben, ist mir klar und das ist auch in Ordnung - sonst würde ich mir wohl kaum die Mühe machen, auf möglichst alle Fragen einzugehen. Ich finde es nur manchmal störend, dass sich manche Leute nicht einmal die Mühe machen, zu suchen.Allerdings - wenn man ein Forum betreibt, oder eins besucht, sollte man damit
rechnen mit newbie fragen konfrontiert zu werden. Oder einfach mal mit nem Frust
post. Deshalb finde ich deinen Sarkasmus irgendwie etwas herablassend
Übrigens fand ich gerade deinen ersten Post eher entmutigend, sonst hätte ich mich garnicht um das Thema bemüht. Serielle Schnittstellen haben nämlich ansonsten eigentlich recht wenig mit meiner Arbeit zu tun.
-----
*) "Dieser hilfreiche Kommentar" war schon sarkastisch, das gebe ich zu.Geändert von Kachelator (23.03.04 um 17:03 Uhr)
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
25.08.04 14:52 #6
- Registriert seit
- Aug 2004
- Beiträge
- 3
Hallo,
ich stehe vor dem selben Problem wie "Grünschnabel" damals.
Habe kaum C++ Erfahrung, aber schon viel in Delphi und sehr viel in LabVIEW programmiert und möchte nun was neues probieren: Über den Seriellen Port in C++ mit Geräten (z.B. 'nem Multimeter) kommunizieren.
Hab mich dann sofort daran gemacht, die links vom "Kachelator" zu nutzen.
Mein Problem nun:
Ich gehe nach Anleitung der jeweiligen Autoren vor, bekomme aber die Programme nicht zum laufen. (Ausser "listports")
So kommt mein MS Visual C++ 6.0 z.B. nicht mit dem Ausdruck "BOOL" klar, was ja auch logisch ist, denn es will ja ein "bool" haben. Das allein liefert mir bis zu 30 Fehlermeldungen beim Compilieren. Offensichtlich wurde der Source Code nicht mit MS VC++ geschrieben. oder? (Borland?) Wären dadurch diese Fehler zu erklären?
Die "BOOL"s durch "bool"s zu ersetzen wär ja nun nicht das Problem, hab ich ja auch gemacht, aber damit ist es nicht getan. Es gibt noch weitere Verständnisprobleme, so kennt mein Compiler den Bezeicher "HANDLE" nicht, auch nicht in klein und da gibt es viele mehr und ich stoße nun an meine Grenzen.
Hat jemand einen Tip oder *.zip für mich, der mir weiterhelfen könnte?
Speziell: Nutzt jemand MS VisC++ und dort die Serielle Kommunikation? Wie?
Besten Dank schonmal im voraus,
Stefan
-
Delphi ist ein gutes Stichwort. Was doch auch mal ganz nett ist, ist etwas Sprachenübergreifendes zu machen. Schreib doch dann einfach eine Delphi-Dll und arbeite damit in C++.
Mal ganz davon abgesehen, dass es sicher möglich ist, direkt in C++ eine serielle Schnittstelle zu programmieren (auch wenn ich selbst keine Ahnung davon habe
), geht es sicher noch über Assembler und irgendwelche Interruptaufrufe oder outp (was auch immer), den man ja unmittelbar in C++ verwenden kann.
Zu deinen Problemen, Milchbiss, bool ist ein eigener Datentyp, BOOL hingegen ist als int (oder so, jedenfalls ein Ganzzahltyp) in irgendeiner Header deklariert. Ist halt so nicht 100% kompatibel. Ähnliches gilt für HANDLE. Das Ding sollte in der windows.h auf jeden Fall deklariert sein, ansonsten ist das aber auch nur eine 32bit Variable, also ein (unsigned) int, kannst du dir also zur Not selbst noch als Definition drüberklatschen.
-
Äh, habe ich etwas falsch verstanden, oder warum sagen alle, dass es so kompliziert ist?
Einfach mit CreateFile die Datei "COM1" öffnen und man kann mit ReadFile/WriteFile rumorgeln.
Man sollte natürlich vorher mit SetCommState die Parameter wie z.Bsp. Baudrate setzen.
Es gibt seit 95/NT eine ganze Latte von Befehlen dafür.
In der MSDN der Titel "Communications Functions".
-
Das erlösende Wort
.
-
Hallo,
anbei eine kleine Klasse, die mit der seriellen Schnittstelle kommuniziert.
Funktioniert tadellos, getestet mit Visual C++ 6.0 unter Windows XP.
CSerial serial;
CString strText;
strText = "Hallo";
char *szMessage = (LPTSTR) (LPCSTR) sText;
char* lpBuffer = new char[50];
int bytesRead;
serial.SendData(szMessage, strlen(szMessage));
bytesRead = serial.ReadData(lpBuffer, 50);
Für Fragen stehe ich gerne zur Verfügung.
-
Hab im vorigen Beitrag im Source den Open vergessen.
serial.Open(1, 38400)
param1: port
param2: baud
-
31.08.04 20:57 #12
- Registriert seit
- Aug 2001
- Beiträge
- 1.411
Wunderbar!
Habs gleich mal ins VisualStudio & MFC Board verfrachet
-
01.09.04 13:37 #13
- Registriert seit
- Aug 2004
- Beiträge
- 3
Erstmal Danke an alle!
Dudadida hat mich auf meinen Fehler hingewiesen:
Habe vergessen, die windows.h einzubinden. Traute mich gar nicht, das zu schreiben, aber damit es nicht andern auch so geht, tu ich's.
Die Idee mit der Delphi dll is keine schlechte, ich behalte sie im Hinterkopf.
cFuchs hab Dank für die serial.zip
Ich habe sie folgendermaßen verwendet:
Neues Projekt, mit den Quellcodedateien
serial.cpp und folgender:
# include <afx.h>
# include <stdio.h>
# include <Serial.h>
void main()
{
CSerial serial;
CString strText;
strText = "Hallo";
char *szMessage = (LPTSTR) (LPCSTR) strText;
char* lpBuffer = new char[50];
int bytesRead;
serial.Open(1, 9600);
serial.SendData(szMessage, strlen(szMessage));
bytesRead = serial.ReadData(lpBuffer, 50);
}
Kompilieren klappt inzwischen prima!
0 Fehler, 0 Warnungen.
Aber beim Ausführen passiert folgendes:
--------------------Konfiguration: SerialComm - Win32 Debug--------------------
Linker-Vorgang läuft...
nafxcwd.lib(thrdcore.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __beginthreadex
Debug/SerialComm.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
SerialComm.exe - 3 Fehler, 0 Warnung(en)
Kannst du mir sagen, was das Problem ist und was ich machen kann?
Hab ich noch 'ne ?.h vergessen?
Vielen Dank und Beste Grüße,
Stefan
-
Hast du in den Programmoptionen eingestellt, dass du MFC benutzt?
-
01.09.04 15:50 #15
- Registriert seit
- Aug 2004
- Beiträge
- 3
Nein, hatte ich nicht, und das war's! Jetzt geht's.
Danke Dudadida und Danke nochmals allen Anderen!
Ähnliche Themen
-
[C#] Serielle-Schnittstelle
Von d-Stench im Forum .NET Web und KommunikationAntworten: 5Letzter Beitrag: 15.06.09, 20:34 -
Serielle Schnittstelle
Von Nino14 im Forum Visual Basic 6.0Antworten: 7Letzter Beitrag: 06.02.08, 09:08 -
serielle Schnittstelle net!
Von mstank im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 22.01.05, 13:21 -
Serielle Schnittstelle mit Visual Studio
Von Annix im Forum VisualStudio & MFCAntworten: 4Letzter Beitrag: 02.03.04, 21:58 -
Serielle Schnittstelle
Von MaxMara im Forum PHPAntworten: 4Letzter Beitrag: 10.02.04, 21:33





Zitieren
Login






