Когда VSP отправляет команды on-the-fly

В этом разделе подробно описано, когда и какие команды on-the-fly VSP отправляет DS.

В определённые моменты VSP отправляет в DS целый «блок параметров» с требуемыми параметрами связи:

  • Блок параметров отправляется при открытии VSP, за исключением случая, когда режим маршрутизации - server.
  • Кроме того, блок параметров отправляется каждый раз, когда устанавливается соединение данных (неважно, входящее оно или исходящее).

Блок параметров включает все параметры связи, необходимые последовательному порту, например скорость, чётность и т. д.

Помимо отправки блоков параметров, VSP также отправляет отдельные команды всякий раз, когда какой-либо параметр меняется в приложении. Например, если пользователь выбирает другую скорость (когда приложение уже запущено и VSP открыт), VSP не будет отправлять весь блок параметров заново, а отправит только команду on-the-fly для изменения скорости DS.

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

Ниже приведён пример журнала Port Monitor, показывающего один «цикл» работы VSP (команды out-of-band on-the-fly включены, режим маршрутизации не server):

--- приложение запущено ---

12/15/03 14:22:47 - COM3 (INFO): Port opened

--- начало блока параметров (блок отправляется, потому что VSP был открыт) ---

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get DSR pin status...success

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get CTS pin status...success

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set DTR to high...success

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set RTS to high...success

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 38400 bps...success

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set parity to none...success

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set data bits to 8 bits...success

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flowcontrol to RTS/CTS...success

12/15/03 14:22:47 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: enabling line change notification for DSR...success

--- конец блока параметров ---

---

--- соединение установлено (то есть потому, что приложение отправляет данные) ---

12/15/03 14:22:54 - COM3 (INFO): Established TCP connection with node 192.168.100.92:1001

--- начало блока параметров (блок отправляется, потому что соединение установлено) ---

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get DSR pin status...success

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get CTS pin status...success

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set DTR to high...success

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set RTS to high...success

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 38400 bps...success

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set parity to none...success

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set data bits to 8 bits...success

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flow control to RTS/CTS...success

12/15/03 14:22:54 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: enabling line change notification for DSR...success

--- конец блока параметров ---

---

--- следующие команды отправляются в ответ на изменение пользователем скорости в приложении ---

12/15/03 14:22:56 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 19200 bps...success

12/15/03 14:22:58 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...success

12/15/03 14:22:59 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 19200 bps...success

12/15/03 14:23:00 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...success

--- приложение закрыто ---

12/15/03 14:23:02 - COM3 (INFO): TCP connection closed

12/15/03 14:23:02 - COM3 (INFO): Port closed

При выборе режима inband для команд on-the-fly поведение немного отличается. Так как команды inband передаются внутри TCP-соединения данных, VSP устанавливает такое соединение, если ему нужно отправить команду(ы) on-the-fly, а соединение в данный момент не установлено. Это также делается только тогда, когда режим маршрутизации не server.

Ниже приведён ещё один пример, на этот раз для команд on-the-fly inband (режим маршрутизации не server):

--- приложение открыто ---

12/17/03 09:30:13 - COM3 (INFO): Port opened

--- TCP-соединение установлено, потому что VSP нужно отправить блок параметров ---

12/17/03 09:30:13 - COM3 (INFO): Established TCP connection with node 192.168.100.92:1001

--- начало блока параметров ---

12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get DSR pin status...success

12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: get CTS pin status...success

12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set DTR to high...success

12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set RTS to high...success

12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set baud rate to 38400 bps...success

12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set parity to none...success

12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set data bits to 8 bits...success

12/17/03 09:30:13 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flowcontrol to none...success

12/17/03 09:30:14 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: (unknown)...success

12/17/03 09:30:14 - COM3 (INFO): Line status change notification: DSR:low CTS:low

--- конец блока параметров ---

---

--- соединение прервано, так как по нему не передаются данные

12/17/03 09:31:14 - COM3 (INFO): TCP connection aborted by remote node

---

--- нужно сменить режим управления потоком, поэтому VSP снова устанавливает TCP-соединение

12/17/03 09:34:00 - COM3 (INFO): Established TCP connection with node 192.168.100.92:1001

12/17/03 09:34:00 - COM3 (INFO): "On-the-Fly" command for 192.168.100.92: set flowcontrol to RTS/CTS...success

VSP использует механизм повторных попыток: если от DS не приходит ответ, делается до 3 дополнительных попыток. Если после 4 попыток ответа по-прежнему нет, VSP отключает формирование команд on-the-fly:

12/16/03 10:55:58 - COM3 (WARNING): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...timed out, still trying...

12/16/03 10:56:01 - COM3 (WARNING): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...timed out, still trying...

12/16/03 10:56:04 - COM3 (WARNING): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...timed out, still trying...

12/16/03 10:56:04 - COM3 (ERROR): "On-the-Fly" command for 192.168.100.92: set baud rate to 9600 bps...timed out

12/16/03 10:56:05 - COM3 (INFO): "On-the-Fly" commands disabled (until port opened next time)

Дополнительные попытки не предпринимаются, если DS отказывает или отклоняет какую-либо команду on-the-fly:

12/16/03 11:03:33 - COM3 (ERROR): "On-the-Fly" command for 192.168.100.92: get DSR pin status...access denied

12/16/03 11:03:34 - COM3 (INFO): "On-the-Fly" commands disabled (until port opened next time)