Пример из практики

Переход на резервный сервер

Допустим, в большом здании установлена система пожарной сигнализации. Она подключена через DS к удалённому серверу (например, в охранной компании). Каждую минуту система отправляет сигнал «сердцебиения», чтобы сообщать о своём состоянии.

Если удалённый сервер охранной компании выйдет из строя, связь с системой пожарной сигнализации прервётся, и охранная компания не будет знать, что происходит в здании (и, вероятно, во многих других зданиях). Такого допустить нельзя.

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

Проверка: есть ли установленное соединение с данными?

<STX>X<CR>

6-й символ (c) - звёздочка: соединение с данными закрыто. Продолжаем:

<STX>ANS*I**/**<CR>

Устанавливаем соединение с основным сервером:

<STX>PCE212.68.157.35/1001<CR>

DS подтверждает команду:

<STX>A<CR>

Проверка: есть ли установленное соединение с данными?

<STX>X<CR>

6-й символ (c) - O: соединение с данными устанавливается. Соединения ещё нет:

<STX>ANS*IO*/**<CR>

(Подождав некоторое время):

Проверка: есть ли установленное соединение с данными?

<STX>X<CR>

6-й символ (c) - звёздочка: соединение с данными закрыто. Не удалось подключиться к серверу:

<STX>ANS*I**/**<CR>

Переходим на резервный сервер: устанавливаем соединение с .37:

<STX>PCE212.68.157.37/1001<CR>

DS подтверждает команду:

<STX>A<CR>

Проверка: есть ли установленное соединение с данными?

<STX>X<CR>

6-й символ (c) - O: соединение с данными устанавливается. Соединения ещё нет:

<STX>ANS*IO*/**<CR>

(Подождав некоторое время):

Проверка: есть ли установленное соединение с данными?

<STX>X<CR>

6-й символ (c) - C: успешно подключились к резервному серверу:

<STX>ANS*IC*/**<CR>

Выход из режима программирования, чтобы начать обмен данными:

<STX>O<CR>

DS подтверждает команду:

<STX>A<CR>