Hallo,
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:
Und hier noch Bilder der Ausgabe:
Wäre nett wenn uns jemand helfen könnte.
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:
#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:
![seriellxf7.th.jpg](/proxy.php?image=http%3A%2F%2Fimg114.imageshack.us%2Fimg114%2F9771%2Fseriellxf7.th.jpg&hash=f40cc5f2a4491e60e2cf369655613662)
Wäre nett wenn uns jemand helfen könnte.