powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тайматуы при работе с COM-портом
5 сообщений из 5, страница 1 из 1
Тайматуы при работе с COM-портом
    #35591591
TenkfM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.
Вкратце, меня интересует вот что.
Работаю с девайсом, через COM-порт.
При открытии порта, само собою выставляю таймауты, в том числе и чтения.
Код: plaintext
1.
2.
3.
4.
5.
COMMTIMEOUTS timeouts={ 0 };
timeouts.ReadIntervalTimeout          =  50 ;
timeouts.ReadTotalTimeoutMultiplier   =  10 ;
timeouts.ReadTotalTimeoutConstant     =  10 ;
timeouts.WriteTotalTimeoutConstant    =  0 ;
timeouts.WriteTotalTimeoutMultiplier  =  0 ;
Вопрос: Как узнать, процедура чтения (ReadFile) закончилась по таймауту, или же успешной вычиткой?

Заранее, спс.

----------------------------------------------
«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» (с)
...
Рейтинг: 0 / 0
Тайматуы при работе с COM-портом
    #35591599
Микросекунда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TenkfM пишет:

T> Вопрос: Как узнать, процедура чтения (ReadFile)
T> закончилась по таймауту, или же успешной вычиткой?

По количеству принятых байт ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Тайматуы при работе с COM-портом
    #35591614
TenkfM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МикросекундаTenkfM пишет:

T> Вопрос: Как узнать, процедура чтения (ReadFile)
T> закончилась по таймауту, или же успешной вычиткой?

По количеству принятых байт ?
Posted via ActualForum NNTP Server 1.4

Сначала так и думал делать, но буфер девайса не чиститься.
Уточню, работаю со сканером штрих-кода, Спецификации не нашел, но подозреваю, что чистить буфер программно невозможно.
...
Рейтинг: 0 / 0
Тайматуы при работе с COM-портом
    #35591618
TenkfM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иными словами, при первом чтении такой вариант прокатывает, но в дальнейшем ...


----------------------------------------------
«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» (с)
...
Рейтинг: 0 / 0
Тайматуы при работе с COM-портом
    #35591962
clihlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если входной буфер не пуст то как операция чтения может завершится по таймауту?
Поидее если буфер не пуст функция чтения "возвращает" содержимое буфера немедленно.

PS Мож я чего и не допонимаю
PPS У меня вродь успешно работал следующий код.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DWORD CCommPort::Read ( BYTE *Buf , DWORD dwLen )
{
   DWORD dwReaded =  0 ;
   if( ! ReadFile( hComm,Buf, dwLen, &dwReaded , NULL ) || dwReaded < dwLen )
   {
	   if ( dwReaded < dwLen )
		   throw new CCommException( false, ERR_TIMEOUT, "Ошибка принятия данных: \nТаймаут истек." );	  
	   else
		   throw new CCommException( true ,ERR_COMM, "Ошибка принятия данных: \n" );
   }
   return dwReaded;

}
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тайматуы при работе с COM-портом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]