SendData



  • Hallo Allerseits
    Habe schon wieder eine Frage an euch.
    Über den Such Button habe ich nichts gefunden!

    Mein Problem ist folgendes:
    Ich sende Daten via Serielle Schnittstelle.
    Das sieht folgendermassen aus:

    int n=SendData("CI0",3);
    Memo1->Lines->Add("Written: "+IntToStr(n));
    

    Alles so gut soweit funktioniert, aber wie mache ich nach dem SendData("CI0...) ein ENTER Rein?

    Ich hoffe ich habe es genügend beschrieben

    Sonnige Grüsse aus der Schweiz
    Jürg Schweizer



  • Du willst einen Zeilenwechsel senden, sehe ich das richtig? Der wird in C(++) dargestellt als \n:

    int n=SendData("CI0\n",4);
    


  • Hallo
    Ja du hast das Richtig verstanden.
    Es müsste so aussehen:
    CI1 oder CI0 (spielt keine Rolle) und nach dem ein Enter.
    Also in einem Terminal muss ich das eingeben: CI1 und jetzt ein Enter.

    Nun muss ich das ganze auch in C++ machen, damit das Programm das, genau wie das Termial sendet auch sendet.

    Gruss
    Jürg Schweizer



  • Vielleicht habe ich im SendData einen Fehler.
    Hier den SenData-Teil:

    int SendData(char Data[], int n)
    {
      DWORD NumberOfBytesWritten;
      bool b = WriteFile(hComSend,Data,n,&NumberOfBytesWritten,0);
      if(!b)
        ShowLastError("WriteFile");
      return NumberOfBytesWritten;
    }
    

    Gruss
    Jürg Schweizer



  • Das steht doch dort oben - du mußt das Zeichen \n mitsenden (als Zeilenumbruch) - und natürlich mußt du es auch mitzählen, wenn du die Länge des zu sendenden Strings ermittelst ("C10\n" sind 4 Zeichen).

    (PS: Übrigens hat C++ die Funktion strlen(), die dir das Mitzählen abnehmen könnte)


Anmelden zum Antworten