Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.28;
Скачать: CL | DM;

Вниз

Опять...Первый COM комом...   Найти похожие ветки 

 
tovSuhov ©   (2003-05-23 14:25) [0]

Ух... Прмерчик взял из сети для работы с COM портом. А он не робит.
На попытку записать данные в ком выдает ошибку "неверный дескриптор"
Текст на С++ (под С++ Builder), но , думаю, довольно понятен.
[code]
TDCB mDCB;
HANDLE hCOM=CreateFile("COM1",GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hCOM!=INVALID_HANDLE_VALUE)
{
Panel1->Caption = "COM1 is open OK!";
char buffer[30];
memset(buffer,0,sizeof(buffer));
strcpy(buffer,"SAVE TO COM1");
DWORD nb = strlen(buffer);
OVERLAPPED ov;
GetCommState(hCOM,&mDCB);
mDCB.BaudRate=CBR_9600;
mDCB.Parity=NOPARITY;
mDCB.ByteSize=8;
mDCB.StopBits = ONESTOPBIT;
mDCB.EvtChar= "\r";
SetCommState(hCOM,&mDCB);
WriteFile(hCOM,buffer,nb,&nb,&ov);
ShowMessage(SysErrorMessage(GetLastError()));
// вот тут GetLastError = 6, а до этого все нормально
CloseHandle(hCOM);
}
else Panel1->Caption ="Error Open COM1";
[/code]

Сегодня первый день с КОМами работаю, может что упустил?


 
MBo ©   (2003-05-23 14:27) [1]

В Статьи загляни. Там 3 штуки о компорте


 
clickmaker ©   (2003-05-23 14:33) [2]

Ну, во-первых, раз уж подсовываешь OVERLAPPED, то открывать файл надо с флажком FILE_FLAG_OVERLAPPED.
И потом, как же ты запустил асинхронный процесс и тут же говоришь CloseHandle? Да еще тут же хочешь результат получить от GetLastError... Дождаться надо, когда он хоть что-то запишет... Либо писать без Overlapped.


 
tovSuhov ©   (2003-05-23 14:34) [3]

Глядел. На их основе и писал. Логика ясна, неясно где ошибки реализации...


 
tovSuhov ©   (2003-05-23 14:39) [4]

Точно, Overlapped... Огромное спасибо!


 
tovSuhov ©   (2003-05-23 14:42) [5]

Класс!!! Наконец-то оно работает!!! УРА!
Ребята, спасибо что вы есть!



Страницы: 1 вся ветка

Текущий архив: 2003.07.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
7-91923
Delphi5.01
2003-05-17 20:23
2003.07.28
Kak otlovit kolichestvo stranic poslanix na pechat!


14-91839
Вован
2003-07-10 19:28
2003.07.28
ВОЗМОЖНО ЛИ В ВИНДОВСЕ РИСОВАТЬ ПО ВСЕМУ ЭКРАНУ ПОВЕРХ ВСЕГО


3-91666
Солер
2003-07-05 10:39
2003.07.28
Как посчитать сумму в столбце?


14-91836
Hollywood
2003-07-10 19:10
2003.07.28
А как вообще зарегистрироваться на этом форуме?


8-91772
antonyan
2003-04-07 10:41
2003.07.28
Цвет точки (пиксела)