Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Железо. Написание драйверов
Перезагрузить страницу Работа с Com портом. Windows не сбрасывает событие
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Shopot Shopot вне форума
Member
 
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.07.2005
По умолчанию Работа с Com портом. Windows не сбрасывает событие - 24.08.2005, 11:52

Я открываю порт для в/в так:

Код:
        Comm2 = CreateFile (cbComm2->Text.c_str(), GENERIC_WRITE | GENERIC_READ,
                0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);

        if (Comm2 == INVALID_HANDLE_VALUE)
        {
                ShowMessage("Ошибка открытия порта " + cbComm2->Text);
                return;
        }

        if (!SetCommMask(Comm2, EV_RXCHAR))
        {
                ShowMessage("Ошибка " + cbComm2->Text);
                CloseHandle(Comm2);
                return;
        }

        o2.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

        assert(o2.hEvent);

        t2 = CreateThread(NULL, 1024, funcComm2, Handle, 0, &t2_ID);

DWORD WINAPI funcComm2(LPVOID Param)
{
        DWORD EvMask1 = 0, NumRead; char Data;

        for (;;)
        {
                if (WaitCommEvent(Comm2, &EvMask1, &o2) == 0)
                {
                        if (EvMask1 & EV_RXCHAR)
                        {
                                ReadFile(Comm2, &Data, sizeof (char),
                                        &NumRead, &o2);
                                frmComm->mState2->Lines->Add(Data);
                        }
                }
        }
}
Но вот тут и проблема. Когда в другой порт записываю (нуль модемный кабель) допустим в COM1 "12345", то в COM2 появляется такое "12345555555555...". А мне надо только "12345". Подскажите пожалуйста что делать?
Ответить с цитированием
  (#2 (permalink)) Старый
Shadow_Replicant Shadow_Replicant вне форума
Member
 
Сообщений: 322
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 10.08.2005
По умолчанию Re: Работа с Com портом. Windows не сбрасывает событие. - 24.08.2005, 20:01

Цитата:
Originally posted by Shopot
[b]
Код:
DWORD WINAPI funcComm2(LPVOID Param)
{
        DWORD EvMask1 = 0, NumRead; char Data;

        for (;;)
        {
                if (WaitCommEvent(Comm2, &EvMask1, &o2) == 0)
                {
                        if (EvMask1 & EV_RXCHAR)
                        {
                                ReadFile(Comm2, &Data, sizeof (char),
                                        &NumRead, &o2);
                                frmComm->mState2->Lines->Add(Data);
                        }
                }
        }
}
Что-то я не понял , почему у тебя читает с порта, из ВинАпи :
BOOL WaitCommEvent(

HANDLE hFile, // handle of communications device
LPDWORD lpEvtMask, // address of variable for event that occurred
LPOVERLAPPED lpOverlapped, // address of overlapped structure
);
....
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Так что странное у тебя сравнение
Код:
if (WaitCommEvent(Comm2, &EvMask1, &o2) == 0)
З.Ы. Я с Ком-портом только один раз работал, так что не бейте сильно, если я не прав
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с Com-портом Денис2000 WinAPI 4 05.12.2010 20:26
Работа с портом в паскале Нарик Pascal 0 03.11.2010 23:12
Работа с последовательным портом myshansun Сетевое программирование 8 15.08.2009 00:26
Работа с USB портом в Builder 6 SafSerg C++ Builder 16 29.09.2008 15:30
Работа с COM-портом Dynamite Pascal 19 30.12.2007 12:02
Работа с LPT портом в режиме DMA CBR_R Assembler 7 12.10.2006 20:02
Работа с Com-портом Chelentano Железо. Написание драйверов 5 01.03.2006 20:09
Работа с параллельным портом Poker Visual C++ 10 20.10.2005 10:29
Работа с ком-портом matvey1981 С/С++ 1 20.09.2005 17:09
Работа с СОМ портом Supermario C++ Builder 8 07.07.2005 22:20
Работа с LPT-портом sag C++ Builder 1 05.08.2003 01:49
Работа с LPT портом подключение его в программный код Anonymous C++ Builder 4 15.06.2003 03:11



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов