Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

com порт

16K
13 сентября 2006 года
k_serg
11 / / 13.09.2006
написал следующее и через закоротку 2 и 3 контактов работаю(передача:1-й байт адрес, 2-й -количество переданных, далее данные. прием :читается 2 байта(чтобы получить количество переданных), далее чтение по одному до очистки буфера(было и сразу по количество переданных минус 2):
Код:
DCBCommport.Parity=MARKPARITY;
SetCommState(CommHandle,&DCBCommport);
WriteFile(CommHandle,Transmit_A,1,&KolByte,&Ovr_w);
DCBCommport.Parity=SPACEPARITY;
SetCommState(CommHandle,&DCBCommport);
WriteFile(CommHandle,Transmit,kol_pered-1,&KolByte,&Ovr_w);

ReadFile(CommHandle,Resive,2,&Kols,&Ovr_r);
DWORD dwait=WaitForSingleObject(Ovr_r.hEvent,Time_ojid);
switch (dwait)
{ case WAIT_OBJECT_0 :
{
...
do
{
ReadFile(CommHandle,Resive,1,&Kols,&Ovr_r);//читаем
...
}
while ( Kols > 0);
break;
}
case WAIT_TIMEOUT {...}
case WAIT_FAILED : {...}
}
ResetEvent(Ovr_r.hEvent);

это запускается по кнопке пока. а должно будет крутиться в потоке,поэтому отдельно чтение в поток нежелаткльно.
первый раз проходит. а далее уже после первой записи в Resive появляется сразу первый байт и далее происходит сдвижка массива, появление\пропадание первого байта.Что-то не так, помогите разобраться.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог