Протокол сеанса связи с PC
аппаратов Аркадия v7.21, Матрикс v8 и Коммуникатор v9
Начало сеанса: для начала сеанса PC должен непрерывно посылать байт 00d со скоростью:
- 2400 или 9600 для связи через линейное гнездо;
- 9600 или 19200 для связи через опторазвязанный адаптер,
и прекратить эту последовательность в момент получения ответа от аппарата - байта 123d.
Поддержание сеанса связи (иначе при отсутствии обмена аппарат через 30 секунд выйдет из сеанса):
периодически посылать команду - один байт 00d и получать ответ - байт 123d. В процессе передачи и исполнения команд дополнительных действий для поддержания сеанса не требуется.
Посылка команд: перед командой должно быть минимум 300 мс неактивности порта на прием или передачу. Окончание приема чего-либо от аппарата - по приходу требуемого количества байт или по таймауту 100мс. Каждая команда состоит из префикса - трех символов "Ar:" и байта - кода команды. Команды всегда посылаются компьютером аппарату. Некоторые команды - двухбайтовые, второй байт конкретизирует объект приложения команды (номер списка, мелодии...).
|
десятич-ный код команды |
лин. гне-здо | опто адап тер | Арк адия | Матрикс Комму-никатор | направ- ление данных | что передается | кодировка | |
| 00 | + | + | + | + | нет | пустая команда для поддержания сеанса. Должна передаваться в отсутствии других операций не реже 30 сек. | ||
| 01 | + | + | + | + | из А в PC | 512 строк Архива звонков. Формат подробно описан на этой странице | Апп, ниббл. | |
| 02 | + | + | + | + | из А в PC | все непустые строки Исходящих. Формат подробно описан на этой странице | Апп, ниббл | |
| 03 | + | + | - | + | из А в PC | полученная от АТС фамилия звонящего или переадресующий номер - для последних 64 строк архива звонков, по 16 символов в строке. Итого 64*16 = 1024 байт | ASCII | |
| 04 | + | + | + | + | из А в PC | номера записной книжки. 96 (Арк) или 100(Мтр) строк по 8 байт на строку | Апп, ниббл | |
| 05 | + | + | + | + | из PC в А | |||
| 06 | + | + | - | + | из А в PC | имена записной книжки. 64 строки по 16 байт на строку | CP866+Апп | |
| 07 | + | + | - | + | из PC в А | |||
| 08 | + | + | + | + | из А в PC | блок описателей для обработки кода области(города). | Апп | |
| 09 | + | + | + | + | из PC в А | |||
| 10 | + | + | - | + | из А в PC | строка приветствия. 13 символов | CP866 | |
| 11 | + | + | - | + | из PC в А | |||
| 12 | + | + | + | + | из А в PC | стек срабатываний датчиков охраны. 4 байта на запись: (датчик, час, мин, дата). Кол-во записей - по таймауту | ||
| 13 | + | + | + | + | нет | очистить стек срабатываний датчиков охраны | ||
| 14 | + | + | + | + | из А в PC | полный слепок ОЗУ аппарата - 32768 байт. После загрузки в аппарат автоматически обновится ОЗУ процессора из копии, лежавшей в ОЗУ аппарата на момент сохранения. | ||
| 15 | + | + | + | + | из PC в А | |||
| 16 | + | + | + | + | из А в PC | функции аппарата. 8 функций в одном байте. | количество байт определяется по таймауту приема. | байт=0...255 |
| 18 | + | + | + | + | из PC в А | аппарат проигнорирует байты после требуемых | ||
| 17 | + | + | + | + | из А в PC | параметры аппарата. Один байт на параметр. | количество байт определяется по таймауту приема. | байт=0...99 |
| 19 | + | + | + | + | из PC в А | аппарат проигнорирует байты после требуемых | ||
| 20 | + | + | + | + | из А в PC | настройки тарификатора - 2 байта: цена минуты и кол-во бесплатных минут | ||
| 22 | + | + | + | + | из PC в А | |||
| 21 | + | + | + | + | из А в PC | продолжительности разговоров - 4 байта: мл.байт,ст.байт прошлого месяца, мл.байт,ст.байт текущего месяца | ||
| 23 | + | + | + | + | из А в PC | параметры времени - 5 байт: долясек,мин,час,дата,месяц+деньнедели. Долясек - Арк: 0...119, Мтр: 0...239. Месяц - мл. 5 бит (1...12) , день недели - ст. 3 бита (1...7). Мин (0...59). Час (0...23). Дата (1...31). | ||
| 24 | + | + | + | + | из PC в А | |||
| 25 | + | + | + | + | из А в PC | буфер номера. 1 байт - одна цифра (или пусто,*,#,P,-) | количество байт определяется по таймауту приема. | Апп |
| 26 | + | + | + | + | из PC в А | аппарат проигнорирует байты после требуемых | ||
| 27 | + | + | - | + | из А в PC | буфер фамилии, 16 байт | CP866+Апп | |
| 28 | - | + | + | + | из А в PC | состояние аппарата - один символ: T - поднята трубка/вкл.спикерфон; F - линия свободна; D - линия занята | ASCII | |
| 29 | + | + | + | - | из PC в А | таблица клавиатуры (только для общедоступной Аркадии). 7*8 байт - кодов клавиш. | ||
| 30 | + | + | + | + | нет | смена скорости во время сеанса - на 2400 (лин.гнездо), или на 19200 (адаптер) | ||
| 31 | + | + | + | + | нет | смена скорости во время сеанса - на 9600 бод | ||
| 32 | + | + | - | + | из А в PC | слепок нижних 4096 байт ОЗУ аппарата. После загрузки в аппарат автоматически обновится ОЗУ процессора из копии, лежавшей в ОЗУ аппарата на момент сохранения. | ||
| 33 | + | + | - | + | из PC в А | |||
| 34 | + | + | + | + | из А в PC | область ОЗУ для голосового сообщения/загружаемой полифонии (полифония - Матрикс, Коммуникатор). См.команду 53 | количество байт определяется по таймауту приема. | |
| 35 | + | + | + | + | из PC в А | аппарат проигнорирует байты после требуемых | ||
| 36 | + | + | + | + | из А в PC | один (или первый) байт - назначение голосового сообщения (для Матр/Ком - еще и признак его использ. для полифонии). Второй байт - счетчик звонков без ответа, ст.бит (два ст.бита) - язык меню и голоса | первый байт=0...7 | |
| 37 | + | + | + | + | из PC в А | |||
| 38 нм | + | + | + | + | из PC в А | монофоническая мелодия. нм - номер мелодии: Арк - 91...98, Мтр - 91...95. Кол-во байт: Арк- 48, Мтр - 64. | ||
| 39 нм | + | + | + | + | нет | воспроизвести мелодию номер нм. В процессе воспроизведения аппарат не реагирует на команды. | ||
| 40 | + | + | + | + | нет | очистка архива звонков и фамилий к архиву звонков | ||
| 41 | + | + | + | + | нет | очистка исходящих | ||
| 42 | + | + | + | + | нет | очистка записной книги и фамилий к записной книге | ||
| 43 нс | + | + | + | + | из А в PC | список. нс - номер списка. Аркадия - 64 строки по 4 байта. Матрикс/Коммуникатор - 32 строки по 4 байта. | Апп, ниббл. | |
| 44 нс | + | + | + | + | из PC в А | |||
| 45 нс | + | + | + | + | нет | стереть список и его дополнительные атрибуты. нс - номер списка. | ||
| 46 | + | + | + | + | из А в PC | сырой код АОН. Кол-во байт определяется по таймауту приема. Мл.ниббл - цифра, ст.ниббл - ее достоверность | Апп, ниббл. | |
| 47 | + | + | + | + | из А в PC | Тональности звонка к тональному списку. 1 байт на строку списка: Арк - 64 байта, Матр/Ком - 32 байта | байт=0...99 | |
| 48 | + | + | + | + | из PC в А | |||
| 49 | + | + | + | + | из А в PC | Номера мелодий к музыкальному списку. 1 байт на строку списка: Арк - 64 байта, Матр/Ком - 32 байта | байт=0...99 | |
| 50 | + | + | + | + | из PC в А | |||
| 51 | + | + | + | + | из А в PC | будильники и таймера. 10 полей по 5 байт. 1й байт: минута(0...59), 2й байт: час (0...23), 3й байт: дни+режим будильника или дата таймера, 4й байт: мелодия 5й байт: переключатель функций | ||
| 52 | + | + | + | + | из PC в А | |||
| 53 | + | + | + | + | из А в PC | ст. байт текущего размера области ОЗУ для голосового сообщения/загружаемой полифонии (умножить на 256) | ||
| 54 нп | + | + | - | + | из PC в А | дополнительная страница ОЗУ. 32256 байт. нп - номер дополнительной страницы - байт = (01...03) | ||
| 55 нп | + | + | - | + | из PC в А | описание дополнительной страницы ОЗУ. 8 байт (номера мелодий). нп - номер доп.страницы - байт = (01...03) | байт=0...90 | |
| 56 | + | + | + | + | нет | завершение сеанса связи с PC (возврат аппарата в часы или учет разговора) | ||
| 57 | - | + | + | + | нет | начало автодозвона по номеру из буфера номера. Сеанс связи будет прекращен. | ||
| 58 | - | + | + | + | нет | начало группового дозвона из соотв.области записной книги. Сеанс связи будет прекращен. | ||
| 59 | - | + | + | + | нет | начало обзвона с оповещением из соотв.области записной книги. Сеанс связи будет прекращен. | ||
| 60 | + | + | + | + | нет | включить голосовой доклад о поступивших звонках. Сеанс связи будет прекращен. | ||
| 61 | + | + | + | + | нет | включить голосовой доклад исходящих звонков. Сеанс связи будет прекращен. | ||
| 62 нs | + | + | - | + | из А в PC | SMS-сообщение. нs - номер сообщения: 0 - текущее (буфер), 1...6 - принятые, 7 - отправленное, 8 - написанное. Длина сообщения = 1байт тип + 160байт текст + 9байт номер и время | CP866+Апп | |
| 63 нs | + | + | - | + | из PC в А | |||
| 64 | + | + | + | + | из А в PC | версия прошивки.Количество байт определяется по таймауту приема (Аркадия ~4 симв, Матрикс ~7 симв). | CP866+Апп | |
| 65 | + | + | + | + | из А в PC | дата компиляции прошивки. 3 байта - дата (01...31) месяц (01...12) год (05...) | ||
| 66 | + | + | + | + | из А в PC | Телефон/наименование производителя аппарата. Количество байт определяется по таймауту приема. | CP866+Апп | |
| 67 | + | + | + | + | из А в PC | модель аппарата.Количество байт определяется по таймауту приема (до восьми символов). | CP866+Апп | |
| 68 | + | + | + | + | из А в PC |
конфигурация аппарата: 1й символ: "A" - Аркадия, "M" - Матрикс/Коммуникатор. 2й символ: "O" -автоответчик. 3й символ: "P" -синтезатор. 4й байт: 01...04 - количество страниц ОЗУ. 5й символ - тип связи: "A"-адаптер, "L"-лин.гнездо. 6й символ - раскладка ПЗУ (только Коммуникатор): S-128кБ, L-+укр., P-полиф. |
ASCII | |
| 69 | + | + | + | + | из А в PC | функции аппарата по умолчанию. 8 функций в одном байте. Кол-во байт определяется по таймауту приема. | байт=0...255 | |
| 70 | + | + | + | + | из А в PC | параметры аппарата по умолчанию. Каждый параметр в одном байте. Кол-во байт - по таймауту приема. | байт=0...99 | |
| 71 | + | + | + | + | из А в PC | блок описателей для обработки кода области(города) по умолчанию | Апп | |
| 72 | + | + | - | + | из А в PC | номер для перехода на Сов.АОН по умолчанию. До восьми цифр в 4х байтах | Апп, ниббл. | |
| 73 | + | + | + | + | из А в PC | минимальные значения параметров. Каждый параметр в одном байте. Кол-во байт - по таймауту приема. | байт=0...99 | |
| 74 | + | + | + | + | из А в PC | максимальные значения параметров. Каждый параметр в одном байте. Кол-во байт - по таймауту приема. | байт=0...99 | |
| 75 | + | + | - | + | из А в PC | названия функций. Длина - по таймауту. Разделитель названий - байт 00. | CP866 | |
| 76 | + | + | - | + | из А в PC | названия параметров. Длина - по таймауту. Разделитель названий - байт 00. | CP866 | |
| 77 нг | - | + | + | + | нет | воспроизвести голосовое сообщение номер нг из чипкордера в линию | ||
| 78 нг | + | + | + | + | нет | воспроизвести голосовое сообщение номер нг из чипкордера в динамик | ||
| 79 | - | + | + | + | нет | воспроизвести основное голосовое сообщение в линию | ||
| 80 | + | + | + | + | нет | воспроизвести основное голосовое сообщение в динамик | ||
| 81 | - | + | - | + | нет | отправить SMS собеседнику (при поднятой трубке) или на номер из буфера номера. Сеанс окончен. | ||
| 82 | - | + | - | + | нет | отправить SMS на номер из буфера номера через SMS-центр. Сеанс окончен. | ||
| 83 | - | + | - | + | нет | Начать DTMF - диалог. В диалоге: из А в PC - коды принятых символов, из PC в А - байты: мл.ниббл - DTMF-цифра (01...10) или DTMF * (13) или DTMF # (12), ст.ниббл - кол-во повторов этой DTMF-цифры. Окончание диалога (возврат в основной сеанс связи - посылкой байта 00 из PC в А | CP866+Апп | |
| 84 | + | + | - | + | из А в PC | Номера мелодий к белому списку. 1 байт на строку списка: Арк - 64 байта, Матр/Ком - 32 байта | ||
| 85 | + | + | - | + | из PC в А | |||
| 86 | + | + | - | + | из А в PC | коды страны к последним 256 строкам Архива звонков. 1 байт на строку, в байте две цифры кода. | ||
| 87 | - | + | - | + | нет | отправить SMS (на номер из буфера номера) имитируя SMS-центр. Сеанс окончен. | ||
| 88 | + | + | - | + | из А в PC | получить из аппарата статус последнего отправленного SMS (один байт). | ||
| 89 | - | + | - | + | нет | перейти в режим полудуплексной трансляции (модем) - для доступа к дальнему аппарату | ||
| 90 | уд.упрвл | - | + | из А в PC | в режиме управляемого аппарата - принимаемые данные транслировать в COM-порт | |||
| 91 | уд.упрвл | - | + | из А в PC | в режиме управляемого аппарата - принимаемый текст показывать на табло и транслировать в COM-порт | |||
| 92 | - | + | - | + | нет | сделать звонок (по номеру из буфера номера) для того, чтобы тот аппарат перезвонил и забрал свой SMS | ||
| 93 | - | + | - | + | нет | после приема SMS в качестве SMS-центра: послать ACK/NACK и вернуться в командный режим | ||
| 94 | - | + | - | + | нет | отдать SMS (уже в буфере) позвонившему SMS-телефону, который был оповещен командой 92 о наличии SMS | ||
| 95 нl | + | + | - | + | нет | записать буфер номера в строку нl записной книги | ||
| 96 | + | + | - | + | из А в PC | 50 последних строк Архива звонков. Формат подробно описан на этой странице | ||
| 97 | - | + | - | + | нет | в режиме SMS-центра: доставить SMS (номер адресата уже загружен командой 26, SMS - командой 63 0) | ||
| 98 | + | + | - | + | из А в PC | таблица сообщ.чипкордера: 240 байт=240 секторов. 00...93h - сообщение к соотв.строке АЗ. 94...97 - сообщения таймеров. 98...9F - оповещение. A0...BF - к 4му списку. C0..EF - к 7му списку. F0...FE - разговоры. FF - свободен. | ||
| 99 | + | + | - | + | из PC в А | |||
| 100 | + | + | - | комму-никатор | из PC в А | загрузить в аппарат блок из 4х монохромных картинок формата 32x32. Каждая картинка: 128 байт, по 8 пикселей в байте (расположены вертикально, мл.бит сверху), слева направо и сверху вниз. Блок - 512 байт. | ||
Расшифровка кодировок:
Апп - внутренняя кодировка аппарата. 16 символов имеют коды 00h...0Fh. Вот эти символы: (пробел, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, F, #, *, P, -).
ниббл - символы в кодировке Апп упаковываются по 2шт в байт. Описано еще тут
ASCII - то, что пришло от АТС безо всяких коррекций
CP866 - кодировка, принятая в MS DOS для русского языка
CP866+Апп - перед передачей нужно сделать замену кодов CP866 для символов Апп на коды кодировки Апп. Если передаваемый объект используется только для вывода на табло - это делать не обязательно, однако если передаваемый объект может быть использован в качестве набираемого номера - необходимо. Обратную процедуру (то есть интерпретацию кодов 00h...0Fh в символы (пробел, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, F, #, *, P, -) ) нужно делать всегда при приеме объектов из аппарата.