Список условных обозначений, сокращений и терминов
АРМ – Автоматизированное рабочее место (диспетчера)
АС – Абонентская станция (для Р23)
БД – База данных
ГС – Голосовая связь
КБС – Контролер базовой станции (для Р23)
ТС – Транспортное средство
Описание команд
Взаимодействие осуществляется по протоколу TCP, порт задаются в параметрах сервера (по умолчанию – 2005 для «Р23», «Р-БД-АЦ02» и 5555 для «Навигатора»). АРМ диспетчера открывает клиентский конец подключения, сервер оборудования – серверный конец подключения. Допускается несколько подключений к одному серверу.
Данные передаются в виде ANSI строк. Все слова отделяются пробелами. Другие разделители не используются. В случае, если значение параметра – текстовая строка, содержащая пробелы, то она заключается в двойные кавычки. Первое слово в строке является ключевым идентификатором команды, последующие слова являются параметрами и атрибутами команды. Имя параметра и его значение отделяются знаком равенства. Порядок следования параметров в строке не имеет значения. Признак конца команды – два символа с ASCII кодами 13, 10
Пример:
access login=test password=”1 2 3 4 5” office=”test” <13><10>
В качестве разделителя дробной части числа используется точка.
Команды «АРМ -> Сервер»
- Адресный запрос навигационных данных:
gpsdata ID=<номер> [position=<указатель> [type=<тип (1/2)>]]
Параметры команды:
ID — номер АС (обязательный параметр),
position — указатель во flesh-памяти АС для запроса ретроспективных данных. Если этот параметр не указан, запрашиваются текущие данные,
type – тип запроса ретроспективных данных (1(по умолчанию) — обычный, 2 — оптимизированный).
- Запрос статуса сервера
get_server_status /без параметров/
3. Запрос ГС (возможны 3 варианта формы):
voice ID=<номер> [channel=<номер канала (0-3)>]
voice groupID=<номер группы> [channel=<номер канала (0-3)>]
voice groupID=ALL [channel=<номер канала (0-3)>]
Параметры команды:
groupID — номер группы для групповой связи или текст «ALL» для общей связи,
ID — номер АС для индивидуальной связи (имеет смысл, только если не задан параметр groupID),
channel – номер канала для голосовой связи (если не указан, выбирается сервером автоматически (сейчас всегда 0)).
4. Отбой ГС:
hangup ID=<номер>
hangup groupID=<номер группы>
hangup groupID=ALL
Форма и параметры команды должны быть в точности такими же, что и в команде «voice», которой сеанс ГС был открыт (за исключением параметра «channel», который в команде «hangup» не используется).
- Присвоить номер группы: (только для Р23)
set_group ID=<номер> groupID=<номер группы>
Параметры команды:
ID — номер АС, включаемой в группу,
groupID — новый номер группы (или -1 для очистки памяти АС).
- Передача строковых сообщений
indicator ID=<номер АС> [text=”<текст для вывода на дисплей (от 0 до 4 строк, разделенных символами \n)>”] [sound=<0 (по умолчанию) – без звука, 1-3 – со звуком>] [timeout=<время отображения текста на экране в десятках секунд (1-240), по умолчанию – 6 (1 минута)>] [blink=<маска битов мигания строк текста (0-15), по умолчанию – 0 (нет мигающих строк)>] [code=<код предопределенного сообщения (0-31), по умолчанию – 0 (нет сообщения)>] [position=<начальная строка на дисплее для вывода текста (1-4), по умолчанию — 1>] [creeping_line=<маска битов бегущих строк (0-15), по умолчанию – 0 (нет бегущих строк)>]
- Регистрация диспетчера
access login=”<логин>” password=”<пароль>” office=<код организации>
- Синхронизация часов ДС по серверу (только для Р23):
synchronization /без параметров/
- Изменение параметров сервера (для Р23):
set_server_status [active=<0/-1>] [make_log=<0/-1>] [log_file=”<имя файла>”] [tcp=
Параметры команды:
active – признак того, что сервер активен (сбор данных включен),
make_log – признак того, что ведется протокол работы сервера,
log_file – имя файла протокола,
tcp – порт TCP для подключения АРМ к серверу,
cbs – код базовой станции, с которой работает сервер,
port – COM-порт, через который осуществляется связь с ДС,
database – DSN базы данных для записи навигационных данных,
login – логин для подключения к базе данных,
password – пароль для подключения к базе данных,
base_timeout –таймаут ожидания подтверждения выполнения команды ДС (в миллисекундах),
sinc_period – периодичность автоматической синхронизации часов ДС по серверу (в минутах).
Примечание: данная команда является привилегированной – пославший ее диспетчер должен быть предварительно зарегистрирован на сервере (командой «access»), и иметь разрешение на изменение параметров сервера; в противном случае ему возвращается ошибка с кодом VHF_ACCESS_DENIED, и изменения не производятся.
- Перезагрузка файла конфигурации
reload
- Запрос версии сервера
about
- Определение подключенного оборудования (опрос СОМ – портов)
detect
- Состояние сервера (статистика)
stat
stat id=<номер возимого устройства> (пока не реализовано)
Выводит статистику по серверу в целом или по конкретному устройству
- Принудительное отключение возимого устройства от сервера (только для Навигатора)
drop id=
- Прошивка возимого устройства (только для Навигатора)
load id=
Примечание: для данной команды параметр “text” должен следовать последним. В значении параметра “text” допустимы символы конца строки.
Прим.: Прохождение всех команд в эфир подтверждается сообщением $Ok.
Команды «Сервер -> АРМ»
1. Ответ на адресный запрос навигационных данных:
gpsdata
ID=<номер>
Gmtime = <в секундах>
longitude=<долгота в градусах>
latitude=<широта в градусах>
speed=<скорость в км/ч>
course=<курс в градусах от северного направления по часовой стрелке>
status=<статус ТС в виде строки с разделителями «;»>
validity=<отметка достоверности -1 или 0>
pdop=<фактор точности>
rssi=<качество связи>
position=<позиция в буфере АС, с которой соотносятся данные навигационные данные>
type=<содержимое служебного байта (из эфирной посылки) как целое число>
RTFlag=<0 – если данные пришли на ретроспективный запрос, 1 – в противном случае>
Примечание: на запрос ретроспективных координат типа 2 сервер посылает 2 ответа с координатами (с двумя различными значениями параметра «position»).
2. Ответ на запрос головой связи по факту ее установления
voice ID=<номер АС> channel=<номер канала ГС> no_of_tries=<число попыток установления ГС>
- Сообщения об ошибках:
error code=<код ошибки>
Код ошибки — текстовая строка в формате ПРЕФИКС_ТЕКСТ, где
ПРЕФИКС – кодовое обозначение канала передачи информации (не содержит символов ‘_’);
ТЕКСТ – кодовое обозначение сообщения (может содержать символы ‘_’);
В случае, если сообщение носит общий характер, не относящийся к какому-либо конкретному каналу, строка ПРЕФИКС содержит значение GENERAL. Например, отказ в соединении с сервером выглядит так: error code=GENERAL_ACCESS_DENIED.
Префиксы каналов:
— VHF:
— GSM: соединение по сотовой сети
— GPRS: интернет – соединение
— GENERAL: см. выше
Коды ошибок (префикс не указан):
BS_NOT_ACTIVE – не получено подтверждения на выполнения запроса от КБС /БС не активна/
RESPONSE_ERROR – ошибка чтения ответа КБС
CRC_ERROR – ошибка контрольной суммы
WRONG_DATA – ошибка декодирования навигационных данных
WRONG_REQUEST – неверный запрос АРМ диспетчера
NO_VOICE – отказ от ГС
Дополнительные параметры: channel=<номер канала ГС> no_of_tries=<число попыток установления ГС>
NO_COM – сбой при открытии СОМ-порта
COM_WRITE_ER – сбой при записи в СОМ-порт
COM_READ_ER – сбой при чтении из СОМ-порта
ODBC_CON_ER – не установлено соединение с базой данных
ODBC_READ_ER – ошибка чтения данных
ODBC_WRITE_ER – ошибка записи данных
NO_CONF_TEXT – нет подтверждения получения текстового сообщения от АС
NOT_ACTIVE – сервер приостановлен
ACCESS_DENIED – недостаточно прав для выполнения команды
WRONG_VEHICLE – ТС не найдено
WRONG_CHANNEL – Канал не поддерживается
UPLOAD_VEHICLE_ERROR – ТС сообщило об ошибке в ходе прошивки
UPLOAD_FAILED – неудача при прошивке ТС
UPLOAD_TIMEOUT – ТС не ответило на запрос своевременно в ходе прошивки
Коды ошибок (специфичных для GSM канала):
GSM_WRONG_PHONE – не указан телефон дозвона
GSM_NO_CARRIER – возимое устройство не берет трубку
GSM_DUPLICATE_VEHICLE – GSM соединение с данным ТС уже установлено
- Информационные сообщения
message code=<код сообщения>
формат кодов сообщений такой же, как у кодов ошибок
Коды сообщений (префикс не указан):
CON_OK – подключение диспетчера к серверу выполнено
Дополнительные параметры: channel=<префикс канала>
DATA_REGIME – станция перешла в режим передачи данных
CONF_TEXT – текстовое сообщение получено АС
ODBC_CON_OK – произошло подключение к серверу БД
SESSION_QUEUED – запрос к серверу поставлен в очередь
SESSION_STARTED – запрос к серверу начал выполняться
SESSION_CLOSED – запрос к серверу успешно выполнен
SESSION_ABORTED – запрос к серверу невозможно выполнить
SESSION_TIMEOUT – запрос к серверу отменен по таймауту (возимое устройство не отвечает)
RELOAD_COMPLETED – перезагрузка файла конфигурации выполнена
- Ответ на запрос статуса сервера и на команду изменения параметров сервера (если не было ошибки доступа)
server_status
active – признак того, что сервер активен (сбор данных включен) (-1 – активен, 0 – не активен),
make_log – признак того, что ведется протокол работы сервера,
log_file – имя файла протокола,
IP – IP-адрес сервера,
tcp – порт TCP для подключения АРМ к серверу,
cbs – код базовой станции, с которой работает сервер,
port – COM-порт, через который осуществляется связь с ДС,
database – DSN базы данных для записи навигационных данных,
login – логин для подключения к базе данных,
password – пароль для подключения к базе данных,
connected – признак того, что подключение к базе данных выполнено (-1 – подключено, 0 – нет подключения),
base_timeout –таймаут ожидания подтверждения выполнения команды ДС (в миллисекундах),
sinc_period – периодичность автоматической синхронизации часов ДС по серверу (в минутах).
Примечание: часть указанных здесь параметров может быть пропущена в ответе, если диспетчеру не разрешено просматривать эти параметры.
- Ответ на изменение номера группы. (только Р23)
get_group ID=<номер> groupID=<новый номер группы (или -1 для очистки памяти АС)> position=<позиция в списке групповых номеров c 0>
- При передаче текстовых сообщений подтверждающий $Ok передается диспетчеру столько раз, сколько раз выходит в эфир КБС. После завершения передачи сообщения сервер высылает диспетчеру текущие навигационные данные, согласно п.1.
- Ответ на запрос о регистрации диспетчера.
Возможные варианты:
message code=VHF_CON_OK – подключение выполнено
error code=VHF_ODBC_CON_ER – сервер не подключен к базе данных
error code=VHF_ODBC_READ_ER – в БД не найдена таблица пользователей или ее не удалось прочитать
error code=VHF_ACCESS_DENIED – учетная запись не найдена в БД или неверный пароль
- Продолжение голосовой связи (Только Р23)
ring
- Ответ на запрос параметров ДС и на изменение параметров ДС:
- Ответ на запрос статистики
stat knownvehicles=”nUPE1; nUPE2; …”
Примечание: knownvehicles – список обслуживаемых сервером в текущий момент возимых устройств. Формат списка: номера возимых устройств, разделенные точкой с запятой.
- Ответ на запрос версии сервера
about ver=<номер версии сервера> формат ХХ.ХХ