serielle schnittstelle und c++



  • hat jemand ahnung wo ich mich am besten zu dem thema serielle schnittstelle ansteuern via cpp belesen kann?

    es geht darum mit einem programm eproms mit daten zu beschreiben

    mfg chris



  • Mit Hilfe der Suchfunktion im Board und mit Google.

    Da wirst Du dann finden, daß C++ gar keine serielle (parallele) Schnittstelle ansteuern kann. Aber das wußtest Du als C++-Kenner und -Könner ja schon vorher. War also nur eine Testfrage an die User und Admins dieses Forums.

    Stell' Deine Frage noch mal.

    Blackbird





  • Blackbird schrieb:

    Mit Hilfe der Suchfunktion im Board und mit Google.

    Da wirst Du dann finden, daß C++ gar keine serielle (parallele) Schnittstelle ansteuern kann. Aber das wußtest Du als C++-Kenner und -Könner ja schon vorher. War also nur eine Testfrage an die User und Admins dieses Forums.

    Stell' Deine Frage noch mal.

    Blackbird

    gott wie witzig.
    1. die suchfunktion ist nicht aktiv(dass müsstest auch du wissen, wenn du sie jemals hättest verwenden wollen)
    2.
    was soll bitteschön dieser Satz?

    Aber das wußtest Du als C++-Kenner und -Könner ja schon vorher
    

    spricht man so mit einem User, der ne frage stellt?
    3. wie du an den über mir geposteten links sehen kannst, kann man in c++ doch mit einer seriellen schnittstelle arbeiten, halt nur unter der winapi.



  • Yo, man sollte einfach das ganze besser formulieren: Die C++ Standard-Lib bietet keine Schnittstelle für den seriellen Port. Weiß nicht warum alle immer sagen, das es C++ nicht kann. Wenns danach geht, kann C++ garnichts.



  • OK, tut mir leid. Da war ich wohl nicht so gut drauf.

    @Artchi: Genauer: Unter welchem Betriebssystem soll denn der Zugriff erfolgen? W95/W98 oder W32 oder linux? Alle können mit c programmiert werden aber jedes hat andere OS-eigene Libs zur Hardware-Ansteuerung.

    @otze: Der Sprachumfang von C++ ist nicht groß. Denn sollte jeder Anfänger zumindest irgendwo mal gesehen (nicht verstanden) haben. Und da findet sich nix mit Serial.

    Blackbird



  • es geht darum ein bestehendes dos programm auf windows 2000 zu portieren... bin noch ned sehr bewandert auf diesem gebiet und wollte darum um den rat erfahrener user bitten.. so kommentare wie: das geht ned! kannste dir klemmen, das es wohl geht zeigt das bestehende dos programm, nur das wie ist der aufhänger....

    danke erstmal an alle die bisher geholfen haben



  • Blackbird schrieb:

    @otze: Der Sprachumfang von C++ ist nicht groß. Denn sollte jeder Anfänger zumindest irgendwo mal gesehen (nicht verstanden) haben. Und da findet sich nix mit Serial.

    falsch, der sprachumfang con c++ ist gigantisch, nur der sprachumfang von standard C++ ist stark beschnitten. Got the difference?



  • otze schrieb:

    Blackbird schrieb:

    @otze: Der Sprachumfang von C++ ist nicht groß. Denn sollte jeder Anfänger zumindest irgendwo mal gesehen (nicht verstanden) haben. Und da findet sich nix mit Serial.

    falsch, der sprachumfang con c++ ist gigantisch, nur der sprachumfang von standard C++ ist stark beschnitten. Got the difference?

    ROFL.



  • otze! Der Sprachumfang von C++ ist sehr klein. Verstehen wir unter Sprachumfang nicht z.B. die Schlüsselwörter if, class usw.? C++ als Sprache kann nicht sehr viel, wird halt erst durch die Libraries mächtig. (ist aber bei Java auch nicht anders!) Und hier steht C++ sicherlich den anderen Sprachen in nichts nach. Man muß halt nur die passende Library "suchen", wenn man mehr als die Standard-Lib haben will.

    Wer eine serielle Schnittstelle ansteuern will, wird in der Std-Lib nicht fündig.

    Meiner Meinung nach gehören aber solche Dinge in den nächsten definierten Standard mit rein (also als StdLib-Teil meine ich). Wie die Implementierung aussieht, ist ja dann jeder Plattform oder Compilerhersteller selbst überlassen. Aber das werden wir wohl in hundert Jahren nicht erleben.

    An den orig. Fragesteller: du mußt für viele Dinge in C++ eine zus. Librarie suchen. Entweder google.de oder das Unterforum "Rund um die Programmierung" bemühen.



  • @chris`: Entschuldige bitte meine nervige Antwort. Deine Frage war ungenau, da hätte so ziemlich alles gepaßt.

    Altes DOS-Prog in W2K:
    Öffnen der Ser. Schnittstellen mit CreateFile (...)
    Schreiben mit WriteFile (...)
    Lesen mit ReadFile (...)
    Schließen mit CloseHandle (...).
    Weiter nützlich Funktionen:
    Setzen der Ausgänge mit EscapeCommFunction (...)
    Status der Eingänge abfragen mit WaitCommEvent (...) und SetComMask (...)
    Setzen der Porteigenschaften mit SetCommState (...)
    Abfragen der Porteigenschaften mit GetCommState (...)
    ...

    Was Du davon verwendest hängt ganz davon ab, was Du mit der Schnittstelle veranstalten willst. Soll sie unabhängig voneinander (ohne sich kurzzeitig zu blockieren) empfangen und senden können? Soll die ganze serielle Kommunikation im Hintergrund laufen? Nur senden oder nur empfangen?

    Wie Du siehst, ist ohne eine genauere Beschreibung noch nicht viel mehr möglich. Oder Du nimmst Dir Google und suchst nach Beispielcode, den Du dann anpassen mußt (oder auch nicht?).

    Blackbird



  • Artchi schrieb:

    Wer eine serielle Schnittstelle ansteuern will, wird in der Std-Lib nicht fündig.

    Meiner Meinung nach gehören aber solche Dinge in den nächsten definierten Standard mit rein (also als StdLib-Teil meine ich).

    Meiner Meinung nach nicht, denn nicht alle Plattformen, auf denen C++ eingesetzt werden kann, verfügen über eine serielle Schnittstelle. Da kann man gleich ein Interface zum Windows-Online-Update im Standard festhalten 🙄 .



  • aber alle verfügen über hardware ports mit denen man auch die serielle schnittstelle ansprechen kann. also müsste es doch eigentlich gehn ne?



  • muhkuhmasta schrieb:

    aber alle verfügen über hardware ports mit denen man auch die serielle schnittstelle ansprechen kann. also müsste es doch eigentlich gehn ne?

    zm einen: wirklich alle?(muss ich mich kundig machen)
    zum zweiten: was für ein aufwand..
    zum dritten: und wo bleibt die von stroustrup geforderte "schlankheit" des standards?



  • auf jeden fall alle ibm kompatiblen.

    kein größerer aufwand als unter dos, wenn man das alles hübsch kapselt

    besser ein fetter standard als os abhängige routinen würd ich mal sagen



  • anderer meinung 😉



  • Naja, selbst mein alter C64 hatte einen parallelen Port und eine serielle Schnittstelle. Und da die Library ja generig sein müsste, würde es selbst auf dem C64 laufen. Und selbst wenn kein Port verfügbar sein sollte, könnte man sich da was überlegen. Z.B. das eine Exception geworfen wird. Denn ganz ehrlich, wer sagt denn, das jede Plattfiorm ein Ausgabe- oder Eingabegerät hat? Oder was passiert, wenn ich auf solchen Systemen cout und cin nutzen will??? Ist doch das selbe Problem wie mit den Ports.



  • Hallo,
    für ANSI-C gibt es einen TR namens "C Extensions to support Embedded Processors"

    Ob das mal Standard wird ist soweit ich weiß aber noch nicht raus.



  • ich habe mir nun die header datei für die serielle schnittstelle besorgt, nur scheine ich es nicht hinzubekommen, diese zu verwenden. muss dazu sagen das ich auf diesem gebiet erst sehr wenig erfahrung habe, berichtigt mich falls ich nen falschen ansatz habe...

    hab jetzt erstmal ein neues objekt erstell:

    CSerial com;
    

    CSerial ist ja die Klasse für die Schnittstelle...
    Dann sollte doch eigentlich über

    com.Open(1,19600,8,NULL,0);
    

    die Schnittstelle mit den Parametern für Baud usw geöffnet werden und mit

    com.ReadData( buffer);
    

    das Gerät am Port ausgelesen, oder befinde ich mich bei diesem Denken auf dem Holzweg?

    am Port selbst hängt ein Programmiermodul und an diesem eine PM_B Karte



  • hast du in deinem Code:

    #include "headerdatei.h"
    

Log in to reply