Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


E-440, Read Write вопрос по примеру

Вы не вошли.

 Поиск | Регистрация | Вход 

Антон
27.03.2008 09:39:13
#1

Гость

E-440, Read Write вопрос по примеру

Будет ли корректно обрабатываться пример при количестве блоков =1?
Просто при этом в АЦП мы попадаем на считывание сразу последней порции данных, а там нет проверки(я так понимаю это ожидание завершения чтения):   
if(!WaitingForReadRequestCompleted(IoReq[RequestNumber^0x1].Overlapped)) break;

а есть только проверка такая:

if(WaitForSingleObject(ReadOv[RequestNumber^0x1].hEvent, IoReq[RequestNumber^0x1].TimeOut) == WAIT_TIMEOUT) ReadThreadErrorNumber = 0x3;

Объясните пожалуйста что делает проверка эта проверка? Смутно понимаю что ждёт завешения потока, по таймауту. Но вот не понимаю входит ли в эту проверку ожидание завершения чтения?

Спасибо.

27.03.2008 15:40:02
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,495

Re: E-440, Read Write вопрос по примеру

А что Вас смутило. Это просто две различные процедуры ожидания завершения ввода данных. Вполне законно использовать любую из них.

Антон
27.03.2008 16:54:32
#3

Гость

Re: E-440, Read Write вопрос по примеру

Ну я так понимаю таймаут мы выставляем руками, и он может быть больше, чем реальное время на считывание данных?

27.03.2008 18:47:04
#4

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,495

Re: E-440, Read Write вопрос по примеру

Именно так.

Антон
28.03.2008 07:03:04
#5

Гость

Re: E-440, Read Write вопрос по примеру

т.е. второе ожидание(WaitForSingleObject(ReadOv[RequestNumber^0x1].hEvent, IoReq[RequestNumber^0x1].TimeOut) может ждать дольше чем первое(WaitingForReadRequestCompleted(IoReq[RequestNumber^0x1].Overlapped)), тогда наверное полезнее ставить везде первую проверку, т.к. будет быстрее?

28.03.2008 17:54:04
#6

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,495

Re: E-440, Read Write вопрос по примеру

По быстроте реакции оба вида ожидания не будут иметь кардинального расхождения. Условно говоря, максимальная разница может составить порядка 20мс.