kirya> if(signal == WAIT_TIMEOUT && counter>1 )
kirya> {
kirya> MessageBox(NULL,"Данные прочитаны","Успех",MB_OK);
kirya> counter=0;
kirya> }
У тебя команды устройству всегда имеют структуру. А ответы от устрийства? Сообщения обычно имеют структуру. Инигда они фиксированной длины, иногда нет. В последнем случае есть несколько вариантов:
1. сообщения начинаются и заканчиваются специальными символами, котрые внутри тела сообщения не могут встретится (они специально кодируются другим образом или в принципе не могит встретиться).
2. сообщение начинается специальным символом, может заканчиваться специалным символом, но имеет фиксированныи заголовок, где, в частности, есть длина переменной части.
Можно допустить, что передача данных идет потоком по байту (или по 16 битному слову, или по 32 битному, или по 16 байтов, ...) пока не закончится и молчание устройства говорит об окончании данных, но я отношу такой протокол к плохому дизайну.
Так вот, если есть признаки начала и окончания сообщения, то таймаут нужен только для определения ошибки (если заложено), а проверять надо на соответствие струцтуре сообщения и выдавать готовность чтения только после получения всего сообщения и проверки его на соответствие протоколу.
kirya> по этому условию я определяю что все данные считаны. При этом я имею большой массив данных, около 10кБ. Т.О внутри этого условия я могу сохранить принятые данные в файл, обработать их и построить график.
Да, можешь.Если таймаут единственный признак окончания сообщения.