С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В приложении - улучшенный вариант загрузчика Boot_NC-11_from_HX0.bin ( для загрузки образа NCsys54.DSK ), который теперь реализует тайм-ауты при приёме байтов, а также имеет защиту от "выбега из буфера" при ошибках сжатия.
При использовании этого загрузчика - потеря байтов из-за переполнения при приёме не может привести к "зависанию" протокола.
...
Нужно убедиться, что в сом0сом выключен Overrun и включена эмуляция скорости порта:
If sending port is CNCA0 and receiving port is CNCB0, then:
1. Launch the Setup Command Prompt shortcut.
2. Enter the change commands, for example:
command> change CNCB0 EmuOverrun=no
command> change CNCA0 EmuBR=yes
HX_Server 2.2 , загрузчик из последнего поста
сом0сом - выключен Overrun и включена эмуляция скорости порта, с сжатием
сом0сом - включен Overrun и включена эмуляция скорости порта, с сжатием
сом0сом - включен Overrun и включена эмуляция скорости порта, без сжатия
![]()
Решил переменить свое мнение http://zx-pk.ru/showpost.php?p=570159&postcount=394 , только поменять направление хода рассуждений Alex_K . Копаясь в исходниках UKNCBTL обратил внимание на то как происходит работа с буфером СОМ порта (или файлами через которые читает/пишет программа в СОМ порт), так вот в эмуляторе это делается одной функцией которая как я понимаю в один момент времени может или прочитать байт из буфера или передать байт в буфер, а как это реализовано в НХ сервере и в драйвере виндов. Ведь если в момент передачи(записи в буфер) надо еще и принять(прочитать из буфера), может что-то здесь.
---------- Post added at 19:48 ---------- Previous post was at 19:46 ----------
BaudRate = CBR_9600
fDtrControl = DTR_CONTROL_ENABLE
fRtsControl = RTS_CONTROL_HANDSHAKE
Parity = NOPARITY
StopBits = TWOSTOPBITS
ByteSize = 8
fParity = FALSE
fOutxCtsFlow = TRUE
fOutxDsrFlow = TRUE
fDsrSensitivity = FALSE
остальные не менял.
Вряд ли. Windows буферизует по 3К на приём и передачу, да и com0com, насколько понимаю - тоже буферизует.
Но дело тут явно в том, что при эмуляции 1801ВП1-065 успешно эмулируется оверран, но не получается эмуляция квитирования. В результате работа идёт так, как на реальной УКНЦ без квитирования.
Возможно, эмулятор УКНЦ не устанавливает в DCB
Код:fRtsControl = RTS_CONTROL_HANDSHAKE fOutxCtsFlow = TRUE
В моей версии устанавливает, все как в ini для НХ сервера, если не установить вообще не загружается.
вот оверран как раз не эмулируется это возложено на стандартную обработку виндами. Точнее эмулируется но до него событие переполнения раньше обработает драйвер виндовс.
а вот это можно попробовать сделать, но опять же упремся в буфер и драйвер виндовс.
Если я правильно использую терминологию, то 1801ВП1-065 работает в асинхронном режиме а вот как работает COM порт или драйвер. Судя по тому что я наблюдаю в нижней части окна НХ сервера при работе со сжатием в момент приема эмулятором он также может отправить какое-то кол-во байт, а при работе без сжатия прием и предача чередуются.
Последний раз редактировалось Vamos; 23.01.2013 в 23:26.
Patron, для проверки версии Alex_K добавьте в загрузчик проверку на переполнение 12 бит регистра 176570 / 010000 и посмотрим
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)