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);
} |