Соединение может быть установлено с помощью:
нуль модема;
телефонного модема;
по:
выделенным линиям;
коммутируемым линиям;
сети 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 |


