Цитата Сообщение от Keeper Посмотреть сообщение
а если попробовать такой алгоритм
Объективная реальность такова, что даже при самой высокой скорости в порту С2 - драйвер HX.SYS прекрасно справляется на синхронных участках. Проблемы возникают только тогда, когда нужно распаковать сильно упакованный пакет. Однако, благодаря особенностям протокола HX - драйвер узнаёт о "приближении распаковки" за два байта до того, как ему придётся плотно заняться делом.

В этот момент драйвер вполне может попробовать "инспирировать" снятие сигнала квитирования, но всё же в последний момент прочитать следующий байт из порта и не дать ему пропасть. Сервер же, зная, что сигнал квитирования приходит только перед "большим затыком" - тут же начнёт "цедить байты" по одному, пока драйвер не освободится от забот и не восстановит синхронный обмен.

Всё, что для этого нужно - научить драйвер HX.SYS вытаскивать байт из порта "за один бит до оверрана" - когда стоповый бит уже пришёл, а стартовый ещё не начался.

---------- Post added at 03:25 ---------- Previous post was at 03:22 ----------

Можно сделать ещё круче - ввести в протокол специальный "бросовый байт", приём (и последующий выброс) или пропадание которого можно распознавать по биту переполнения порта.

---------- Post added at 04:06 ---------- Previous post was at 03:25 ----------

А самое простое и правильное - вообще забыть про квитирование и ввести в протокол прекращение передачи байтов сервером после отправки сжатого блока - вплоть до получения от драйвера байта XON.

Таким образом можно будет на любой скорости работать с любым контроллером порта по обычной двухпроводной линии без сигналов квитирования..