Команды on-the-fly

Команды On-the-fly используются для изменения конфигурации последовательного порта DS по мере необходимости («на лету»). Конфигурация последовательного порта, заданная командами on-the-fly, переопределяет постоянную конфигурацию, заданную настройками последовательного порта DS. Отличие изменений через команды on-the-fly от изменений через настройки DS в том, что команды on-the-fly действуют сразу и не требуют перезагрузки DS, чтобы новые значения были приняты.

Если команды on-the-fly включены, последовательный порт DS всегда настроен так, как требует приложение на ПК, которое обменивается данными с этим DS через VSP. Когда приложение открывает VSP (или меняются некоторые параметры связи), приложение сообщает VSP о требуемых изменениях*, а VSP передаёт эту информацию в DS с помощью команд on-the-fly.

Кроме того, команды on-the-fly используются VSP для управления выходами RTS и DTR последовательного порта DS. Состояние входов CTS и DSR последовательного порта DS также может передаваться в VSP - это делается с помощью так называемых «уведомительных сообщений». Подробнее см. в разделе обработка сигналов RTS, CTS, DTR и DSR.

Выпадающий список On-the-fly commands содержит четыре варианта:

DisabledКоманды on-the-fly вообще не отправляются, поэтому последовательный порт DS использует «постоянную» конфигурацию, заданную настройками последовательного порта. В этом режиме не имеет значения, какие параметры порта заданы в прикладной программе на ПК, - DS о них знать не будет!
Out-of-bandКоманды on-the-fly включены и отправляются в виде команд out-of-band (UDP). Чтобы команды out-of-band on-the-fly принимались, настройка On-the-fly commands (RC) DS должна быть установлена в 1 (включено).
InbandКоманды on-the-fly включены и отправляются в виде команд inband (TCP). Чтобы команды on-the-fly принимались, настройка On-the-fly commands (RC) DS должна быть установлена в 1 (включено). Кроме того, перед тем как DS начнёт распознавать команды inband, нужно выполнить ещё некоторые настройки - см. подготовку DS к доступу inband.
Disabled (w FF esc.)Команды on-the-fly не отправляются, но VSP обрабатывает все входящие и исходящие данные так, будто используется режим inband (то есть удваивает все escape-символы (ASCII-код 255) в данных, отправляемых приложением, и ожидает, что все escape-символы будут удвоены в потоке данных от DS). См. режим disabled (with FF escape) у VSP.

В целом рекомендуется оставлять команды on-the-fly включёнными, если нет особых причин, мешающих этому. Включение команд on-the-fly поддерживает настройку последовательного порта DS «в синхронизации» с требованиями прикладного ПО, использующего VSP.

Выбор между режимами out-of-band и inband - рекомендации:

Команды out-of-band работают в большинстве случаев, особенно когда ПК (на котором работает VSP) и DS находятся в одном сегменте сети. Команды out-of-band могут работать плохо или не работать совсем для удалённых серверов устройств, находящихся за маршрутизаторами, межсетевыми экранами и т. п.* Причины следующие:

  • Маршрутизаторы известны тем, что «отбрасывают» UDP-датаграммы (на которых основаны команды on-the-fly out-of-band) при высокой сетевой нагрузке.
  • UDP-трафик запрещён межсетевыми экранами многих сетей (поэтому команды on-the-fly out-of-band в таких сетях не работают вообще). Чтобы команды on-the-fly out-of-band работали, ваша сеть должна разрешать UDP-трафик на порт 65535!

Если вы столкнулись с одной из описанных ситуаций, используйте команды on-the-fly inband или не используйте команды on-the-fly вообще!

Есть и другая причина, по которой команды out-of-band могут не подходить: когда команды on-the-fly должны быть синхронизированы с данными, отправляемыми VSP. Подробнее см. в разделе проблемы синхронизации.

Активность VSP, связанную с командами on-the-fly, лучше всего отслеживать с помощью Port Monitor: в нём журналируются все команды on-the-fly и результаты их выполнения. Подробности см. в следующем разделе.

* Это стандартное поведение для COM-портов Windows.

** Определение сетевого сегмента подразумевает, что между ПК и всеми остальными устройствами сегмента есть только сетевые концентраторы (хабы), а маршрутизаторов, мостов, межсетевых экранов и т. п. нет.

*** Это очень сложная тема. Современные маршрутизаторы предлагают огромное количество настроек, и подробное описание этого планируется в будущих технических документах Tibbo.