Com Schnittstelle die 2te



  • Hallo zusammen,

    habe folgende Funktion um ein char über die serielle Schnittstelle zu schicken:

    int __fastcall COM_Rx(unsigned char *buf)
    {
    DWORD BytesRead;
    
    ReadFile(hComm, buf, NDWBYTESMAX, &BytesRead, NULL);
    return ((BytesRead<NDWBYTESMAX) ? BytesRead : -1);
    }
    

    Nun mein Problem. Habe in der betreffenden Funktion, welche diese als Unterfunktion aufruft einen char, der in diese Funktion übergeben werden soll. Aber irgentwie bekomme ich es nicht hin, 1. die chars zu selektieren, d.h. dass nur bestimmte chars gesendet werden können und wenn ein falscher Buchstaben geschickt wird es eine Fehlermeldung gibt und 2. ich versucht habe, den Buchstaben als unsigned char zu deklarieren, ihn aber nicht in die Com_rx übergeben kann.

    Kann mir da jemand helfen?

    Danke im Voraus

    schmiggy

    [edit="junix"]sfds[/edit]



  • dein COM_Rx erwartet ja auch einen Zeiger und keinen einzelnes zeichen.



  • Das mit dem Zeiger ist kein Problem. Das habe ich mittlerweile gelöst, dennoch komme ich mit dem oben genannten Problem nicht weiter.
    Habe es so versucht:

    int error = 0; 
    unsigned char cmd='S';
    
     try
      {
        COM_Tx(cmd);
        if (!COM_RxAsync(&r,1,2000))
          throw(0);
    
    }
      catch(const int n)
      {
        error = -1;
      }
    
      return error;
    }
    

    klappt aber auch nicht....

    [edit="junix"]sfds[/edit]



  • solange du keinen code zeigst (wie du die ganzen funktionen implementiert hast), kann dir sicherlich keiner helfen.

    was machen COM_Tx, COM_RxAsync? wo und wie rufst du COM_Rx auf?



  • 1. Irgendwie verstehe ich nicht was du mit 1 genau sagen willst
    2. sfds


Anmelden zum Antworten