tutorials.de Buch-Aktion 05/2012
Seite 1 von 4 1234 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
53
ZUGRIFFE
55413
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MCBSP 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.
     

  2. #2
    derforumregsuckt derforumregsuckt ist offline Grünschnabel
    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
     

  3. #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++".

    Naja, viel Glück beim Suchen..
    Dieser hilfreiche Kommentar hat mich ungemein angespornt.

    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."

  4. #4
    derforumregsuckt derforumregsuckt ist offline Grünschnabel
    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.
     

  5. #5
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    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
    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.

    Ü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."

  6. #6
    Milchbilch Milchbilch ist offline Grünschnabel
    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
     

  7. #7
    Registriert seit
    May 2004
    Beiträge
    287
    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.
     

  8. #8
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Ä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".
     

  9. #9
    Registriert seit
    May 2004
    Beiträge
    287
    Das erlösende Wort .
     

  10. #10
    cFuchs cFuchs ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    24
    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.
    Angehängte Dateien Angehängte Dateien
     

  11. #11
    cFuchs cFuchs ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    24
    Hab im vorigen Beitrag im Source den Open vergessen.



    serial.Open(1, 38400)

    param1: port
    param2: baud
     

  12. #12
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    Wunderbar!
    Habs gleich mal ins VisualStudio & MFC Board verfrachet
     

  13. #13
    Milchbilch Milchbilch ist offline Grünschnabel
    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
     

  14. #14
    Registriert seit
    May 2004
    Beiträge
    287
    Hast du in den Programmoptionen eingestellt, dass du MFC benutzt?
     

  15. #15
    Milchbilch Milchbilch ist offline Grünschnabel
    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

  1. [C#] Serielle-Schnittstelle
    Von d-Stench im Forum .NET Web und Kommunikation
    Antworten: 5
    Letzter Beitrag: 15.06.09, 20:34
  2. Serielle Schnittstelle
    Von Nino14 im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 06.02.08, 09:08
  3. serielle Schnittstelle net!
    Von mstank im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 22.01.05, 13:21
  4. Serielle Schnittstelle mit Visual Studio
    Von Annix im Forum VisualStudio & MFC
    Antworten: 4
    Letzter Beitrag: 02.03.04, 21:58
  5. Serielle Schnittstelle
    Von MaxMara im Forum PHP
    Antworten: 4
    Letzter Beitrag: 10.02.04, 21:33