![]() |
ситуация следующая: стандартные запись запроса /чтение запроса - чтение ответа и т.д.
но вот какая особенность замечена для разных платформ - если читать побайтово из порта, допустим до наступления таймаута НЕ пользуясь TComStat для опредееления кол-ва байтов в буфере приема (СlearCoError(hadle,@stat, etc ... ), то в XP и 2000 при скане порта видно, что подсчет не производится но вот в 98 и МЕ ситуация как раз наоборот. т.е. если используется побайтовое чтение порта, то после каждого ReadFile(.. nToRead=1 ..) мы наблюдаем, что автоматом происходит подсчитывание оставшихся в приемнике байтов. спасибо Reesearch за столь многочисленные опыты http://www.carcd.ru/forum/public/sty...O_DIR#>/27.gif так вот пролема в том, что каждый подсчет это время, а по протоколу я не укладывают,т.е. все растягивается на кучу времени и рузельтат блок неотвечает. asm в хр нельзя и smport я не хочу пользовать .. как мне избавиться от такой по умолчанию работы порта в 98/ме? прилагаю скан с lgcomspy++ на хр(блок ответил) и на ме(блок неответил) |
Если пишешь на Delphi, то возьми TComPort компоненты
http://sourceforge.net/projects/comport/ и забудешь о всех проблемах. Wladi |
Цитата:
Delphi 7 (в базовой комплектации) отлично справляется с даной проблемой. Кстати, С++ от БОРЛАНДА тоже. |
Текущее время: 09:55. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot