Перейти к содержимому
Черновик: материал сгенерирован и ещё не вычитан.

Фиксация превышений скорости с печатью на принтере

Алгоритм ведёт архив превышений скорости транспортным средством и по команде выводит архив на печать. Работает на приборах 10 и 7x с интерфейсом RS-232 и картой microSD или памятью eMMC.

Алгоритм построен на EasyLogic — общий порядок загрузки описан в статье «Подключение устройств через алгоритмы EasyLogic».

Подойдёт любой принтер с интерфейсом RS-232, поддерживающий стандартные команды ESC/POS, — например, встраиваемый панельный термопринтер JP-QR203.

Схема подключения принтера к приборам 10 и 7x

  1. В настройках включите модули RS-232 и GNSS, примените настройки и перезагрузите прибор.

  2. В настройках последовательных портов для порта RS-232, к которому подключён принтер, выберите тип периферии Нет.

  3. В Терминале командой CLEARSCRIPT удалите все алгоритмы, которые занимают этот же порт RS-232.

  4. Загрузите алгоритм:

    SCRIPT galileosky/overspeedingreporter0

    Для загрузки с сервера нужен доступ в интернет — GPRS или Wi-Fi. При медленном соединении загрузка может занять несколько минут. Имя загруженного алгоритма появится на вкладке Устройство в строке EasyLogic. При локальном подключении алгоритм можно загрузить из .bin-файла на вкладке EasyLogic.

  5. Перезагрузите прибор.

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

Архив ведётся в пределах заданной длительности — самые старые записи удаляются. Файлы архива лежат в каталоге overspeeds/. Не изменяйте файлы каталога алгоритма вручную.

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

Настройки алгоритма хранятся в файле overspeeds/settings. Часовой пояс — общая настройка с модулем автоинформатора, поэтому он хранится отдельно, в файле time_zone в корне файловой системы.

С момента старта прибора и до окончания инициализации настроек на любую команду приходит ответ wait init settings. На команду с неподдерживаемым номером — unknown cmd=%d.

КомандаЧто делает
OVERSPEEDREP 1Показать текущие параметры
OVERSPEEDREP 2,vЗадать регистрационный номер ТС
OVERSPEEDREP 3,LЗадать ограничение скорости
OVERSPEEDREP 4,hЗадать длительность архивирования
OVERSPEEDREP 5,zЗадать часовой пояс
OVERSPEEDREP 6Напечатать архив

Команды 2…5 отвечают тем же, чем команда 1, — строкой текущих параметров:

vrn=%s;speed limit=%d,setTime=%d,histLength=%d
ПолеЗначение
vrnРегистрационный номер ТС
speed limitУстановленное ограничение скорости, км/ч
setTimeДата и время установки ограничения
histLengthДлина архива, с

Пример ответа:

vrn=ABCDEFGHIJKLMNOPQRST;speed limit=110,setTime=2024-04-15 13:50:07 UTC+05,histLength=259200

Регистрационный номер ABCDEFGHIJKLMNOPQRST, ограничение 110 км/ч установлено 15 апреля 2024 года в 13:50:07 при часовом поясе UTC+5, длина архива — 3 дня (259 200 с).

ПараметрКомандаЗначение
vOVERSPEEDREP 2,vРегистрационный номер ТС, до 20 символов. Пример: OVERSPEEDREP 2,X911HK159BY
LOVERSPEEDREP 3,LОграничение скорости, км/ч; по умолчанию 100. Пример: OVERSPEEDREP 3,150
hOVERSPEEDREP 4,hДлительность архивирования, с; по умолчанию 259 200 (3 суток). Пример: OVERSPEEDREP 4,86400 — 1 сутки
zOVERSPEEDREP 5,zСмещение от Гринвича, ч; −23…+23, по умолчанию 0. Пример: OVERSPEEDREP 5,-2 — UTC−2
OVERSPEEDREP 6

Ответ — print started. Через 2 секунды начинается вывод на печать; одновременно печатаемое содержимое дублируется в диагностику.

Пример напечатанного чека с архивом превышений

Включите канал Алгоритмы и скрипты в Каналах диагностики.

СообщениеЗначение
overspeed begin v=%dЗафиксировано начало превышения скорости
overspeed up v=%dСкорость выросла в пределах текущего события
overspeed endСобытие превышения закончилось
p%d init! / p%d init?Порт для печати инициализирован / ошибка инициализации: не хватает памяти, прибор не перезагружен после загрузки алгоритма (рядом будут сообщения Port Initialization error) либо версия прошивки устарела
p%dw?Ошибка записи в порт — не хватает ресурсов либо ошибка порта
СообщениеЗначение
--- start of printing ---Начало вывода на печать
Current time:YYYY-MM-DD hh:mm:ssТекущие дата и время печати
TimeZone: UTC%s%dУстановленный часовой пояс
VRN: %sРегистрационный номер ТС
Speed limit: %d km/hУстановленное ограничение скорости
Limit set: YYYY-MM-DD hh:mm:ssДата и время установки ограничения
Overspeedings in last %d hours:Заголовок блока превышений с длиной архива
%d.From YYYY-MM-DD hh:mm:ss to YYYY-MM-DD hh:mm:ss, %d km/hНачало и окончание события превышения, максимальная скорость за событие
No eventsСобытий превышения не зафиксировано
--- end of printing ---Окончание вывода на печать

Все сообщения ниже означают неисправность файловой системы — проверьте карту microSD или память eMMC.

СообщениеЗначение
w."%s"[%d]?v=%dОшибка записи в файл настроек
r."%s"?Ошибка чтения файла настроек
fRead?Ошибка чтения файла архива
fWrite?Ошибка записи в файл архива
fDel?Ошибка удаления файла
fRen?Ошибка переименования файла

См. также: Подключение устройств через алгоритмы EasyLogic · Ограничители скорости