Russian Qt Forum
Ноябрь 22, 2024, 18:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с COM портами в WINCE 5.0  (Прочитано 6175 раз)
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

Есть ль какие-нибудь соображения на этот счет?
Записан
Panukov
Гость
« Ответ #1 : Май 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);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.107 секунд. Запросов: 20.