Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » C++ Probs beim Auslesen serieller Schnittstelle » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen C++ Probs beim Auslesen serieller Schnittstelle
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Wiesel88
Grünschnabel


Dabei seit: 01.01.2008
Beiträge: 1

C++ Probs beim Auslesen serieller Schnittstelle Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Huhu!

Wir sollen für ein Schulprojekt einen an die Serielle Schnittstelle angeschlossenen
digitalen Messschieber mithilfe von C++ auslesen.
Leider bekommen wir mit unserem Quelltext zwar die richtigen Werte, doch manchmal wird die erste Ziffer des Ergebnisses abgeschnitten. Zusätzlich wird manchmal ein cout Befehl nicht ausgeführt der das Ganze als String anzeigen soll.
Wir verwenden MS Windows + Borland CBuilder 5 Professional.

Hier ist der Quelltext:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
#include <windows.h>
#include <iostream.h>
#include <string>

using namespace std;

int main (){

 HANDLE hCom;
 DWORD iBytesRead;
 DWORD dwEventMask;
 DCB   dcb;

  hCom = CreateFile ("COM1", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
  dcb.DCBlength = sizeof(DCB);  			// Laenge des Blockes MUSS gesetzt sein!
  GetCommState (hCom, &dcb);   		         	  // COM-Einstellungen holen und aendern
  dcb.BaudRate  = 9600;        				  // Baudrate
  dcb.ByteSize  = 8;          				  // Datenbits
  dcb.Parity    = NOPARITY;   			  // Parität
  dcb.StopBits  = ONESTOPBIT; 			  // Stopbits

  SetCommState (hCom, &dcb);   			 // COM-Einstellungen speichern

 if(!SetCommMask(hCom, EV_RXCHAR ))
    printf ("fehler SetCommmMask");
 if(WaitCommEvent(hCom, &dwEventMask, NULL))
 {
     char Data[14];
     char Byte=0;
     float Wert=0;
     DWORD dwBytesRecieved;



     for(int i=0; i<14; i++) {

      ReadFile (hCom,&Byte,sizeof (Byte), &dwBytesRecieved, NULL);
      Data[i] =Byte;
      }
        char Erg[7];
        for (int i=0;i<6;i++)
      {
        Erg[i] = Data[i+7];
        cout <<Erg[i]<<"\n";
      }
       Erg[6]=0;


      string s(Erg);

      cout <<"String: "<< s <<"\n";
     system("Pause");

 }
 
   CloseHandle(hCom); // COM1 schließen
   return (0);
}


Und hier noch Bilder der Ausgabe:

http://img114.imageshack.us/img114/9771/seriellxf7.jpg

Wäre nett wenn uns jemand helfen könnte. Tanzen

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Wiesel88: 03.06.2008 16:19.

03.06.2008 15:50 Wiesel88 ist offline E-Mail an Wiesel88 senden Beiträge von Wiesel88 suchen Nehmen Sie Wiesel88 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » C++ Probs beim Auslesen serieller Schnittstelle