WinTelnetx от K1TTT

На бескрайних просторах Интернета (или пакетных радиосетей AX-25) находятся компьютеры с запущенной специальной программой, которая принимает, хранит и рассылает в режиме реального времени всем желающим сообщения о работе любительских радиостанций - DX споты. Делается это для тех, кто ленится самостоятельно покрутить ручку настройки трансивера, боится пропустить какую-либо интересную станцию или просто хочет оценить прохождение в различных точках земного шара. Кроме простого чтения этих спотов существует возможность автоматически перестроить трансивер, который управляется компьютером, на требуемую частоту/режим. Значительная часть программ для работы в соревнованиях или ведения аппаратного журнала имеет возможность получать DX споты через последовательный порт. Программа, написанная Dave  K1TTT позволяет подключаться к различным источникам спотов, фильтровать их и перенаправлять в программы, управляющие трансивером или другие сети. Программа бесплатная, автор изредка ее обновляет и дополняет. Ниже приведен перевод файла USERNOTE.TXT из состава дистрибутива версии 4.08 от 4/1/2001.

Термины и сокращения:

Windows 95/98/NT = 32 разрядная операционная система фирмы Майкрософт, также известная под именем "Маздай - must die".

DX Cluster = сеть, объединяющая радиолюбителей. Состоит из сервера, на котором запущена программа кластера и клиентов (радиолюбителей), которые подключаются к серверу или через Интернет или через местную УКВ пакетную сеть и обмениваются информацией о DX, прохождении, солнечной активности и т.п.

AR-Cluster = DX кластер, построенный на 32 разрядной Windows платформе.

CT = программное обеспечение для работы в соревнованиях от K1EA, www.k1ea.com.

CT Ethernet backbone = сеть на базе архитектуры Ethernet, которую поддерживает программа СТ.

DX спот = данные о позывном и частоте какой-либо радиостанции (чаще всего DX), передаваемые в режиме реального времени по сетям Интернет или АХ-25, например:

PB7CW-@   14266.0 VK7TS/P     OC-233                        0453 07 May
OK2BQX    14260.0 KL7/NO7F    TIM and qsl manager K8NA      0451 07 May
W0BV      14008.0 R1ANB       CQ                            0450 07 May
RA6AX     28010.8 ZL2CD                                     0452 07 May
N6ZS      21024.1 3B6RF       weak...but worked up 7.5      0444 07 May

telnet = протокол эмуляции терминала, одноименная программа позволяет осуществить терминальное соединение с удаленной TCP/IP станцией.

TNC = terminal node controller - контроллер пакетной связи

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

local node = программа, запущенная на Вашем компьютере. Превращает Вашу станцию в узел пакетной связи.

usernote.txt
==========

WinTelnetx -- это Windows 95/98/NT приложение, позволяющее установить соединение между различными коммуникационными каналами компьютера. Программа также осуществляет трансляцию между различными типами соединений (PacketCluster, AR-Cluster, CLX backbone, CT network) для передачи информации о DX спотах. Имеется возможность перенаправлять данные нескольких источников различного типа в/из один или несколько других источников.

Некоторые примеры:

  1. Соединение "telnet cluster node" - "local node via a TNC".
  2. Соединение двух "telnet cluster nodes" и "local node" с сетью на основе K1EA CT Ethernet backbone.
  3. Соединение двух сетей CT через интернет.
  4. Перенаправление данных из "telnet cluster" в Сom порт для возможности доступа к этому порту из какой-либо программы аппаратного журнала.
  5. Получение telnet соединения из интернет и перенаправление его в "local cluster node" через Сом порт.
  6. Чтение спотов из УКВ пакетной сети, их локальное или глобальное перенаправление.
  7. Подключение одного TNC к нескольким телнет соединениям.

Новое размещение окон программы

Внешний вид окон программы отличается от предыдущих версий. Теперь для каждого добавленного порта появляется новое окно. Каждое окно имеет в нижней части панель инструментов - окно для ввода данных и ряд кнопок. Кнопки и вводимые данные действуют только для выбранного порта. Для порта "Консоль (Console)" можно назначить перенаправление (маршрутизацию) вводимых данных в меню "Setup - Routes"

Вы можете расставить окна по своему желанию, переключение между ними происходит при помощи клавиш "Control-TAB" или выбором из списка меню "Window".

Обратите внимание, что щелчок мышкой по крестику в правом верхнем углу окна приведет к удалению порта. Из панели инструментов аналогичная кнопка "remove port" удалена, так как раньше при редактировании порта или макроса легко было ошибиться и удалить порт.

Основная панель инструментов программы теперь содержит только кнопки "Соединить (connect)" и "Разъединить (disconnect)".

Примечание по обновлению версии

INI файлы, созданные данной версией программы не работают с предыдущими версиями программы. INI файлы старого формата читаются, но их работоспособность не проверена в полном объеме. Если старые настройки не заработают, легче создать новые.

Поддерживаются следующие типы устройств:

Console = консоль, ввод данных с клавиатуры и вывод на экран

Com port = последовательный порт компьютера, соединенный при помощи ноль-модемного кабеля к аналогичному порту другого компьютера или к модему или к TNC.

TCP outgoing connection = исходящее интернет (или локальное ethernet) соединение программы (WinTelnetX - клиент), осуществляется как обычное телнет соединение по сети Интернет с PacketCluster (сервер).

UDP broadcast = данные передаются и принимаются по локальной сети в виде широковещательных пакетов так, как это требуется при работе CT по ethernet.

TCP incoming connection = входящее интернет (или локальное ethernet) соединение программы (WinTelnetX - сервер).

Disk File = однонаправленное устройство, используемое как лог-файл.

Типы соединений:

Direct or Command = необработанные данные соединения, формат которых не требуется менять. Используется для простого перенаправленния данных из одного порта в другой. Используется для соединения нескольких узлов, CT сетей, или для соединения узла с программой-логгером без какой-либо фильтрации спотов.

Cluster User = аналогично подключению пользователя к "dx spotting node". Входящие dx споты получаются в формате "DX de K1TTT: ...". Исходящие dx споты посылаются в формате "dx/k1ttt 14000 gi0kow".

Clusse User = похоже на Cluster User, но программное обеспечение Clusse имеет свой уникальный формат спотов.

Cluster Node = аналогично соединению между различными PacketCluster. Споты передаются и принимаются в базовом формате "PC11^".

CT Network = аналогично соединению между компьютерами, работающими в сети программы CT от K1EA через последовательные порты или ethernet при помощи утилиты NETTSR. Формат данных не меняется, только добавляются заголовки и контрольные суммы, требуемые для работы сети СТ.

Logger = соединение Cluster User наоборот. Входящие споты получаются в формате "dx/k1ttt 14000 gi0kow", исходящие "DX de K1TTT: ..." для использования программой-логгером. Этот тип соединения выбирается для Сом порта, подключенного через ноль-модемный кабель к программе-логгеру.

mIRC = одностороннее соединение, позволяющее получать споты из чата - IRC channel. Вся другая информация (all the extra IRC headers) вырезается, остаются только споты для перенаправления в другие порты.

Программа может перенаправлять и осуществлять трансляцию между соединениями следующих типов:

    ИЗ                                      В
------------- ------------------------------------------------------------
              Cluster Clusse Cluster CT      Logger mIRC Direct Command
              User    User   Node    Network
mIRC          DX*     DX*    DX*     DX*     DX*    none All    ALL
Cluster User  DX*     DX*    DX*     All*    All*   none All    ALL
Clusse User   DX*     DX*    DX*     All*    All*   none All    ALL
Cluster Node  DX*     DX*    All*    DX*     DX*    none All    ALL
CT Network    All     ALL    none    All     none   none All    ALL
Logger        All     ALL    none    none    none   none All    ALL
Direct        All     All    All     All     All    All  All+   ALL
Command       All     All    All     All     All    All  All    ALL

* = dx споты проверяются на повторы, если это указано в настройках порта.
+ = выполняет специальное обращение, если указано, что тип порта TNC Master или Slave.
All = без трансляции, передаются необработанные данные.
none = соединение невозможно совсем, либо еще не работает в данной версии программы.
DX = передаются только dx споты

Настройку соединений можно выполнить тремя способами:

  1. Запустить программу без каких-либо *.ini файлов и настроить их вручную.
  2. Запустить программу, указав в качестве параметра командной строки .ini файл, эта возможность используется для создания ярлыка для запуска программы и выполнения соединений.
  3. Запустить программу, загрузить .ini файл из меню "File-Open".

Создать новую конфигурацию:

1. Подготовьте все необходимые данные, составьте перечень портов, их подробные данные - настройки COM портов, IP адреса и т.п.

2. Установите необходимые соединения из меню "Setup". Различные типы соединений имеют различные свойства/ограничения:

Console - называется "CON", другое имя присвоить нельзя. В последних версиях программы требуется редко, значительная часть сообщений выводится в окне "Main".

Com Port - порт не может использоваться другим устройством. Используйте имена, совпадающие с их именами в системе (Пуск - Настройка - Панель управления - Система - Устройства - Порты СОМ и LPT).

Network Connect - "Host Name or IP" могут иметь вид как текста (ik5qgo.ampr.org), так и цифр (44.135.173.46). По умолчанию номер порта 23, обычный для телнет соединений.

Network Broadcast - "Host Name or IP" IP адрес интерфейса ВАШЕГО компьютера. Номер порта должен совпадать с установленным в настройках утилиты CT NETTSR (по умолчанию 9870). Адрес "Broadcast IP" должен совпадать с установленным в настройках утилиты CT NETTSR (по умолчанию 255.255.255.255). Если вы используете сеть CT со встроенной поддержкой TCP стека, используйте порт 3030 и широковещательный адрес 255.255.255.255.

RX Network Connect - используется для выполнения соединения с удаленной станцией сети по инициативе удаленной станции. Это очень простой телнет-приемник, который может быть использован для соединения с другими пользователями. "Host Name or IP" это IP адрес интерфейса ВАШЕГО компьютера. Номер порта, по которому будет осуществляться соединение - 23 по умолчанию, обычный телнет порт. ПРИМЕЧАНИЕ: Выполняется только одно соединение, это не полноценный телнет сервер, допускающий множественные подключения.

2a. Настройка общих параметров порта

Name. Имя соединения, оно должно быть уникальным. Это имя используется для идентификации порта в окне монитора и при выборе в "port select list box". Группа параметров "Is TNC" появляется только при установке параметра MASTER или SLAVE. Подробности в файле tnctotelnet.txt.

Buffer. Размер буфера должен быть не менее 1024 для Интернет соединений, больше - лучше, особенно для медленных компьютеров и при получении сообщения об ошибке переполнения буфера "Buffer Overrun".

Keepalive timer. Время в минутах между принудительными циклами соединения для удержания таймера неактивности и предохранения от обрыва медленного соединения. При отсутствии в течение определенного параметром времени данных, поступающих в порт извне, порт будет отключен. Используется вместе с параметром "Auto Reconnect" в настройках макрокоманд для принудительного восстановления зависшего или не отвечающего соединения.

Port data type. Типы данных порта описаны выше. Параметр определяет, в каком виде программа принимает и как преобразовывает данные, поступающие в порт.

MyCall и Anti Loop Prefix используются только при подключении к dx node. "MyCall" используется как имя узла, "Hops" используется для установки счетчика пересылок принятых сообщений и "AntiLoopPrefix" добавляется для идентификации спота, который был получен ранее, для исключения его повторной ретрансляции. Примечание: для правильной работы строки "AntiLoopPrefix" и "MyCall" должны совпадать на всех исходящих портах.

Hops is used to set the node backbone hops value. A value of 1 will stop the spots from going past the node you are connected to. You should probably keep this value as small as possible unless you are sure there is no chance for loops caused by your connection.

Dupes определяет, сколько строк проверять для определения повторных спотов. Если весь спот совпадает с имеющимся в списке, он будет сброшен. Это не самый лучший вариант фильтрации, но он очень помогает при получении спотов из нескольких источников, данные которых могут оказаться одинаковыми. Этот параметр необходимо устанавливать только для порта, который используется для непосредственной передачи данных в лог-программу или другой узел, а для портов, которые принимают данные оставить равным 0.

CR/LF. Параметр определяет, чем будут оканчиваться строки данных порта (CR - возврат каретки, LF - перевод строки). Всего 4 варианта, они приведены в диалоговом окне. Значения для различных общеизвестных программ и оборудования приведены ниже.

LogEQF = 3
WF1B RTTY = 1 or 3
NA 10.49 = 1 or 3 (последние версии могут работать только при 1?)
CT 9.54 (как tnc через com порт) = 1, 2, or 3
CT 9.54 (ct-сеть) = 0 (LF добавлен сетевым протоколом)
KPC3+ (и возможно бОльшая часть других tnc) = 1
AR-Cluster = 1, 2, or 3
Clusse = 2 or 3
Clx = 1, 2, or 3
Windows Telnet = 3
DXNet = 3

Если параметр "Add Console Routes Automatically (Добавить маршрут для консоли автоматически)" установлен (стоит галочка), то при создании нового порта программа автоматически добавит двусторонний маршрут к устройству CON. Этот параметр используется по умолчанию, если присутствует порт консоли.

2b. Настройка макрокоманд для подключения:

При добавлении порта появляется диалоговое окно "Connect Scripts (Макрокоманда для подключения)". Для установки параметров скриптов ниже приведено описание их работы.

3. Настройка маршрутизации между соединениями:

3a. Выбрать "Setup-Routes"

3b. Выбрать источник "Route From"

3c. Выбрать назначение "Route to"

3d. Нажать кнопку "Add Route (Добавить маршрут)", новый маршрут появится в "Existing routes".

3e. повторить 4b,c,d для назначения других маршрутов.

Примечание:
1. Удалить маршрут можно, сделав выбор в полях "Route From" и "Route to", затем нажать кнопку "Remove Route (Удалить маршрут)".
2. Трассировку сообщений необходимо включать только для порта консоли, и только при необходимости отладки для других портов, так как при этом образуется очень большой трафик необработанных данных.
3. Помните, что каждый маршрут односторонний. Чтобы автоматически добавить маршрут "туда" и "обратно", поставьте галочку в поле "2 Way". Это значение уже установлено по умолчанию.

3f. Нажмите "Done", когда все готово.

4. Сохраните конфигурацию в файл для дальнейшего использования - "File-SaveAs".

5. Проверить работу, соединить все порты - "Connect everything". Это можно сделать несколькими путями. Можно найти в меню "Setup-Connect!" или нажать кнопку на главной панели инструментов. В выпадающем списке можно выбрать порт, к которому будет применена команда кнопки или меню. Порты можно соединять и отключать индивидуально, кнопками в конкретном окне, найденном по "Control-TAB" или выбрать из меню.

При завершении работы необходимо отключиться от всех PacketCluster-ов. Если не дождаться сообщения программы, а просто закрыть основное окно, то порты телнета могут остаться открытыми, так как они требуют некоторого времени для отключения от источников в сети Интернет.

Макрокоманды для подключения (Connect Scripts):

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

Ожидаем   Передаем
--------- --------
login:    k1ttt
password  k1ttt
cmd:      dxc

Пример:

Ожидаем   Передаем
--------- --------
          #INET

Как только порт подключен, передается "#INET". Эта последовательность используется для входа в систему местного узла PacketCluster-а через com порт.

В нижней части диалогового окна "Connect Scripts" можно включить параметр для автоматического восстановления соединения и указать время задержки. Обратите внимание - автоматическое восстановление запускается, только если соединение оборвано по команде удаленного терминала, но не работает, если соединение "повисло" или отключено вручную.

Если автоматическое восстановление включено (стоит галочка "Enable Auto Reconnect"), то макрокоманда обрабатывается несколько иначе. Каждая принятая строка проверяется на соответствие текущему шагу макроса для посылки соответствующего ответа (как и при выключенном автоматическом восстановлении). Но затем, если текущее приглашение не соответствует ожидаемому, то будет произведен поиск назад по макросу до нахождения последнего правильного полученного ответа на запрос. Первое найденное совпадение будет считаться текущим шагом макроса и с этого места будет продолжено выполнение макрокоманды. Таким образом, макрокоманда будет выполняться более настойчиво в случае неполной потери соединения. Еще лучше восстановление будет происходить, если установить таймер неактивности, чтобы вынудить "подвисающие" промежуточные узлы послать приглашение.

Рассмотрим простой пример:

Ожидаем   Передаем
--------- --------
login:    k1ttt
password  k1ttt
cmd:      dxc

В данном примере после установления соединения макрокоманда будет выполняться в порядке очередности. Но если не будет отвечать только кластер, а не сервер, на котором он запущен и повторно будет получена последовательность "cmd:", то программа не станет повторять всю макропоследовательность полностью, а передаст ответ "dxc".

Макросы для mIRC могут быть различными. Ниже приведен один вариант для канала #CQDX сети "othernet IRC network". Он используется при подключении по адресу stlouis.mo.us.othernet.org, номер порта 6666, канал #CQDX.

Ожидаем   Передаем
--------- --------
          nick :k1ttt
          user k1ttt "k1ttt.berkshire.net" "k1ttt" :k1ttt
PING :    pong \#
Welcome to the Internet Relay Network
          join #cqdx

Обратите внимание, что первые две строки передаются до получения какого-либо ответа от сервера. Сервер отвечает командой "PING" и номером. Вы должны послать в ответ команду "pong" и полученный номер. Символы "\#" означают "скопировать номер после PING и двоеточия" для его повторения и завершения процесса соединения. Последняя строка "join #cqdx" обозначает подключение к специфическому каналу, по которому передаются DX споты с сайта DXSummit (возможно и других?). Существуют и другие IRC сайты с иными способами подключения, если они Вам известны, пришлите автору программы INI файл с работающими настройками.

Управляющие символы (Control characters). Если передать косую черту "\" вместе с символом, то последовательность будет восприниматься как управляющий символ, т.е. "\m" будет воспринято как "control-m" (нажатие клавиши Ввод/Enter). Если необходимо передать собственно символ "\", то его надо набрать дважды, т.е. "\\".

ПРЕДУПРЕЖДЕНИЕ!
1. Будьте осторожны при выборе ожидаемых символов. Следует избегать последовательностей, обычных для нормального соединения и не имеющих уникального содержания, чтобы не получился бесконечный цикл внутри макропоследовательности или условия, при которых макрос не может быть завершен.
2. Для отключения от узла нельзя просто передать "bye", так как после выполнения команды макрос обнаружит потерю соединения и тотчас начнет процедуру восстановления. Сначала необходимо остановить макрос кнопкой "Stop Script", затем отключить соединение.

Изменение параметров порта.

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

Порт подключен:

Stream Switch
Stream ID
Keepalive timer
Connect Script
MyCall
Anti Loop Prefix
Hops
Dupe filter length

Для изменения других параметров необходимо сначала отключить порт. После редактирования всегда появляется диалоговое окно для настройки макропоследовательности. Обратите внимание: если Вы редактируете макрос, то его выполнение будет остановлено, а при запуске после редактирования запущено сначала (а не с точки останова). При включенном режиме автоматического восстановления соединения после редактирования макроса потеря соединения не будет обнаружена. Для того чтобы скрипт заработал, необходимо отключить и вновь подключить порт вручную.

Обозначения в строке состояния

Обозначения в строке состояния показывают текущее состояние каждого из портов, если строка состояния не используется для вывода других подсказок. Информация обновляется каждые 1/2 секунды. Используются следующие обозначения:

C = подключено
D = отключено

с дополнительными описаниями:

/MD = соединение отключено пользователем
/Sn = выполняется макрокоманда, n=номер шага или "*" если шаг выполнен
/A = включен режим автоматического восстановления оборванного соединения
/W = ожидание автоматического восстановления оборванного соединения

Опции командной строки

При запуске программы можно указать в командной строке имя INI файла и ключ "-start". Тогда при запуске программы будет автоматически запущено выбранное соединение.

Надо когда-нибудь доделать:

  1. Сделать поддержку нескольких соединений для порта типа "RX telnet", возможно добавить каждому потоку свой идентификатор, как и для TNC соединений?
  2. Сделать настоящий хэлп.
  3. Добавить возможность трансляции сообщений (announces) и значений солнечной активности (WWV).
  4. Добавить возможность настройки шрифта главного окна.
  5. Добавить инсталлятор программы.
  6. Восстановить "горячие клавиши" для кнопок и выпадающих меню.
  7. Сохранение параметров окон.

translated by RU3RQ 15 jan 2002

last update 15 jan 2002
http://www.qsl.net/ru3rq/indexru.htm