Когда 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)