Пример из практики
Переход на резервный сервер
Допустим, в большом здании установлена система пожарной сигнализации. Она подключена через 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>