Название: Работа с COM портами в WINCE 5.0
Отправлено: Panukov от Май 04, 2009, 07:05
Возник следующий вопрос: каким образом организовать работу с реальным COM портом в WINCE 5.0. Библиотека qextserialport помогла при сборке проекта под Windiws и под Linux, но под WinCE собираться отказалась. Пишет: Error 1 error C3861: 'GetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 160 Error 2 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 175 Error 3 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 372 Error 4 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 381 Error 5 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 389 Error 6 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 445 Error 7 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 490 Error 8 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 501 Error 9 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 512 Error 10 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 523 Error 11 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 565 Error 12 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 576 Error 13 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 587 Error 14 error C3861: 'SetCommConfig': identifier not found c:\qextserialport\win_qextserialport.cpp 778
Есть ль какие-нибудь соображения на этот счет?
Название: Re: Работа с COM портами в WINCE 5.0
Отправлено: Panukov от Май 04, 2009, 12:29
Сам же и отвечу. Реализовал работу с COM портом с помощью стандартных API Windows. HANDLE hComm; LPTSTR lpszPortName = TEXT("COM1:"); hComm = CreateFile( lpszPortName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if (INVALID_HANDLE_VALUE == hComm) { printf("Unable to open the port"); return FALSE; }
DCB PortDCB; PortDCB.DCBlength = sizeof(DCB); GetCommState(hComm, &PortDCB); PortDCB.BaudRate = 115200;
if (FALSE == SetCommState(hComm, &PortDCB)) { printf("\n\nUnable to configure the serial port\n\n"); return FALSE; }
char * LlpBuffer = new char[6]; LlpBuffer[0] = 'A'; LlpBuffer[1] = 'T'; LlpBuffer[2] = 'I'; LlpBuffer[3] = 0x0d; LlpBuffer[4] = 0x0a; LlpBuffer[5] = 0x00; DWORD lpNumberOfBytesWritten;
WriteFile( hComm, LlpBuffer, 4, &lpNumberOfBytesWritten, NULL);
printf("\nSent %ld bytes\n -> %s\n\n", lpNumberOfBytesWritten, LlpBuffer);
DWORD lpNumberOfBytesRead; char* lpBuffer = new char[50];
Sleep(2000);
ReadFile( hComm, lpBuffer, 50, &lpNumberOfBytesRead, NULL);
|