Соединение может быть установлено с помощью:

нуль модема;

телефонного модема;

по:

выделенным линиям;

коммутируемым линиям;

сети X.25 через PAD по протоколу X28;

подвижной сотовой радио сети РАДИОТЕЛ (через RadioPAD); и др.

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

8.2 Файлы

(Реализация языка сценариев для центрального сервера ПДО под управлением)

Отличие от ДОС версии:

·  mconfig. ini - является бинарным файлом и создается и корректируется через Модемную панель (кнопка Setup);

·  добавлен файл конфигурации каналов kconfig. ini - является бинарным файлом, создается и корректируется через Модемную панель по каждому каналу отдельно (кнопка S);

·  не поддерживается команда SETCOM;

·  введена системная переменная LRET в случае присваивания ей значения не равного 0 ‘лампочка’ статус окрашивается в красный цвет, при значении 1 дополнительно включается звуковая сигнализация;

·  при присваивании переменной с именем NUMBER значения, проверяется, используется ли в данный момент каким либо каналом переменная NUMBER с тем же значением, если используется системной переменной RET присваивается значение 1, иначе 0.

mconfig. ini файл инициализации.

Специальные сценарии:

scinit. sci файл первичного сценария, выполняется (в случае наличия) при запуске драйвера, находится в выходном (OUT) каталоге канала.

НЕ нашли? Не то? Что вы ищете?

riinit. sci файл сценария по входному звонку, выполняется (в случае наличия) при получении драйвером сигнала RI(ring indicator) или входящего соединения по TCP/IP, находится в выходном (OUT) каталоге канала. Используется для инициализации приема входящих сообщений. Режим автоматического поднятия трубки модемом рекомендуется отключать.

dsrinit. sci файл сценария, выполняется драйвером при ИЗМЕНЕНИИ сигнала DSR (Data Set Ready), находится в выходном (OUT) каталоге канала. Используется для инициализации внешнего модема при повторном включении питания.

ctsinit. sci файл сценария, выполняется драйвером при ИЗМЕНЕНИИ сигнала CTS(Clear To Send), находится в выходном (OUT) каталоге канала.

dcdinit. sci файл сценария, выполняется драйвером при ИЗМЕНЕНИИ сигнала DCD (Data Carrier Detect), находится в выходном (OUT) каталоге канала. Может использоваться вместо riinit. sci для инициализации приема входящих сообщений, в случае включения режима автоматического поднятия трубки модемом.

Если на момент получения драйвером сигналов RI, DSR, CTS, DCD выполняется какой-либо сценарий, выполнение стандартного сценария не производится. Отработка сигналов, в этом случае должна производиться в выполняемом сценарии с использованием идентификаторов RI, DSR, CTS, DCD (принимают значения 0 или 1), анализируя их значения в IF или WAITFOR (прим. WAITFOR RI).

*. - Файлы сценария на передачу, находится в выходном (OUT) каталоге канала. В процессе выполнения изменяется расширение на. trN (где N - порядковый номер канала), после выполнения расширение *.okN или *.err или *.noN;

*.scm - Файлы сценария на передачу Windows версии;

*.nnn - Файлы сценария на срочную передачу, аналогичны описанным выше, но их обработка осуществляется в первую очередь.

*.rcN - принятые файлы во входном каталоге.

Прим.: Если при приеме использовался протокол с передачей имени файла (Y-модем, Z-модем) и не было задано имя в команде RECEIVE, то во входном каталоге могут находиться файлы с любыми именами и расширениями.

8.3 Загрузка.

Для успешной загрузки программы в каталоге, из которого запускается программа должен сохраняться файл mconfig. ini , kconfig. ini. Файлы содержат настройки ПДО.

8.4 Сценарии

Работа управляется сценариями. Сценарий - текстовый файл, каждая строка которого является инструкцией.

Инструкцией может быть:

команда,

метка,

арифметическая операция,

комментарий,

строка контрольной записи (СКЗ).

Длина строки инструкции не должна превышать 89 символов. За один "тик" компьютера выполняется не более одной инструкции (за исключением комментариев и СКЗ ).

Значения устанавливаемые следующими командами являются глобальными и могут быть определены в сценарии инициализации:

ECHOALL, ECHOIN, ECHOOUT, PROTOCOL, SETCOM, SETDIRIN, SETDIROUT SETDIRWORK, SETRUN, SETWAITFOR, SETASCII, TIMEOUT

8.4.1 Комментарии

Комментарий может содержать любой текст. Комментарий начинается с символа / . Символ / должен стоять в самом начале строки.

8.4.2 Строки контрольной записи

Строки контрольной записи используются для занесения, в выполняемый файл сценария заметок о его выполнении. СКЗ могут использоваться оператором для визуального контроля процесса выполнения. СКЗ представляют собой строку звездочек (до 89 символов) *. Процесс занесения заметок представляет собой перезапись на место звездочек текстовой информации. Для перезаписи используется команда MESS_SC.

8.4.3 Идентификаторы

Идентификаторами являются строки символов, начинающиеся с буквы и не совпадающие по написанию ни с одним именем команд. Идентификатор имеет значение, которое сохраняется в процессе выполнения сценария. Значащими являются только первые 5 символов имени идентификатора.

Идентификаторы разделяются по типу на:

метка - числовое значение смещения от начала файла сценария;

переменная - числовое целое,

строковая переменная - до 89 знаков.

На описание всех идентификаторов в сценарии выделяется 2048 байт. На один идентификатор требуется:

- 100 байт - строковая переменная;

- 12 байт - числовое целое;

- 14 байт - метка.

8.4.4 Метки

Метки используются для организации переходов и циклов внутри сценария.

Задание метки в сценарии:

PUTS "ATDP2550034\r"

:METKA

IF(N_OUT) GOTO METKA

Метки могут переопределяться. Действующим является последнее значение.

PUTS "ATDP8\r"

:N1

IF(N_OUT) GOTO N1

PUTS "ATDP2550034\r"

:N1

IF(N_OUT) GOTO N1

8.4.5 Переменные

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

\n - перенос строки;

\r - возврат каретки;

\z - конец текстового файла = 26;

\1 \3 \13 .. - запись в строку числового значения байта.

NUM=12

REZ=NUM+4

NUMNAB="2529761"

STR="ATDP"+NUMNAB

STR= STR+"\r"

8.4.6 Набор команд

Команды используются в сценариях для задания алгоритма функционирования драйвера.

8.4.6.1 ATTEMPT

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

ATTEMPT 10

8.4.6.2 CHMOD

Команда снимает атрибут СКРЫТЫЙ (Hidden) файла, имя которого является параметром команды. Имя файла записывается в переменную, которая следует за командой через пробел.

MAKEFN fl

WRITE fl "Начат прием\R\NАвтоответы:\R\N"

RECEIVE fl

WRITE fl "\R\NЗакончен прием\R\NАвтоответы:\R\N"

CHMOD fl

8.4.6.3 CLBIN

Очистить приемный буфер канала. Рекомендуется использовать в начале выполнения сценария, после команды WAITFOR.

CLBIN

8.4.6.4 CLBOUT

Очистить буфер передачи канала. Рекомендуется использовать в начале выполнения сценария.

CLBOUT

8.4.6.5 CLMESS

Начать вывод следующей информации в бегущей строке с начала экрана.

CLMESS

8.4.6.6 CONNECT

Установить соединение по сети TCP/IP. Операндом команды задается IP алрес и порт абонента с которым устанавливается соединение. После установки соединения системные переменные RI (в случае входящего соединения) и DCD устанавливаются в 1. В случае работы по сети TCP/IP, команды передачи/приема данных (PUTS, GETS, SENDFILE, RECEIVE, SENDTEXT) работоспособны только при установленном соединении.

CONNECT 193.124.140.10:1134

STR = “193.124.140.10:1134”

CONNECT STR

Где: 193.124.140.10 - IP адрес абонента с которым устанавливается соединение, 1134 – номер порта компьютера абонента используемый для установки соединения.

8.4.6.7 DELAY

Задание задержки. Задержка задается в секундах.

DELAY 5

ZADR=2

DELAY ZADR

8.4.6.8 DISABLE

Прервать выбор простых сценариев на выполнение до команды ENABLE. Данную команду можно использовать при идентификации выключения внешнего модема. Не влияет на выполнение спецсценариев.

/dsrinit. sci

IF(DSR) GOTO UP

GOTO DOWN

:UP

PUTS "ATE0X4S0=1&N14&K2\R"

ENABLE

RETURN

:DOWN

DISABLE

8.4.6.9 DISCONNECT

Разорвать установленное соединение по сети TCP/IP. После разрыва соединения системные переменные RI и DCD устанавливаются в 0.

DISCONNECT

8.4.6.10 GETS

Ввести строку из канала. Конец строки обозначается возвратом каретки (\r). При получении \r ввод заканчивается. Если \r не получено в течении времени превышающего заданное в SETWAITFOR, команда заканчивается. Если \r был получен RET = 0, иначе RET = 1. Введенная строка сохраняется в переменной, имя которой указывается после GETS (\r не записывается в полученную строку).

GETS STR

8.4.6.11 GOTO

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

:METKA

GOTO METKA

8.4.6.12 ECHOALL

Команда включения и отключения вывода информации в бегущую строку. Влияет на весь вывод, в том числе и командой MESSAGE. Реакция команды зависит от значения указываемого после команды: 0 - выключить вывод, другое значение - включить.

ECHOALL 1

ECHOALL 0

ZN=1

ECHOALL ZN

8.4.6.13 ECHOIN

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

0 - выключить вывод, другое значение - включить.

ECHOIN 1

ECHOIN 0

ZN=1

ECHOIN ZN

8.4.6.14 ECHOOUT

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

ECHOOUT 1

ECHOOUT 0

ZN=1

ECHOOUT ZN

8.4.6.15 ENABLE

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

/dsrinit. sci

IF(DSR) GOTO UP

GOTO DOWN

:UP

PUTS "ATE0X4S0=1&N14&K2\R"

ENABLE

RETURN

:DOWN

DISABLE

8.4.6.16 HALT

Закончить сценарий "неуспешно". В случае если кол-во попыток не израсходовано ( ATTEMPT 2, или > 2 ), файл сценария переводится в исходное состояние для повторного выполнения. Значение в команде ATTEMPT уменьшается на 1. Если кол-во попыток израсходовано, файл сценария переименовывается в не отправленный *.noN. Количество попыток корректируется в последней выполнявшейся команде ATTEMPT, то есть возможно использование разных команд ATTEMPT с каждой из команд HALT.

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

HALT

HALT 2

8.4.6.17 IF

Команда условного выполнения. Если выражение, в круглых скобках после IF верно или не равно 0, то выполняется команда следующая за закрывающей скобкой.

ZN=10

IF(ZN>6) MESSAGE "ZN больше 6"

IF(ZN<20) MESSAGE "ZN меньше 20"

WAITFOR "CONNECT"

IF(!RET) MESSAGE "соединение установлено"

IF(!RET) GOTO PRM

WAITFOR "CONNECT"

IF(RET) MESSAGE "соединения нет"

IF(RET) GOTO END

8.4.6.18 MAKEFN

Команда создания имени файла. Используется для создания оригинального имени файла в приемном каталоге. Рекомендуется применять совместно с командой RECEIVE. Имя файла записывается в переменную имя которой следует за командой.

Имя файла состоит из следующей последовательности:

0:1 символы - день;

2:3 символы - час;

4:5 символы - мин;

6:7 символы - сек.

MAKEFN fl

RECEIVE fl

8.4.6.19 MESS_SC

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

СКЗ представляют собой строку звездочек (до 80 символов)

*.

Процесс занесения заметок представляет собой перезапись на место звездочек текстовой информации. Команда MESS_SC записывает значение в последнюю встретившуюся в сценарии строку звездочек. Если все звездочки перезаписаны команда не выполняется.

Записываемая информация указывается в переменной следующей за командой. При наличии в записываемой строке символа = (равно), отрабатывается проверка на наличие подстроки (до равно) в СКЗ и она перезаписывается на тоже место. В противном случае строки пишутся друг за другой без разрыва. Строки не должны включать в себя символ * (звездочка).

MESS_SC " No DCD "

MESS_SC _TIME+" "

STR=" ANSW="ANSW

MESS_SC STR+" "

8.4.6.20 MESSAGE

Команда вывода информации в бегущую строку. Выводится информация указанная за командой.

MESSAGE "Connect"

N=23

MESSAGE "Всего="

MESSAGE N

8.4.6.21 PROTOCOL

Команда задания текущего протокола обмена файлами. Тип протокола указывается за именем команды. Список протоколов: A - протокол ASCII, используется для передачи текста; X - X-модем, 1 - X-1k-модем, Y - Y-модем, Z - Z-модем.

По умолчанию: A.

PROTOCOL "A"

При использовании протокола ASCII используются следующие правила:

передача начинается при получении от приемника символа XON (может быть переопределен командой SETASCII), если символ определен как 0 передача осуществляется немедленно;

по окончании передачи текста/файла в канал передается символ конца файла CTRL Z.

8.4.6.22 PUTS

Команда для посылки строки в COM порт. Посылается информация указанная за именем команды. Команда не добавляет сама возврат каретки. Информация записывается в буфер передачи канала. Из буфера в порт символы посылаются по прерыванию. Для анализа кол-ва символов в буфере используйте переменную N_OUT.

STR="ATDP2550034\r"

PUTS STR

:N1

IF(N_OUT) GOTO N1

WAITFOR "CONNECT"

8.4.6.23 RECEIVE

Команда приема файла. Протоколом обмена является протокол установленный по умолчанию или командой PROTOCOL. За именем команды может быть указано имя файла. Если имя файла не указано оно создается по правила описанным для команды MAKEFN или используется имя полученное от передатчика при приеме по протоколу передающему имя файла (Y-модем, Z-модем).

При успешном завершении приема RET = 0, в противном случае в RET записывается код ошибки. Если в команде задано имя файла, то после приема, принятый файл остается скрытым, если нет, то атрибут СКРЫТЫЙ снимается.

MAKEFN file

RECEIVE file

IF(RET) WRITE file "\r\n принято с ошибкой \r\n"

8.4.6.24 RETURN

Закончить сценарий "успешно". Файл сценарий переименовывается в отправленный *.noN

RETURN

8.4.6.25 REWRITE

Команда для записи информации в файл. Имеет два операнда:

первый - имя файла;

второй - записываемая информация.

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

REWRITE "jour.01" "передача завершена\r\n"

8.4.6.26 SENDFILE

Команда передачи файла. Протоколом обмена является протокол установленный по умолчанию или командой PROTOCOL. За именем команды должно быть указано имя файла. При успешном завершении передачи RET = 0, в противном случае в RET записывается код ошибки.

SENDFILE file

IF(RET) MESSAGE "ошибка передачи"

8.4.6.27 SENDTEXT

Команда передачи текста. Протоколом обмена является протокол установленный по умолчанию или командой PROTOCOL. Все последующие строки в файле сценария, до команды ENDTEXT, являются текстом который будет передан в канал связи. При успешном завершении передачи RET = 0, в противном случае в RET записывается код ошибки. В случае отсутствия ENDTEXT окончание передачи происходит по окончании файла сценария.

SENDTEXT

Передаваемая информации

Передаваемая информации

ENDTEXT

IF(RET) MESSAGE "ошибка передачи"

8.4.6.28 ENDTEXT

Команда указывает окончание текста на передачу, для команды SENDTEXT. Имя команды должно следовать с начало новой строки.

8.4.6.29 SETCOM

Не реализована.

8.4.6.30 SETDIRIN

Команда установки каталога входных сообщений. За именем команды следует описание существующего каталога. В данный каталог будут складываться принимаемые по каналу связи сообщения с расширением *.rcN

SETDIRIN 0 "c:\telex\in"

8.4.6.31 SETDIROUT

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

SETDIROUT 0 "c:\telex\out"

8.4.6.32 SETDIRWORK

Команда установки рабочего каталога. За именем команды следует описание существующего каталога. В данном каталоге должны находится служебные файлы, файлы журналов и т. д.

SETDIRWORK 0 "c:\telex\work"

8.4.6.33 SETRUN

Команда описания автозагрузки спец сценария по входящей канальной информации. За именем команды следуют два операнда:

последовательность символов, при получении которой из канала связи, следует производить загрузку сценария;

имя файла сценария который следует загружать (*.sci).

Имя файла сценария можно задавать с полным путем, если путь не указан файл берется из каталога OUT. В имени файла следует указывать расширение.

SETRUN "RING" "ring. sci"

SETRUN "COM" "ring. sci"

8.4.6.34 SETWAITFOR

Команда задает максимальное время ожидания в секундах для команд WAITFOR, GETS, SENDFILE, SENDTEXT. При превышении данного времени вышеуказанные команды прерываются.

Для команд SENDFILE, SENDTEXT временной интервал отсчитывается до момента получения от приемника посылки о готовности к приему.

SETWAITFOR 60

8.4.6.35 SETASCII

Команда переопределяет символ готовности к приему для протокола ASCII. По умолчанию данный символ XON = 17 (десятичное).

Другие программы могут использовать другие символы,

TELIX - 15 (десятичное).

SETASCII 15

8.4.6.36 TIMEOUT

Команда задает максимальное время ожидания в секундах для команд SENDFILE, SENDTEXT. При превышении данного времени вышеуказанные команды прерываются.

Временной интервал отсчитывается при ожидании ответа из канала, от момента получения последней посылки или отправки запроса на какую либо посылку. Через время равное одной пятой TIMEOUT (но не менее 10 сек) пакетные протоколы (X, X1k, Y,Z) делают повторную попытку последней передачи. Для каналов не имеющих прямого соединения (через пакетные сети: X.25, IP и др.) может быть полезно увеличение данного параметра.

TIMEOUT 60

8.4.6.37 WAITFOR

Команда ожидания получения из канала одной из набора заданных последовательностей (до 8 включительно). При получении последовательности команда заканчивается и переменной RET присваивается индекс полученной последовательности (начиная с 0) . Если заданная последовательность не была получена в течении времени установленном командой SETWAITFOR команда заканчивается и переменной RET присваивается значение равное количеству параметров.

PUTS "ATDP"

PUTS NUMB

SETWAITFOR 60

WAITFOR "CONNECT","NO DIALTONE","ERROR","BUSY","NO ANSWER"

IF(!RET) MESSAGE "CONNECT"

IF(!RET) GOTO BEG

IF(RET=1) MESSAGE "NO DIALTONE"

IF(RET=2) MESSAGE "ERROR"

IF(RET=3) MESSAGE "BUSY"

IF(RET=4) MESSAGE "NO ANSWER"

IF(RET=5) MESSAGE "no connect"

GOTO END

:BEG

CLBIN

8.4.6.38 WRITE

Команда для записи информации в файл. Имеет два операнда:

первый - имя файла;

второй - записываемая информация.

В случае если указанный файл существует он предварительно обнуляется. Если имя файла указано без полного пути, то каталогом для файла является каталог WORK установленный командой SETDIRWORK. Если указан файл в каталоге приема, то при создании файла ему устанавливается атрибут СКРЫТЫЙ, если запись производится в существующий файл то сохраняются ранее установленные атрибуты.

8.4.7 Системные переменные

Системные переменные используются в сценария для получения информации о системе. Могут использоваться в арифметических выражениях и операторе IF.

8.4.7.1 RET

Переменная устанавливается при выполнении команд WAITFOR, GETS, SENDFILE, SENDTEXT, RECEIVE и указывает на верность завершения этих команд (0) или ошибку выполнения.

Доступна только на чтение.

WAITFOR "CONNECT"

IF( RET ) GOTO END

8.4.7.2 N_IN

Переменная показывает текущее кол-во необработанных символов в приемном буфере канала.

Доступна только на чтение.

IF(N_IN) GETS STR

8.4.7.3 N_OUT

Переменная показывает текущее кол-во символов в буфере на передачу. Используется для проверки отправлены ли все символы в порт.

Доступна только на чтение.

ATTEMPT 5

FNAME="fname. trn"

NUMBER="2550034"

PUTS "ATDP"

PUTS NUMBER+"\R"

:N1

IF(N_OUT) GOTO N1

WAITFOR "CONNECT"

IF(RET) HALT 1

CLBIN

CLBOUT

SENDFILE FNAME

IF(RET) HALT 1

MESSAGE "передан успешно"

8.4.7.4 RI

Переменная обеспечивает доступ к биту Ring Indicator ( индикатор звонка) в регистре статуса модема. Принимает значения 0 и 1. Если канал, обслуживает соединение по TCP/IP, переменная принимает значение =1 при наличии установленного входящего соединения.

Доступна только на чтение.

IF(RI) MESSAGE "RING"

8.4.7.5 DSR

Переменная обеспечивает доступ к биту Data Set Ready (готовность модема) в регистре статуса модема. Принимает значения 0 и 1.

Доступна только на чтение.

IF(DSR) MESSAGE "модем включен"

IF(!DSR) MESSAGE "модем выключен"

8.4.7.6 CTS

Переменная обеспечивает доступ к биту Clear To Send (готовность к посылке) в регистре статуса модема. Принимает значения 0 и 1.

Доступна только на чтение.

IF(CTS) MESSAGE "модем готов начать передачу"

8.4.7.7 DCD

Переменная обеспечивает доступ к биту Data Carrier Detect (модем связан с другим модемом) в регистре статуса модема. Принимает значения 0 и 1. Если канал, обслуживает соединение по TCP/IP, переменная принимает значение =1 при наличии установленного соединения.

Доступна только на чтение.

IF(DCD) MESSAGE "связь установлена"

8.4.7.8 DTR

Переменная устанавливает бит Data Terminal Ready (готовность компьютера) в регистре статуса модема. Принимает значения 0 и 1. Используется для сброса модема или соединения, перевода модема в командный режим.

Доступна на чтение и запись.

/начальный сценарий scinit. sci или dsrinit. sci

IF(!DSR) GOTO END

DTR 1

RTS 1

PUTS "ATE0X4S0=1&N14&K2\R"

:N1

IF(N_OUT) GOTO N1

MESSAGE "проведена инициализация"

DELAY 1

CLBIN

DTR 0

DELAY 1

DTR 1

:END

/сценарий riinit. sci

DTR 1

RTS 1

PUTS "ATA\r"

SETWAITFOR 60

:N1

IF(N_OUT) GOTO N1

CLBIN

WAITFOR "CONNECT"

IF(!RET) GOTO BEG

MESSAGE "нет соединения"

GOTO END

:BEG

MAKEFN fl

RECEIVE fl

IF(RET) WRITE fl "\r\n принято с ошибкой \r\n"

:END

DTR 0

:N1

IF(DCD) GOTO N1

DELAY 1

DTR 1

8.4.7.9 RTS

Переменная устанавливает бит Request To Send (запрос на посылку) в регистре

статуса модема. Принимает значения 0 и 1. Информирует модем, что компьютер

ожидает посылки данных.

Доступна на чтение и запись.

RTS 1

8.4.7.10 _TIME

Строковая переменная дающая текущее время в формате чч:мм:сс

Доступна только на чтение.

MESSAGE "время:"+_TIME

8.4.7.11 _DATE

Строковая переменная дающая текущую дату в формате dd. mm. gg.

Доступна только на чтение.

MESSAGE "дата:"+_DATE

8.4.7.12 OWNID

Строковая переменная дающая идентификационный номер абонента "автоответ"

устанавливаемый командой SETCOM.

Доступна только на чтение.

GETS STR

IF("GETID"^STR) PUTS OWNID+"\r"

GETS STR

MESSAGE "обмен автоответами "

MESSAGE "соединение с абонентом "+STR

8.4.7.13 N_ATT

Числовая переменная дающая количество оставшихся попыток выполнения текущего сценария, установленное командой ATTEMPT.

Доступна только на чтение.

MESSAGE "осталось попыток: "

MESSAGE N_ATT

8.4.7.14 MY_FN

Имя текущего выполняемого сценария.

8.4.7.15 CLRSC

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

CLRSC=1

8.4.7.16 RT_FN

Имя последнего принятого или переданного файла. Рекомендуется использовать для определения имени принятого файла после выполнения команды RECEIVE без параметра имени файла.

8.4.8 Арифметические и логические операции

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

Прим:

ZN=35+10

ND=ZN/3

IF(ND>=5) MESSAGE ND

KK=10

:N1

MESSAGE KK

KK=KK-1

IF(KK) GOTO N1

int=10

sint=" "

sint=int

/производит преобразование числа в его строковое десятичное отображение

Допустимы следующие операции:

>= больше или равно больше

<= меньше или равно

< меньше

= равно, присвоить

!= не равно

! логическое не

| логическое или

& логическое и

+ сложение числовое, конкатинация строк вычитание,

- унарный минус

/ целочисленное деление

* целочисленное умножение

^ определение вхождения строки в строку

PUTS "AT\R"

GETS STR

IF("OK"^STR) MESSAGE "OK"

8.4.9 Команды настройки протокола Z-модем

Используются только в драйвере поддерживающем протокол Z-модем. Не рекомендуется изменять установки по умолчанию без необходимости.

8.4.9.1 SETZRINIT

CANFDX (1) - при приеме может использоваться полный дуплекс;

CANOVIO (2) - может получать данные в течение дискового ввода - вывода;

CANBRK (4) - может посылать сигнал прерывания;

CANFC32 (32) - можно использовать 32-разрядную контрольную сумму (не реализовано).

По умолчанию установлены CANFDX и CANBRK.

CANOVIO - можно установить на высокоскоростном компьютере с буферизацией дисковой памяти и при монопольной работе драйвера. Также следует установить SETZBUFF 0. Эти установки ускорят прием файлов. Рекомендуется протестировать корректность работы на приеме длинных файлов на максимальной скорости.

SETZRINIT 5

SETZRINIT 4+3

Прим: в языке отсутствуют операции побитного сложения.

8.4.9.2 SETZBUFF

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

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

По умолчанию установлено значение в 2048. Для очень медленных компьютеров (286) в случае ошибок по приему больших файлов рекомендуется уменьшить его до 2048. Для высокоскоростных компьютеров возможно увеличение до 16*1024), с проведением тестирования приема файлов больших размеров.

При использовании каналов связи низкого качества не следует устанавливать слишком большой размер буфера. При задании размера равного 0 - буфер считается бесконечным.

SETZBUFF 4096

8.4.9.3 SETSZPACK

Устанавливает максимальный размер пакета передачи в байтах (до 1024). Следует выбирать исходя из качества канала связи, чем хуже канал, тем меньше размер пакета. По умолчанию 1024.

Прим: не присваивать 0.

SETSZPACK 1024

8.4.9.4 SETZFLC

ZCBIN (1)- "Бинарная" передача - запрещают преобразование безоговорочно

ZCNL (2)- Преобразовывает формат ASCII файлов (в данной версии не поддерживается)

ZCRECOV (3) - ВОССТАНОВИТЬ / ПРОДОЛЖИТЬ передачу прерванного файла. Если у адресата файл существует и меньше, конкатенировать к файлу адресата и начать передачу со смещения равного размеру уже принятого. Используется бинарная передача.

Все опции взаимно исключающие.

По умолчанию ZCRECOV.

SETZFLC 3

Прим: в языке отсутствуют операции побитного сложения.

8.4.9.5 SETZFLM

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

ZMSKNOLOC (128) - инструктирует приемник, чтобы не принимать Файл, если Приемник не имеет файла с тем же именем.

Следующие опции взаимно исключающие.

ZMNEWL (1) файл передается, если отсутствует файл у адресата. Иначе, файл передается и записывается поверх файла адресата, если исходный файл более новый или более длинный. (в данной версии дата файла не передается и не обрабатывается)

ZMCRC (2) Сравнивают файлы источника и адресата. Файл передается, если длины файлов или их контрольные суммы отличаются. (в данной версии не поддерживается).

ZMAPND (3) Конкатенирует содержание исходного файла к концу существующего файла адресата.

ZMCLOB (4) Заменяет существующий файл адресата.

ZMDIFF (6) файл передается, если отсутствует файл адресата. Иначе, файл передается и записывается поверх адресата, если файлы отличаются по длине или дате.

ZMPROT (7) Защищает файл адресата, пересылая файл только если файл адресата отсутствует.

ZMNEW (5) файл передается, если отсутствует файл адресата. Иначе, файл передается, записываясь поверх адресата, если исходный файл является более новым.

По умолчанию установлен режим ZMAPND.

SETZFLM 3

Прим: в языке отсутствуют операции побитного сложения.

8.4.9.6 SETZCTL

Устанавливает максимальный размер окна передачи, используемый при передаче программой передачи.

Идентична SETZBUFF, но если значение из SETZBUFF используется для дачи указаний удаленной программе передачи, то значение SETZCTL используется непосредственно самой программой и перекрывает значение из SETZBUFF, полученное от приемника (используется меньшее значение).

По умолчанию установлено значение в 8*8). При задании размера равного 0 - буфер считается бесконечным.

SETZCTL 8192

8.5 Примеры сценариев

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Начальный сценарий scinit. sci для коммутируемых каналов.

Должен находится в каталоге передачи(OUT)

JR="TGJOUR.1"

/имя файла журнала канала N 1 в каталоге WORK

MESSAGE "{Начало инициализации}"

ECHOIN 1

ECHOOUT 0

/следующая строка рекомендуется только для внешних модемов

SETRUN "RING","riinit. sci"

SETWAITFOR 50

PROTOCOL "1"

TIMEOUT 50

DTR 0

DELAY 1

IF(DSR) GOTO N1

DISABLE

MESSAGE "Модем выключен"

WRITE JR " Модем выключен"

WRITE JR " дата: "+_DATE

WRITE JR " время: "+_TIME

WRITE JR "\R\N*\R\N"

RETURN

:N1

CLBIN

CLBOUT

DTR 1

RTS 1

DELAY 1

/строка инициализации должна соответствовать Вашему модему.

PUTS "ATE0S0=0\R"

:N1

DELAY 1

IF(N_OUT) GOTO N1

MESSAGE "{Проведена инициализация}"

WRITE JR " Проведена инициализация модема"

WRITE JR " дата: "+_DATE

WRITE JR " время: "+_TIME

WRITE JR "\R\N*\R\N"

DELAY 1

CLBIN

DTR 0

Cценарий dsrinit. sci для коммутируемых каналов. Используется только

для внешних модемов. Запускается после включения/выключения питания модема.

Должен находится в каталоге передачи(OUT).

MESSAGE "{Начало инициализации}"

ECHOIN 1

ECHOOUT 0

DTR 0

DELAY 1

DISABLE

IF(!DSR) MESSAGE "Модем выключен"

IF(!DSR) RETURN

ENABLE

CLBIN

CLBOUT

DTR 1

RTS 1

DELAY 1

/строка инициализации должна соответствовать Вашему модему.

PUTS "ATE0S0=0\R"

:N1

DELAY 1

IF(N_OUT) GOTO N1

MESSAGE "{Проведена инициализация}"

WRITE JR " Проведена инициализация модема"

WRITE JR " дата: "+_DATE

WRITE JR " время: "+_TIME

WRITE JR "\R\N*\R\N"

DELAY 1

CLBIN

DTR 0

Пример сценария передачи по коммутируемым каналам. Файл сценария

должен находится в рабочем каталоге(WORK) и иметь расширение .SCM

/передача текста по номеру

ATTEMPT 10

/установить 10 попыток

JR="TGJOUR.1"

/имя файла журнала канала N 1 в каталоге WORK

******

CLRSC=1

/очищать файл сценария после успешного завершения

CLMESS

ECHOIN 1

ECHOOUT 0

DTR 1

RTS 1

DELAY 1

CLBIN

CLBOUT

PUTS "ATDP"

PUTS NUMBER

PUTS "\R"

:N1

DELAY 1

IF(N_OUT) GOTO N1

WAITFOR "CONNECT","NO DIALTONE","ERROR","BUSY","NO ANSWER"

IF(!RET) MESSAGE "CONNECT"

IF(!RET) GOTO BEG

IF(RET=1) mes="NO DIALTONE"

IF(RET=2) mes="ERROR"

IF(RET=3) mes="BUSY"

IF(RET=4) mes="NO ANSWER"

IF(RET=5) mes="no connect"

WRITE JR "Не передан файл: "+MY_FN

WRITE JR " по номеру: "+NUMBER

WRITE JR " дата: "+_DATE

WRITE JR " время: "+_TIME

WRITE JR " "+mes

WRITE JR "\R\N*\R\N"

DTR 0

CLBIN

CLBOUT

DELAY 1

DTR 1

HALT 2

:BEG

MESSAGE "Начать передачу"

DELAY 3

/Посылаем запрос автоответа

PUTS "GET ID:"

CLBIN

/ждем автоответ абонента

GETS ANSW

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3