Синтаксис сценария CCL

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

Каждый тип модема, используемого с OS X, требует модемного сценария. Много сценариев предоставлены OS X. (См. Доступные Модемные Сценарии во Введении этого документа для получения дополнительной информации.)

Если никакой сценарий не предоставлен для Вашего модема, необходимо записать одному использованию Communication Command Language (CCL), язык программирования, конфигурирующий и управляющий модемом. В этом разделе описываются основные элементы и структуру файла CCL.

Команды CCL

Каждая строка кода CCL состоит из одной инструкции, составленной из команды и ее параметров, если таковые имеются. Модемные команды используются в качестве параметров команд CCL. Например, команда write "ATDT^1\13" включает следующее:

Эта команда говорит интерпретатору CCL отправлять в модем модемную команду ATDT сопровождаемый переменной строкой № 1 и возврат каретки (код ASCII 13).

Интерпретатор CCL читает сценарии слева направо и сверху донизу. Это читает сквозной, с начала до конца, если Вы не говорите его иначе (например, при помощи JUMP команда).

Для полного списка команд и их использования, посмотрите Ссылку Команды CCL.

Комментарии

Можно вставить пояснительные тексты в сценарий. Для ввода комментария запустите строку с восклицательного знака (!).

Можно также хотеть использовать пустую строку комментария для создания сценария более читаемым; для этого введите восклицательный знак без текста и нажмите Return.

Капитализация

Интерпретатор CCL не чувствителен к регистру. Поэтому @LABEL 1, @Label 1, @label 1, и @laBel 1 все допустимы (и эквивалентны), инструкции.

Метки

Метки используются для маркировки расположений в сценарии. Другие команды сценария, такой как JUMP, передайте управление расположениям в сценарии, отмеченном @LABEL команда. Например, JUMP 13 говорит интерпретатору CCL переходить к метке 13 и начинать выполнять команды после @LABEL 13 команда. Сценарий может использовать до 128 меток, пронумерованных 1–128.

Форматы строки

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

Строки CCL могут включать ссылки на переменные строки. Посмотрите Переменные строки (varStrings) далее в этой главе для подробных данных.

Строки CCL могут включать непечатаемые символы, такие как нуль, вкладка и возврат. Для поддержки этих непечатаемых символов интерпретатор CCL распознает два специальных символа: наклонная черта влево (\) и каре (^).

Наклонная черта влево является символом кавычки. Можно использовать наклонную черту влево для включения непечатаемого символа путем указания десятичного представления символа ASCII (десятичные числа 00 к 99 допустимы) или явно включать наклонную черту влево или символ вставки в строке.

Каре является переменным символом-разделителем. Можно использовать его для вставки переменной строки или строки ASK в другую строку. (Для получения дополнительной информации посмотрите Переменные строки (varStrings) далее в этой главе.)

Вот некоторые примеры того, как используются наклонная черта влево и каре:

Строка

Результат

\13

вставляет возврат каретки (0x0D) в строку

\00

вставляет нулевой символ (0x00) в строку

\\

вставляет наклонную черту влево (\) символ (0x5C) в строку

\^

вставляет каре (^) символ (0x5E) в строку

^1

вставляет переменную строку 1 в строку

^*

вставляет строку ASK в строку

Вот некоторые строковые примеры:

Строковое содержание

Распечатанный вывод

'this is a test'this is a test
thisisatestthisisatest
"this is a test"this is a test
this is a testthis
"this \34\73\83\34 a test"this "IS" a test
"ATDT^1"ATDT555-1212(если переменная строка 1 555-1212),

Переменные строки (varStrings)

Строки CCL могут включать ссылки на переменные строки, которые являются строками, переданными сценарию как параметры. Большинство этих значений предоставлено OS X на основе указанных пользователями параметров.

OS X использует следующие переменные строки:

Переменная строка

Содержание

Значения

varString1

Полная строка набора (телефонный номер для набора номера, с необходимыми префиксами и суффиксами).

varString2

Модемный флаг динамика:

  • 0— Динамик прочь.

  • 1— Динамик на.

varString3

Селектор тона/импульсного набора:

  • T— Тональный набор номера.

  • P— Импульсный набор.

varString4

Флаг исправления ошибки модема:

  • 0— Сценарий не должен пытаться использовать исправление ошибки модема.

  • 1— Сценарий должен попытаться использовать исправление ошибки модема.

  • 2— Сценарий должен попытаться установить коррекцию ошибок MNP10.

varString5

Зарезервированный для будущего использования.

varString6

Флаг режима набора:

  • 0— Нормальный набор номера.

  • 1— Слепой набор номера (т.е. имейте модем, начинают набирать без подтверждения приема тональных сигналов готовности к набору номера).

  • 2— Набор номера руководства (т.е. имейте сценарий, предполагают, что пользователь уже поднял трубку и набрал удаленный номер).

varString7–varString9

Повреждение переменных строк 7–9 долгая строка набора в более короткие строки для использования с модемами, которые могут принять только ограниченный размер командной строки. Они автоматически сгенерированы OS X.

Переменные varString7, varString8, и varString9 содержите содержание varString1 разделенный на более короткие части. Каждая из этих строк ограничивается 40 символами в длине. Дополнительные символы, которые не впишутся varString7 перетеките автоматически в varString8, и т.д.

Если один или больше этих три переменные не использованы, пустые переменные содержат пустую строку (ASCII 20 шестнадцатеричное число). Займитесь mlts Хранением Ресурса для устаревшей информации об этих строках.

varString27–varString30

Определенный в информационном списке свойств в Вашем пакете сценария CCL. Посмотрите Пакеты CCL и Списки свойств для получения информации.

Все восемь переменных строк передаются сценарию, когда он работает в режиме исходящих звонков. Модемный флаг динамика (varString2) и флаг коррекции ошибок (varString4) передаются сценарию, когда он работает в режиме ответа.

Строки совпадения

Интерпретатор CCL имеет буфер, который может содержать до 32 строк, загруженных MATCHSTR команда. MATCHCLR команда стирает содержание буфера. MATCHREAD ввод чтений команды от модема или другого коммуникационного устройства и сравнивает ввод со строками в настоящее время в буфере. Если соответствие найдено в требуемое время, выполнение продолжается в метке, связанной с той строкой совпадения.

Рекомендуемая стратегия отправки команд к модему следующие:

Размер сценария

Сценарии могут быть максимумом 32 000 байтов. Это является достаточно большим для относительно сложных сценариев набора. Однако, если Ваш сценарий является слишком большим, можно быть в состоянии сделать его достаточно маленьким путем минимизации числа и длины комментариев.