Rockwell Diagnostics, (c) 2000-2001 Stanislav V. Mekhanoshin

Что это
-------

Данная программа служит для расшифровки диагностики модемов Rockwell,
выводимой по команде AT&V2 или AT%S1 (для IDC). Если Вы видели когда-нибудь
непонятные символы вроде

BEGINaa14ab14ac14ad14ba47bb44bc48bd44cc242END

- то эта программа для Вас.

S1 тестировался с модемом IDC-2814BXL/VR. В силу того, что спецификация на
диагностику у фирмы Rockwell часто меняется, а также по причине большого
количества ошибок в DSP от Rockwell и в прошивках модемов разных
производителей, кое-что может работать не так как задумывалось. Увы, с этим
придется смириться. Тем не менее, если что-то не так, то Вы можете присылать
мне образцы своих статистик, вызвавших проблемы.

Системные требования
--------------------

Программа собрана в трех различных вариантах:

1. s1d2.exe - dual-exe для DOS и OS/2 16-бит. Работает под управлением
следующих операционных систем:

DOS             - как приложение DOS
W9x             - как приложение DOS
OS/2            - как приложение OS/2
WNT/W2K         - как приложение OS/2

2. s1dw.exe - dual-exe для DOS 16-бит и WIN32 Console. Работает под
управлением следующих операционных систем:

DOS             - как приложение DOS
W9x/WNT/W2k     - как консольное приложение Windows

3. s1w.exe - WIN32 GUI. Работает под управлением следующих операционных
систем:

W9x/WNT/W2k     - оконное приложение Windows

В последнем случае требуется наличие comctl32.dll версии не ниже 4.70
(Internet Explorer 3.0 или выше).

Также является COM-сервером для расшифровки диагностики.

4. s1lnx-i386   - приложение для Linux-i386 в статической сборке.

Лицензионное соглашение
-----------------------

Принцип распространения - Freeware. Вы имеете право свободно использовать и
распространять данный программный продукт и делаете это на свой страх и риск.
Автор не несет никакой ответственности за действия данного программного
продукта и явно оговаривает отказ от каких бы то ни было гарантий его
работоспособности, применимости для каких бы то ни было практических целей,
либо соответствия документации. Использование Вами данного программного
продукта автоматически подразумевает согласие пользователя с данным
лицензионным соглашением.

Использование
-------------

s1 [+prefix | -prefix string | -noprefix]
   [-clipview | -noclipview]
   [<stream | file]

Stream - s1 работает только с перенаправленным стандартным вводом. Так
сделано просто потому, что вряд ли кто-то будет набивать диагностику с
терминала. Способ переназначения может быть любым - не только через '<'.
Например, также сработает команда

  type diag.txt|s1

Версия для Windows GUI не работает со стандартным вводом, за неимением
такового.

File - если указан, то расшифровывается статистика из указанного файла.

Версии для Win32 могут также подхватывать статистику из клипборда, если
стандартный ввод (для консоли) не перенаправлен и явно не указан файл
статистики.

Версия для Windows GUI позволяет также загружать файлы статистики, будучи уже
запущенной, либо повторно анализировать буфер обмена. Файлы статистики могут
быть открыты либо из меню, либо при помощи механизма drag-n-drop. Для чтения
буфера обмена используйте либо меню, либо клавишу F5, либо просто вставьте
статистику в окно s1w из клипборда.

Prefix - префикс, который будет выдаваться перед каждой строкой, выводимой на
stdout. Полезно, например, при переназначении вывода программы в лог-файл
мэйлера для идентификации диагностической информации. Параметр необязательный.

Например, префикс `DIAG' может быть задан либо как +DIAG, либо как
-prefix DIAG.

Ключ -noprefix служит для отмены префикса по умолчанию, если он был задан в
ini-файле (только в s1w).

Ключи -clipview и -noclipview, соответственно, служат для установки s1w как
clipboard viewer. Последний отменяет значение по умолчанию из ini-файла.

Что такое clipboard viewer? Это очень просто - программа автоматически
реагирует на изменение содержимого клипборда и переанализирует статистику.
Включается либо ключом -clipview, либо из меню, либо по клавише F3, либо
кликом на области статусной строки, в которой индицируется его состояние.

Ini-файл со значениями по умолчанию должен лежать в том же каталоге, что и
s1w.exe (он поддерживается только версией для Win32/GUI), и иметь то же имя,
что и exe-файл. Т.е. s1w.ini. Пример такого файла:

============ s1w.ini ==============
[default]
ClipboardViewer=1
OpenFileName=c:\temp\stat.log
Prefix=DIAG
============== end ================

Такой ini-файл установит значения по умолчанию:

-clipview -prefix DIAG c:\temp\stat.log

S1w не будет сам создавать ini-файл, и не требует его.


s1 читает данные из входного потока до тех пор, пока не встретится строка
"BEGIN". Все, что идет дальше считается статистикой. Разбор продолжается либо
до конца входного потока, либо до строки "END".

Возможно использование s1 совместно с утилитой lnterm (line terminal),
которая имеет возможность переназначения ввода/вывода. Например, возможно
использование следующей команды:

  echo AT&V2|lnterm|s1>stat.log

Сам я использую BinkleyTerm, и собираю статистику, запуская специальный
cmd-файл после соединения. При этом статистика дописывается в лог-файл
мэйлера. Этот cmd-файл я позволю себе привести в качестве примера (я использую
4NT, а не стандартный cmd.exe от NT):

-------------------------------- mdm_stat.cmd --------------------------------
@echo off
echo writing Binkley.log...
echo AT%=&V2|c:\mail\lnterm com:1 baud:115200 rx-timeout:20|c:\mail\s1 "++ %@replace[ ,0,%@format[2,%_day]] %@word[%@dec[%_month],Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec] %_time.00 DIAG">>c:\mail\log\Binkley.Log
------------------------------------ eof -------------------------------------

что добавляет к файлу Binkley.log приблизительно следующее:

--------------------------------- Binkley.log --------------------------------
+ 17 Jun 17:00:37.00 DIAG Rockwell Diagnostics/W32, version 1.0.1.1, compiled at Jun 17 2000 14:31:58
+ 17 Jun 17:00:37.00 DIAG (c) 2000 Stanislav V. Mekhanoshin (rampitec@tu.spb.ru, 2:5030/172.9@fidonet)
+ 17 Jun 17:00:37.00 DIAG ----------------------------------------------------------------------------
+ 17 Jun 17:00:37.00 DIAG Connection time                    : 00:01:54
+ 17 Jun 17:00:37.00 DIAG TX Rate (Last/Init/Min/Max)        : 24000/26400/21600/26400
+ 17 Jun 17:00:37.00 DIAG RX Rate (Last/Init/Min/Max)        : 19200/21600/19200/21600
+ 17 Jun 17:00:37.00 DIAG Modulation/Protocol/Compression    : V.34/LAP-M/V.42bis
+ 17 Jun 17:00:37.00 DIAG TX Symbol rate                     : 3200
+ 17 Jun 17:00:37.00 DIAG TX/RX carrier frequency, Hz        : 1920/1829
+ 17 Jun 17:00:37.00 DIAG Signal Level (TX/Power Drop), -dB  : 9/0
+ 17 Jun 17:00:37.00 DIAG RX Signal Level (Last/Min/Max), -dB: 25/25/25
+ 17 Jun 17:00:37.00 DIAG Band Edge Lower/Upper, Hz          : 150/3675
+ 17 Jun 17:00:37.00 DIAG Round trip delay, ms               : 0.063
+ 17 Jun 17:00:37.00 DIAG EQM Value (Last/Min/Max/Negative)  : 21/16/72/0
+ 17 Jun 17:00:37.00 DIAG EQM Samples Running Sum            : 012D
+ 17 Jun 17:00:37.00 DIAG EQM Last 10 Readings               : 28 24 23 27 28 26 19 33 47 37
+ 17 Jun 17:00:37.00 DIAG SNR Ratio (Last/Min/Max), dB       : 39/39/39
+ 17 Jun 17:00:37.00 DIAG TX/RX Non-linear Encoding          : ON/ON
+ 17 Jun 17:00:37.00 DIAG TX/RX precoding                    : OFF/ON
+ 17 Jun 17:00:37.00 DIAG TX/RX shaping                      : OFF/ON
+ 17 Jun 17:00:37.00 DIAG TX Trellis encoder                 : 64 state
+ 17 Jun 17:00:37.00 DIAG TX Pre-emphasis                    : 5
+ 17 Jun 17:00:37.00 DIAG TX/RX state (Max TX/RX, Last TX/RX): 87H/85H, 87H/67H
+ 17 Jun 17:00:37.00 DIAG Dual PCM/120 Hz detection          : Yes/No
+ 17 Jun 17:00:37.00 DIAG Retrains (Issued/Granted/Fast)     : 0/0/0
+ 17 Jun 17:00:37.00 DIAG Renegs (Issued/Granted)            : 3/3
+ 17 Jun 17:00:37.00 DIAG Retrans per frame/Frames rejected  : 2/28
+ 17 Jun 17:00:37.00 DIAG Last retrain reason                : Remote initiated a reneg
+ 17 Jun 17:00:37.00 DIAG Disconnect reason                  : LOCAL REQUEST
+ 17 Jun 17:00:37.00 DIAG Remote supports symbol rate (1,2,5): 2743:ON 2800:ON 3429:ON 3429-TX:ON
+ 17 Jun 17:00:37.00 DIAG Remote supports symbol rate (3,4)  : 3000-L:ON 3000-H:ON 3200-L:ON 3200-H:ON
+ 17 Jun 17:00:37.00 DIAG Remote power drop support          : ON
+ 17 Jun 17:00:37.00 DIAG Remote max symbol rate difference  : 0 steps
+ 17 Jun 17:00:37.00 DIAG Remote is a CME modem              : No
+ 17 Jun 17:00:37.00 DIAG Remote supports V.34bis            : Yes
+ 17 Jun 17:00:37.00 DIAG Remote frequency source            : Internal
------------------------------------ eof -------------------------------------

Использование COM-сервера
-------------------------

Вы  можете  использовать  s1w.exe  в  качестве  COM-сервера.  Для  этого
программу необходимо зарегистрировать.  Запустите  `s1w.exe  /RegServer'
или instw32.bat. Для того, чтобы удалить регистрацию запустите  `s1w.exe
/UnregServer'.

Примеры использования сервера на VBScript, JavaScript (из  html)  и  C++
находятся  в  каталоге  devel/sample.   В   каталоге   devel   находятся
необходимые файлы для компиляции под C/C++.

Для C/C++  включите  в  проект  файл  s1w_i.c  и  заголовок  s1w.h.  Там
описывается интерфейс IS1Diag, имеющий два свойства:

 BSTR S1Diag(BSTR Response) - используется для  расшифровки  диагностики
                              модема, получает на входе нерасшифрованную
                              статистику %S1.

 BSTR Prefix                - указывает  на  префикс,  который   следует
                              использовать    перед    каждой    строкой
                              диагностики   (аналогично   ключу   prefix
                              командной строки).


Благодарности
-------------

 - Юрию Бондаренко за предоставленную информацию и тестирование программы.

 - Майку Телису за предоставленную информацию.

Где найти свежие версии
-----------------------

Свежие версии можно найти в интернете на моей страничке:
http://www.geocities.com/rampitec/index.htm?modem
или на сайте Inpro:
ftp://ftp.inpro.us.com/utils/
а также в FIDO в файловой эхе XHRDIDC.

Как со мной связаться
---------------------

mail-to: rampitec@tu.spb.ru
FIDO:    2:5030/172.9@fidonet.org
WWW:     http://www.geocities.com/rampitec/index.htm
