Daten aus Datenspeicher über COM1 auslesen
-
Hi
Ich muss daten über den Port COM1 aus einem Datenspeicher der Firma Völkel auslesen.
Ich habe es mit folgendem Code versucht:
HANDLE hCom; LPDCB lpDcb; hCom=CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,1,0,OPEN_EXISTING,1,NULL); if (hCom==INVALID_HANDLE_VALUE) { MessageBox("Invalid Handle Value For Communication Port.Program Fails!"); return ; } BYTE* Buffer; DWORD dwTimeout=1000; DWORD dwRead; DWORD dwResult; OVERLAPPED OL={0}; long BufferIndex=0; BOOL blContinue=TRUE; if(Buffer==NULL) { MessageBox(_T("Program Failed!Can Not Allocate Memory")); return; } OL.hEvent=CreateEvent(NULL, TRUE, FALSE, NULL); if (OL.hEvent ==NULL ) { MessageBox(_T("Program Failed!Can Not Create Event")); return ; } CFile bf; do { dwRead=ReadFile(hCom,Buffer,1, &dwRead, &OL);//m_BytesOfMemory if (dwRead==0) { if (GetLastError() != ERROR_IO_PENDING) dwRead=0 ; else { // Write is pending. dwResult = WaitForSingleObject(OL.hEvent, dwTimeout); switch(dwResult) { case WAIT_OBJECT_0: if (!GetOverlappedResult(hCom, &OL, &dwRead, FALSE)) dwRead=0 ; break; case WAIT_ABANDONED: dwRead=0 ; break; case WAIT_TIMEOUT: dwRead=0 ; break; default: dwRead=0 ; break; } } if (dwRead==0) blContinue=FALSE; else { BufferIndex+=dwRead; bf.Write(Buffer,dwRead); } } else { BufferIndex+=dwRead; bf.Write(Buffer,dwRead); } }while(blContinue); Sleep(700); CloseHandle(OL.hEvent); CloseHandle(hCom);
Die Verbindung ist in Ordnung! Es wird einfach nichts aus dem Speicher gelesen... (dwRead=0)
Kann mir jemand helfen?
Wie kann ich dann etwas in den Speicher schreiben?