Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Модемы и факс-модемы. Программирование для MS-DOS и Windows.

© Александр Фролов, Григорий Фролов
Том 16, М.: Диалог-МИФИ, 1993.

[Назад] [Содеожание] [Дальше]

4.1. Приложение Terminal

Операционные системы Windows 3.1, Windows for Workgroups 3.11 и Windows NT имеют в своем составе простую телекоммуникационную программу Terminal. С помощью этой программы можно полностью управлять модемом и организовать обмен файлами с удаленным компьютером.

К сожалению, Terminal обладает минимумом возможностей, что заметно сужает возможную область его применения.

Запустите приложение Terminal. На экране появится главное окно "Terminal - (Untitled)" (см. рис. 4.1).

Рис. 4.1. Главное окно приложения Terminal

Внешний вид главного окна приложения Terminal напоминает приложение Notepad. Ниже заголовка расположена строка меню.

Перед тем как начать работу с модемом, необходимо соответствующим образом настроить характеристики приложения Terminal - указать порт асинхронного адаптера, к которому подключен модем, определить скорость передачи информации модему и формат, в котором передаются данные. Затем следует определить AT-команды, которые будут применяться для управления модемом: инициализации модема, набора номера и прекращения сеанса связи. Для настройки всех этих параметров предназначено меню "Settings".

Конфигурацию, выбранную в меню "Settings", можно сохранить в файле с расширением TRM. Впоследствии вы сможете загрузить такой файл. При этом автоматически устанавливается сохраненная в файле конфигурация. Для сохранения и восстановления конфигурации предназначено меню "File".

Чтобы установить связь с удаленным модемом и передать ему файл, необходимо, чтобы модем набрал номер абонента. Операцию набора номера и разрыва связи можно выполнить из меню "Phone".

Когда номер набран и связь между модемами установлена, вы можете набирать в главном окне приложения текст, который отображается на экране и передается удаленному модему. Одновременно в окне приложения Terminal выводятся символы, принятые вашим модемом от удаленного компьютера.

Если вам надо передать или принять от удаленного компьютера файл, следует воспользоваться меню "Transfers". Несмотря на то, что приложение Terminal поддерживает только два простых протокола передачи файлов - Kermit и XModem CRC, для передачи не очень больших файлов этого вполне достаточно.

Меню "Edit" позволяет копировать информацию из главного окна приложения в Clipboard - универсальный обменный буфер Windows и обратно.

И, наконец, меню "Help", имеющее одинаковое назначение во всех приложениях Windows, предназначено для получения подсказки или инструкции по работе с приложением.

4.1.1. Меню "File"

Для того чтобы сохранить конфигурацию приложения Terminal, определенную в диалоговых панелях меню "Settings", вам понадобится меню "File". Меню "File" изображено на рис. 4.2.

Рис. 4.2. Меню "File"

Строка "New" предназначена для создания нового файла конфигурации. Вы можете создать несколько файлов конфигурации, различающиеся только телефонными номерами, и использовать их по необходимости.

С помощью строки "Open..." вы можете открыть уже существующий файл конфигурации. При этом все установки в диалоговых панелях меню "Setting" изменятся соответствующим образом.

Строка "Save" предназначена для сохранения текущих изменений в файле конфигурации. Если вы только что создали новый файл конфигурации и пытаетесь сохранить его командой "Save", вместо этой команды будет выполнена команда "Save As...", которая тоже сохраняет файл конфигурации, но позволяет выбрать для него имя файла, диск и каталог.

Строка "Save As...", позволяет вам сохранить файл конфигурации, указав его имя и путь к файлу. С помощью этой строки вы также можете создать копию файла конфигурации, хранящуюся в другом каталоге или под другим именем.

Если вы желаете выводить всю информацию, поступающую от модема, на печать и выбрали в меню "Settings" строку "Printer Echo", вам следует указать, какой формат бумаги и какой принтер вы собираетесь использовать. Для этого предназначена строка "Print Setup...".

Завершить работу программы Terminal можно при помощи строки "Exit".

4.1.2. Меню "Edit"

Меню "Edit" изображено на рис. 4.3.

Рис. 4.3. Меню "Edit"

Строки этого меню позволяют вам выполнять различные операции над фрагментами текста, такие как выделение, копирование и вставка, а также некоторые другие, специфические для программы Terminal, действия.

Строки "Copy" и "Paste" меню "Edit" имеют одинаковое назначение во всех программах Microsoft Windows. Они предназначены для работы с Clipboard - универсальным буфером обмена данными между программами Windows.

Для того чтобы скопировать фрагмент текста в Clipboard, необходимо его выделить и затем выбрать строку "Copy" из меню "Edit".

Для того чтобы вставить содержимое Clipboard в окно, следует вначале установить в нужное место документа текстовый курсор. Это можно сделать либо при помощи мыши, щелкнув в нужном месте левой кнопкой, либо при помощи клавиш перемещения курсора, расположенных на клавиатуре. После этого надо выбрать строку "Paste" из меню "Edit". Содержимое Clipboard будет отображено на экране и передано удаленному модему.

Строка "Send" позволяет скопировать выделенный текст в Clipboard и одновременно передать его модему. Такая возможность полезна для передачи модему повторяющихся текстовых последовательностей.

Строка "Select All" меню "Edit" предназначена для выделения сразу всего текста в один большой фрагмент. Вы можете затем скопировать весь текст в Clipboard.

Последняя строка в меню "Edit" - "Clear Buffer". Она предназначена для очистки экрана и внутреннего буфера приложения Terminal.

4.1.3. Меню "Settings"

Меню "Settings" приложения Terminal изображено на рис. 4.4.

Рис. 4.4. Меню "Settings"

Меню "Settings" предназначено для настройки различных параметров приложения Terminal - телефонного номера, режима работы терминала, выбора протоколов для обмена текстовыми и двоичными файлами, параметров порта асинхронного адаптера к которому подключен модем, а также ввода AT-команд управления модемом.

В первую очередь вам необходимо определить к какому порту асинхронного адаптера подключен модем. Для этого выберите из меню "Settings" строку "Communications...". На экране появится диалоговая панель "Communications" (см. рис. 4.5).

Рис. 4.5. Диалоговая панель "Communications"

Выберите из списка "Connector" имя COM-порта, к которому подключен модем.

Если у вас внутренний модем, то COM-порт, используемый им, определяется при помощи перемычек, расположенных на самой плате. Чтобы узнать, какой COM-порт использует модем, проще всего взять в руки документацию модема и проверить по ней положение переключателей.

Для внешнего модема, подключаемого к разъему асинхронного адаптера с помощью кабеля, узнайте номер соответствующего COM-порта из документации компьютера.

Установите, с какой скоростью будет происходить передача данных через выбранный COM-порт. Выбор скорости производится при помощи переключателя с зависимой фиксацией "Baud Rate". Выберите скорость, соответствующую максимально возможной скорости, с которой модем может передавать данные.

Так, если у вас простой модем, поддерживающий скорость обмена 2400 бит/с и соответствующий рекомендации CCITT V.22 bis, можно установить переключатель в положение 2400.

Если ваш модем обладает возможностью аппаратного сжатия передаваемой информации, следует выбрать более высокую скорость, чем может обеспечить модем. Например, если у вас модем соответствующий рекомендации V.32 (максимальная скорость передачи по линии 9600 бит/с) и он выполняет аппаратную компрессию данных в соответствии с протоколами V.42 bis или MNP5, установите переключатель "Baud Rate" в положение "19200".

В том случае, если у вас высокоскоростной модем со скоростью передачи информации по линии 9600 бит/с и выше или вы выбрали переключателем "Baud Rate" более высокую скорость, чем обеспечивает модем, тогда, чтобы избежать возможной потери данных, вам необходимо включить протокол управления потоком.

Протокол управления потоком согласует производительность компьютера и модема, позволяя избежать ситуации, в которой модем не справляется с поступающим от компьютера потоком данных.

Существуют две различных модификации протокола управления потоком - аппаратная и программная. В аппаратной реализации протокола управления потоком модем и компьютер сообщают о переполнении своих буферов сигналами COM-порта (RTS и CTS). Программный метод использует для управления потоком данных символы XON и XOFF.

Чтобы выбрать метод управления потоком данных, установите переключатель "Flow Control". Положение "Xon/Xoff" устанавливает программный метод управления потоком. Положение "Hardware" - аппаратный метод управления потоком, а в положении "None" управления потоком не производится.

Если вы выбрали протокол управления потоком, то вам надо соответствующим образом настроить модем выбрав из меню "Settings" строку "Modem Commands...".

Теперь установите формат данных, передаваемых через COM-порт. Переключателем "Data Bits" выберите количество бит в передаваемых символах. В большинстве случаев необходимо установить этот переключатель в положение 8 (8 бит на символ). Переключателем "Stop Bits" задайте количество стоповых бит на передаваемый символ. Мы будем использовать один стоповый бит.

Затем переключателем "Parity" надо определить режим контроля четности. Если используется режим контроля четности, то вместе с каждым символом передается бит четности. В зависимости от положения переключателя "Parity" этот бит используется по-разному.

В следующей таблице описаны отдельные позиции этого переключателя.

Положение переключателя "Parity"

Режим контроля четности

None

Контроль четности не выполняется

Odd

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

Even

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

Mark

Бит четности устанавливается равным единице

Space

Бит четности не устанавливается

Чтобы включить режим контроля четности, недостаточно установить переключатель "Parity", надо также включить переключатель Parity Check.

Последний орган управления на диалоговой панели "Communications" называется "Carrier Detect". Если вам требуется, чтобы приложение Terminal реагировало на внезапный разрыв соединения с удаленным модемом, включите этот переключатель.

Когда вы закончили заполнение диалоговой панели "Communications", нажмите на кнопку "OK". Теперь Terminal подключен к COM-порту и модем готов к приему AT-команд. Для проверки модема можно передать модему команду ATZ. Для этого достаточно набрать в главном окне приложения строку "ATZ" и нажать клавишу . Команда будет передана модему. Если модем подключен правильно и работает, он воспримет команду и передаст компьютеру результат OK. В главном окне, ниже команды "ATZ", появится строка "OK".

Вы даже можете передать модему команду набора номера. Для этого наберите строку "ATDP 999-99-99" и нажмите клавишу . Модем наберет номер 999-99-99. Если по этому номеру подключен другой модем, они установят связь и на экране появится сообщение модема об установлении соединения с удаленным модемом - CONNECT.

Передав компьютеру сообщение CONNECT, модем переходит в режим передачи данных удаленному модему. Теперь все, что вы набираете на клавиатуре, передается удаленному модему, а от него - удаленному компьютеру. Одновременно с вашим модемом после установления соединения удаленный модем также переключается в режим передачи данных и все, что удаленный компьютер передает своему модему, будет отображаться на экране нашего компьютера.

Запустите на двух компьютерах, снабженных модемами, приложение Terminal. Одному модему передайте команду ATS0=1. Эта команда означает, что когда позвонит телефон, модем сразу снимет трубку и попытается установить связь с удаленным модемом. На другом компьютере передайте модему команду набора номера первого модема (ATDP 999-99-99).

Когда модемы установят связь и на экране компьютеров появятся строка CONNECT, вы сможете обменяться сообщениями, набрав их на клавиатуре и прочитав ответ от удаленного компьютера в окне Terminal.

Набор номера методом непосредственного ввода команды ATD неудобен. Если номер занят, то вам придется снова набирать его. Приложение Terminal позволяет автоматизировать эту процедуру.

Сначала вам надо определить команды для инициализации модема, набора номера и разрыва связи. Выберите из меню "Settings" строку "Modem Commands...". На экране появится диалоговая панель "Modem Commands" (см. рис. 4.6).

Рис. 4.6. Диалоговая панель "Modem Commands"

В правой нижней части диалоговой панели "Modem Commands" находится переключатель "Modem Defaults". Переведите данный переключатель в положение, соответствующее типу вашего модема. Как правило, для большинства модемов вы можете выбрать положение "Hayes".

В групповом окне "Commands" находятся пять строк, содержащих команды для модема, используемые при наборе номера - Dial, разрыве связи - Hangup, передачи двоичных данных - Binary TX, приеме двоичных данных - Binary RX, инициализации модема - Originate. Все команды, кроме команды инициализации модема, могут состоять из двух частей - префикса и суффикса.

Вам необходимо изменить префикс команды набора номера, заменив команду ATDT на ATDP. Команда ATDT выбирает тональную систему набора номера. Отечественные АТС используют не тональный, а импульсный метод набора номера. Для выбора импульсной системы предназначена команда ATDP.

Команду для разрыва связи можно оставить без изменения. Эта команда работает следующим образом. Когда из меню "Phone" вы выбираете строку "Hangup", приложение Terminal, выдержав интервал задержки, передает модему Escape-последовательность из трех символов '+'. Модем, получив Escape-последовательность, переходит из режима передачи данных в командный режим. Затем Terminal передает модему команду разорвать связь и положить трубку - ATH.

Следующие две строки Binary TX и Binary RX не содержат команд. Оставьте их без изменения.

Последняя строка Originate содержит команду инициализации модема. По умолчанию выбрана команда инициализации ATQ0V1E1S0=0. Она инструктирует модем возвращать ответ на все передаваемые модему команды (Q0) в текстовом виде на английском языке (V1). Модем должен возвращать все символы, ему компьютером обратно (E1). Модем не должен сам снимать трубку (S0=0).

Следующая по важности строка меню "Settings" называется "Phone Number...". При ее выборе на экране появляется диалоговая панель "Phone Number" (см. рис. 4.7).

Рис. 4.7. Диалоговая панель "Phone Number"

В поле "Dial" введите телефонный номер удаленного модема, с которым надо соединиться. На рисунке 4.7 введен номер 999-99-99. Чтобы набрать этот номер, достаточно выбрать из меню "Phone" строку "Dial".

В поле "Timeout If Not Connected In" задается интервал времени (в секундах), в течение которого модем должен успеть набрать номер и установить связь с удаленным модемом. Если за указанное время связь не будет установлена, модем прервет процесс соединения. Так как набор номера довольно длительная процедура, то можно увеличить этот интервал до 50-60 секунд.

Приложение Terminal предоставляет пользователю возможность автоматического дозвона до удаленного абонента. В этом режиме Terminal будет повторно набирать номер до тех пор, пока не установиться соединение. Чтобы установить этот режим, достаточно включить переключатель "Redial After Timing Out". Если переключатель "Redial After Timing Out" не включен, тогда номер будет набран только один раз.

Последний орган управления в диалоговой панели "Phone Number" - переключатель "Signal When Connected". Если он установлен, то после удачного установления связи, когда модем возвращает ответ CONNECT и переходит в режим передачи данных, компьютер подает звуковой сигнал.

Самая полезная возможность, предоставляемая приложением Terminal, заключается в передаче двоичных файлов по телефонной линии. Как правило, передача файлов происходит в соответствии со специальными протоколами передачи файлов. Эти протоколы позволяют гарантировать целостность передаваемых данных при максимальной скорости передачи.

Более подробно о протоколах передачи файлов вы узнаете позже. Сейчас мы отметим, что для правильной передачи файла оба компьютера должны использовать одинаковые протоколы. Приложение Terminal поддерживает два протокола XModem CRC и Kermit. Эти протоколы не самые эффективные, но зато поддерживаются практически всеми телекоммуникационными программами.

Чтобы выбрать протокол, который будет использоваться при передаче и приеме файлов выберите из меню "Settings" строку "Binary Transfers...". На экране появится диалоговая панель "Binary Transfers" (см. рис. 4.8).

Рис. 4.8. Диалоговая панель "Binary Transfers"

Она содержит только один переключатель с двумя положениями XModem/CRC и Kermit. Выберите любой протокол и нажмите кнопку "OK".

Terminal обладает возможностью передавать текстовые файлы с помощью отдельного протокола. Но так как при этом пропадут русские символы и вы не сможете передать файлы архивов, мы оставим эту возможность без рассмотрения.

Когда вы обмениваетесь с удаленным компьютером текстовой информацией при помощи клавиатуры, необходимо, чтобы оба компьютера эмулировали один тип терминала, то есть одинаково обрабатывали управляющие символы (перевода строки, возврата каретки, а для некоторых типов терминала даже управляющие символы для выбора цвета символов).

Чтобы установить тип терминала, эмулируемого приложением Terminal, выберите из меню "Settings" строку "Terminal Emulation...". На экране появится диалоговая панель "Terminal Emulation" (см. рис. 4.9).

Рис. 4.9. Диалоговая панель "Terminal Emulation"

Выбрав тип терминала, вы можете провести более тонкую настройку. Выберите из меню "Settings" строку "Terminal Preferences...". На экране появится диалоговая панель "Terminal Preferences" (см. рис. 4.10).

Рис. 4.10. Диалоговая панель "Terminal Preferences"

Первая группа органов управления, расположенная в диалоговой панели "Terminal Preferences", называется "Terminal Mode".

Переключатель "Line Wrap" устанавливает режим свертки длинных строк. Если свертка включена, при достижении текстовым курсором правой границы окна редактирования курсор автоматически переходит на следующую строку. Если свертка выключена, при достижении правой границы окна весь текст сдвигается влево для того, чтобы вы могли продолжить ввод.

Переключатель "Local Echo" вызывает вывод на экран всех набираемых на клавиатуре символов. Так как в строке инициализации модема выбрано возвращение всех передаваемых ему символов обратно в компьютер, то, если установить этот переключатель, каждый символ, набранный на клавиатуре, будет дублироваться на экране два раза. Переключатель "Sound" разрешает приложению выдавать звуковые сигналы.

Группа CR CR/LF определяет, как реагирует приложение на нажатие клавиши и поступление от модема символа CR (возврата каретки). Если переключатель "Inbound" включен, то при приходе от модема символа CR курсор не только перемещается в начало строки, но также переходит на следующую строку, как при приходе символа LF (перевода строки). Если установлен переключатель "Outbound", то при нажатии на клавишу , приложение Terminal передает модему два символа CR и LF.

Группа "Columns" содержит один переключатель с зависимой фиксацией, позволяющий выбрать ширину окна - 80 или 132 символов.

Группа "Cursor" предназначена для управления курсором. Вы можете выбрать курсор в виде прямоугольника (Block) или подчеркивания (Underline). Если вы желаете, чтобы курсор мигал, установите переключатель "Blink".

В группе "Terminal Font" можно выбрать название и размер шрифта, а группа "Translations" позволяет учесть различия в кодировке символов для операционных систем Windows и MS-DOS.

Переключатель "Show Scroll Bars" добавляет к оформлению главного окна приложения горизонтальную и вертикальную полосы просмотра.

Все символы, отображаемые на экране, одновременно записываются во внутренний буфер приложения. Размер этого буфера в строках текста задается в поле "Buffers Lines".

Переключатель "Use Function, Arrow, and Ctrl Keys for Windows" определяет, что функциональные клавиши, клавиши управления курсором и комбинации различных клавиш с клавишей передаются Windows и не передаются модему.

Вы можете параллельно с выводом на экран печатать всю информацию, поступающую от модема, на принтере. Для этого достаточно выбрать в меню "Settings" строку "Printer Echo".

Приложение Terminal позволяет назначить для функциональных клавиш клавиатуры выполнение различных действий, например, ввод пароля, адреса или стандартного приветствия.

Для определения функциональных клавиш выберите из меню "Settings" строку "Function Keys...". На экране появится диалоговая панель "Function Keys". Она содержит восемь строк для функциональных клавиш - . Каждая строка состоит из двух полей "Key Name" и "Command". В поле "Key Name" можно ввести название команды, а в поле "Command" команду, выполняемую при нажатии соответствующей функциональной клавиши.

Команда может состоять из текста, непосредственно передаваемого приложению и специальных управляющих кодов. В следующей таблице перечислены управляющие коды, которые можно использовать в поле "Key Name".

Управляющий код

Действие

^A-^Z

Передать удаленному компьютеру управляющий символ Ctrl-A - Ctrl-Z

^$Dnn

Приложение Terminal выполняет задержку nn секунд

^$B

Приложение Terminal передает сигнал BREAK в течение 117 миллисекунд

^$C

Набирает телефонный номер, как если бы вы выбрали строку Dial из меню Phone

^$H

Разрывает связь с удаленным модемом, как если бы вы выбрали строку Hangup из меню Phone

^$L1-^$L4 

Выбрать другой набор функциональных клавиш

^^

Передать символ ^ удаленному компьютеру

^@

Передать удаленному компьютеру символ с кодом 0

^[n

Передать удаленному компьютеру одну или несколько Escape-последовательностей. Переменная n представляет одну или несколько Escape-последовательностей

Для удобства использования функциональных клавиш можно включить переключатель "Keys Visible". После этого в нижней части главного окна приложения Terminal появится ряд кнопок, по одной для каждой функциональной клавиши. Названия кнопок соответствует полю "Key Name" диалоговой панели "Function Keys" (см. рис. 4.11).

Рис. 4.11. Диалоговая панель "Function Keys"

Если для вас не достаточно восьми функциональных клавиш, то Terminal позволяет создать четыре различных набора функциональных клавиш и переключаться между ними по мере необходимости. Чтобы определить в диалоговой панели "Function Keys" несколько наборов клавиш, предназначен переключатель с зависимой фиксацией "Key Level".

После того как вы определили первый набор функциональных клавиш, переведите переключатель "Function Keys" в следующее положение и снова заполните поля "Key Name" и "Command".

Рис. 4.12. Приложение "Terminal - BOOK.TRM"

На рисунке 4.12 представлен внешний вид приложения Terminal, для которого в соответствии с рисунком 4.11 определен набор функциональных клавиш.

Чтобы выполнить действие, соответствующее функциональной клавише, можно либо нажать ее на клавиатуре, либо нажать кнопку в нижней части главного окна Terminal. Если вы определили несколько наборов функциональных клавиш, то переключаться между ними можно, нажимая на кнопку "Level", расположенную в правой части верхнего ряда кнопок приложения.

Если в диалоговой панели "Function Keys" вы установили переключатель "Keys Visible", то вместе с набором кнопок, соответствующих функциональным клавишам появится кнопка с часами.

Вместо названия на этой кнопке отображается текущее время или значение таймера. Чтобы переключиться с отображения текущего времени на таймер и обратно, достаточно нажать на эту кнопку. Сбросить таймер можно, выбрав из меню "Settings" строку "Timer Mode". Таймер удобно использовать, чтобы следить за временем соединения.

4.1.4. Меню "Phone"

Меню "Phone" предназначено для вызова удаленного модема и разрыва связи после окончания обмена данными.

Рис. 4.13. Меню "Phone"

Меню "Phone", изображенное на рис. 4.13, состоит из двух строк "Dial" и "Hangup". При выборе из меню "Phone" строки "Dial" приложение Terminal начинает набирать телефонный номер, определенный в диалоговой панели "Phone Number" (см. строку "Phone Number..." из меню "Settings"). Набрав номер удаленного модема, Terminal устанавливает с ним связь. Чтобы прекратить сеанс связи и повесить телефонную трубку, достаточно выбрать строку "Hangup" из меню "Phone".

4.1.5. Меню "Transfers"

Команды из меню "Transfers" позволяют организовать обмен текстовыми и двоичными файлами с удаленным компьютером. Прием и передача двоичных файлов будет происходить в соответствии с протоколом, выбранным в диалоговой панели "Binary Transfers". Чтобы открыть эту диалоговую панель выберите из меню "Settings" строку "Binary Transfers...".

Меню "Transfers" приложения Terminal изображено на рис. 4.14.

Рис. 4.14. Меню "Transfers"

Допустим, вы соединились с удаленным компьютером, на котором также работает приложение Terminal. Чтобы передать файл с одного компьютера на другой, выберите на первом компьютере из меню "Transfers" строку "Send Binary File...", а на втором строку "Receive Binary File...".

После того как вы выбрали из меню "Transfers" строку "Send Binary File...", на экране появляется диалоговая панель "Send Binary File". Выберите файл, который необходимо передать удаленному компьютеру, и нажмите кнопку "OK". В нижней части главного окна приложения Terminal появляется сообщение о том, что началась передача файла.

Когда на удаленном компьютере из меню "Transfers" выберут строку "Receive Binary File...", появится новая диалоговая панель "Receive Binary File". В ней необходимо указать каталог и имя файла, в который будет записан принятый файл. После выбора имени файла следует нажать на кнопку "OK". Начинается прием файла. В нижней части окна Terminal появляется сообщение, о том что начался прием файла.

[Назад] [Содеожание] [Дальше]