- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 8 von 8

Thema: über Com Port mit c++ Transponder ansteuern

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2005
    Beiträge
    5

    über Com Port mit c++ Transponder ansteuern

    Anzeige

    Powerstation Test
    Hallo,

    ich hab einen TransponderReader von Tectus über die Seirelle Schnittstelle angeschlossen.
    Ich will ihn nu vom ihm die Daten ablesen die Daten will ich dan in c++ verarbeiten jetzt mach das ganze über das MSCOMM Modul von Mircosoft.
    Das initialisieren des Ports funktioniert. Jetzt hab ich aber das Problem, das das lesen nicht so richtig will ich will den dauerhaft lesen also immer die ID des Transponders in einem Array speicher, doch hängt sich das Programm immer auf wenn ich lese
    Code:
    if (INVALID_HANDLE_VALUE == hCom)
    	{
    		Memo1->Lines->Add("Fehler - ");
                    }
    
    char InString[COM_BUFFER_SIZE + 1];
        DWORD dwRead = 0;
        ReadFile (hCom, &InString, sizeof (InString), &dwRead, NULL);
        if (dwRead != 0){
    
            InString[dwRead] = '0';
            Memo1->Lines->Add(InString);
    
        }
    bei

    Code:
        ReadFile (hCom, &InString, sizeof (InString), &dwRead, NULL);
    also jetzt weiß ich nciht ist das ein Hardware Problem oder ein Softwar Problem?
    Kann das sein das ich irgendwie mit den Falschen werten initialisiere oder so ?

    Werte:

    Code:
        dcb.BaudRate = CBR_9600;   
        dcb.ByteSize = 8;  
        dcb.Parity = NOPARITY;
        dcb.StopBits = ONESTOPBIT;
    Viellecht kann mir auch jemand sagen was überhapt die Stopbits sind der rest müsste stimmen ...

    Die Obrige Funktion zum lesen wird bei mir in einer whileschleife wiederholt bis sie durhc ein buttonclick geschlossen wird.

    Danke schon mal im vorraus

    MUKUMUKU

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.11.2004
    Ort
    München
    Alter
    37
    Beiträge
    447
    Hi,
    Ich denke das muss ReadFile (hCom, InString, sizeof (InString), &dwRead, NULL); sein.
    Den Rest hab ich mir jetzt nich durchgelesen....
    MfG Alex

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.11.2004
    Ort
    München
    Alter
    37
    Beiträge
    447
    ach und nochwas:
    sizeof(InString) gibt nicht das zurück was du willst.
    Da sollte COM_BUFFER_SIZE + 1 hin.
    ...

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2005
    Beiträge
    5
    leider hängt mein Programm immern noch
    aber was auch sehr komisch ist das es nur manchmal hängt wenn es die zeile passiert wird manchmal funktioniert es

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.11.2004
    Ort
    München
    Alter
    37
    Beiträge
    447
    Also so sollte es gehen:

    if (INVALID_HANDLE_VALUE == hCom)
    {
    Memo1->Lines->Add("Fehler - ");
    }
    char InString[COM_BUFFER_SIZE + 1];
    DWORD dwRead = 0;
    ReadFile (hCom, InString, COM_BUFFER_SIZE, &dwRead, NULL);
    if (dwRead != 0){
    InString[dwRead] = '\0';
    Memo1->Lines->Add(InString);
    }

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2005
    Beiträge
    5
    ok danke ich versuchs mal

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2005
    Beiträge
    5
    Mein Programm schmiert immer noch ab wenn ich das Lesen in eine Schleife laufen lass dann ghet der rest de programms nicht mehr ich hab auch mal die Timeouts gesetzt das bringt weiter nichts

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2005
    Beiträge
    5
    danke hat sich erledigt das daurhafte abhören an dem Comport hat 100% pc auslastung gebrauicht hab die priorität herruntergesetzt. Dann hat meine GUI auchw ieder funktioniert .

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen