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

Системы мониторинга водителя (ADAS/DMS)

Системы мониторинга водителя (DMS) и помощи водителю (ADAS) фиксируют нарушения — сонливость, отвлечение, курение, разговор по телефону, отсутствие на месте, пересечение разметки, опасное сближение — и отдают прибору событие с фотоснимком. Прибор алгоритмом Easy Logic принимает событие, сохраняет фото на microSD и отправляет и то, и другое на сервер мониторинга.

Поддерживаются два устройства:

  • Momenta AutoRing A4 — алгоритм galileosky/momentaAutoRingA4;
  • Cipia-FS10 — алгоритм galileosky/cipiafs.
УстройствоПорт107x7x LiteXS
Momenta AutoRing A4RS-232[0] или RS-232[1]даданетнет
Cipia-FS10RS-232[0] или RS-232[1]даданетнет

Обоим нужны порт RS-232 и microSD-карта. В прошивке 48.28 у 7x Lite (HARDLITE) и XS нет ни HAS_RS232, ни SD_UNIT, а значит нет и HAS_PHOTO — работать с этими устройствами они не могут.

Movon MDSM-7 / MDAS-9 не поддерживается. Производитель заявлял работу только на Base Block (21.21+), 7.0 (23.21+) и специмодификации 7x (35.0+), при этом требуются два порта RS-232 одновременно. Вне области поддержки этой справки.

Схема подключения Momenta AutoRing A4

В настройках самого устройства (по его руководству) в разделе предупреждений нужно выбрать выполнение фото или видео + фото — иначе снимков не будет.

Схема подключения Cipia-FS10, вариант 1 Схема подключения Cipia-FS10, вариант 2

Настройки самого Cipia-FS10:

ПараметрЗначение
Канал передачи данныхRS232
Варианты переадресации телематикиСобытия и изображения
Скорость RS-232115200 или 57600 бит/с
Биты данных8
Стоповые биты1 или 2
Контроль чётностивключён или отключён
Размер передаваемого пакетане более 1024
Контрольная суммавключена
Фотоснимкиделать по контролируемым событиям
Заголовок передаваемых пакетов90A3A3 (hex)

Порядок одинаков для обоих устройств.

  1. Тип периферии выбранного порта RS-232 — Обработчик фотокамеры в Easy Logic:

    RS2320 20 # или RS2321 20 для второго порта

    ⚙ Тип периферии RS-232

    Распиновка и правила подключения порта RS-232 — в статье «Последовательные порты RS-232 и RS-485».

  2. В группе Фотокамера: Период съёмки0, Период съёмки с отправкой на сервер120.

    PHOTOCFG 0,120,0,0,0

    ⚙ Фотокамера

  3. Включите в основном пакете тег Массив пользователя:

    MAINPACKBIT 185,1

    ⚙ Основной пакет

  4. Только для Momenta — отключите журналирование SD-карты:

    JOURNALINGSD 0
  5. Загрузите алгоритм:

    SCRIPT galileosky/momentaAutoRingA4
    SCRIPT galileosky/cipiafs

    Нужен рабочий GPRS или Wi-Fi.

    ⚙ Консоль команд

  6. Перезагрузите прибор — без этого алгоритм не запустится корректно.

    ⚙ Устройство

После старта алгоритм 5 секунд ждёт конфигурационные команды на изменение параметров связи. Если их нет — работает с настройками по умолчанию: порт 0, 115200 бит/с, 1 стоповый бит, без контроля чётности.

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

Настройки связи, заданные командой, живут только до перезагрузки прибора. Чтобы постоянно работать не на настройках по умолчанию, придётся написать вспомогательный алгоритм Easy Logic, который при старте посылает нужные команды. Донорская инструкция приводит такой алгоритм как пример: он конфигурирует основной алгоритм на порт 1, остальное оставляя по умолчанию.

Файлы сохраняются на microSD по пути

PIC/RS232<N>/<YYMMDD>/<hhmmss>.jpg

где N — номер порта RS-232 (0 или 1), YYMMDD — дата, hhmmss — время сохранения.

Под фото прибор отводит 40 % объёма карты. Когда в этой квоте остаётся менее 1 МБ, удаляются 10 самых старых снимков.

MOMENTAPORTCFG # просмотр параметров связи
MOMENTAPORTCFG <n>,<b>,<s>,<p> # установка параметров связи
ADIAG <p> # уровень диагностики
ПараметрЗначение
nномер порта: 0 или 1
bскорость, бит/с
sстоповые биты: 0 — один, 1 — два
pчётность: 0 — без контроля, 1 — нечётность, 2 — чётность

Ответ на обе формы: Pn=<n>,Br=<b>,Sb=<s>,P=<p>.

ADIAG p: 0 — обычная диагностика, 1 — расширенная. Ответ: adv diag <p>. При запуске алгоритма включается обычный уровень; расширенный занимает ресурсы прибора и должен выключаться сразу после поиска неисправности.

Структура массива пользователя (27…35 байт)

Заголовок раздела «Структура массива пользователя (27…35 байт)»

Все многобайтные числа — little-endian.

БайтЗначениеОписаниеПараметр сервера
00x7Fидентификатор универсальной структуры
10x18описатель группы — два 8-байтных числа
2идентификатор событияupar0
10время генерации события (Unixtime UTC, мкс)upar1
180x11описатель группы — два 1-байтных числа
19тип событияupar2
20тип данных событияupar3
210x04описатель группы — одно 4-байтное число
22время приёма события (Unixtime UTC, с)upar4
260x…описатель группы — строка до 8 символов
27…34дополнительная информация о событииupar5

Тип данных события — битовое поле:

БитСмысл
0фото
1видео
2, 3не используются
4начало события
5окончание события
6, 7не используются

DMS (поведение водителя):

КодСобытие
0invalid
1закрытие глаз
2зевание
3разговор по телефону
4курение
5перекрытие камеры
6отвлечение внимания
7ремень безопасности не пристёгнут
8усталость
9водитель не обнаружен
16приём пищи или напитков
23смена водителя
24возврат водителя
25…47зарезервировано

ADAS (дорожная обстановка):

КодСобытие
160предупреждение о пересечении полосы (LDW)
161предупреждение о лобовом столкновении (FCW)
162резкое ускорение
163резкое торможение
164FCW по относительной скорости
165HMW — столкновение по абсолютной скорости
166LDW_L — выезд из полосы влево
167LDW_R — выезд из полосы вправо
168PCW — столкновение с пешеходом
169VB — предупреждение о столкновении на низкой скорости
176…191зарезервировано

Обычная:

СообщениеЧто означает
aType=%d,dType=%dтип события и тип данных события
aId=0x%s,mSz=%dидентификатор события (hex) и размер медиаданных, байт
aTime=0x%s,~=%dвремя генерации (Unixtime, мкс, hex) и время приёма (Unixtime, с)
aExInfo=%sдополнительная информация события
gen path? len=%d,port=%dошибка генерации имени файла фото
p %d Init! / p %d Init?порт инициализирован / ошибка инициализации
c.sv!сохранена принятая часть фото
snp.sv!фото сохранено полностью
er=%d−1 нет ожидаемых данных за отведённое время, −2 ошибка передачи, −3 ошибка записи в файл, −4 ошибка входных данных
mediaType %d?неизвестный тип медиаданных

Расширенная печатает подробности приёма медиаданных: m aType=%d,mType=%d (1 — фото, 2 — видео), m id=…,seq=%d, m totM=%d,cM=%d (всего частей и текущая), m len=%d, ack seq=%d,e=%d / ack seq=%d!; ход сохранения файла (beg sv …, sv %d of %d, sv?w?, sv?e.delF=%d); служебные вызовы momentaArA4sP, momentaArA4gC, momentaArA4rM, momentaArA4cM; состояние очереди снимков imgQueue=%d и snpQueue? (очередь заполнена).

ПолеЗначение
Идентификатор события−8 638 626 425 547 648 202 = 0x881D6F090DEE1336
Время генерации1 660 814 142 543 154 мкс = 18 Aug 2022 09:15:42 GMT
Тип события3 — разговор по телефону
Тип данных события1 — фото
Время приёма1 661 172 028 = 22 Aug 2022 12:40:28 GMT

Каждая команда без аргумента показывает текущее значение, с аргументом — устанавливает.

КомандаАргументОтвет
CIPIAPORT / CIPIAPORT <p>номер порта 0…2Port <p>
CIPIABAUDRATE / CIPIABAUDRATE <s>скорость, бит/сBaudRate <s>
CIPIASTOPBITS / CIPIASTOPBITS <s>0 — один бит, 1 — дваStopBits <s>
CIPIAPARITY / CIPIAPARITY <p>0 — без контроля, 1 — нечётность, 2 — чётностьParity <p>
CIPIADIAG <p>0 — обычная, 1 — расширенная диагностикаAdv diag <p>

Все числа — little-endian.

БайтЗначениеОписаниеПараметр сервера
00x7Fидентификатор универсальной структуры
10x8Aописатель группы — строка из 10 символов
2идентификатор устройстваupar0
120x8Aописатель группы — строка из 10 символов
13идентификатор водителяupar1
230x71описатель группы — восемь 1-байтных чисел
24тип событияupar2
25причина событияupar3
26качество фиксации координатupar4
27скоростьupar5
28бит 7 — статус зажигания; биты 0–1 — наличие медиа (0 недоступно, 1 только фото, 2 только видео, 3 фото и видео)upar6
29состояние GPIupar7
30состояние GPOupar8
31состояние GPIOupar9
320x48описатель группы — пять 8-байтных чисел
33идентификатор сообщения, int64upar10
41время события по часам устройства (мс с 1980 г., int64)upar11
49широта последнего местоположения, float64upar12
57долгота последнего местоположения, float64upar13
65время последнего местоположения (мс с 1980 г., int64)upar14
730x22описатель группы — три 2-байтных числа
74курсовой угол, int16upar15
76напряжение внешнего питания, int16upar16
78заряд внутренней батареи, int16upar17
800x04описатель группы — одно 4-байтное число
81идентификатор трека, int32upar18
КодСобытиеКодСобытие
1System boot OK15Drowsiness
2System boot failure16Driver Asleep
3System Reset17Driver is using a phone
4Entered sleep mode18Driver is smoking
5Ignition ON19Driver not wearing a seatbelt
6Driver identified20System Error
7IGN Off21System OK
8Movement started22Camera Calibration completed
9Movement stopped233D accelerometer calibration completed
10Unidentified / unauthorized driver24External event triggering
11Driver disappeared25Tampering detection
12Driver has changed26Driver ID updated
13Driver distracted27Heartbeat Event
14Light Drowsiness28GPS status update
КодПричинаКодПричина
0Unspecified19HWMalfunctionCamera
1GPSFailed20PowerLost
2WiFiFailed21MCUOverheat
3eMMCFailed22MCUVersionError
4BTFailed23MCUVersionAPOrHWNumberError
5GSensorFailed24CPUOverheat
6ResponseToServer25ImageSensorOverheat
7MCUSoftwareReset26InvalidConfigRejected
8MainButton27CameraIsWorking
9CLI28ConfigFileRecovery
10EventEnded29ExternalMainButton
11Working30ExternalResponseToServer
12CameraFailure31GPI
13OverExposure32GPIO
14DarkImage33GlobalID
15BlurredImage34IGNOff
16Unrecognized35PositionAcquired
17DamagedLed36PositionLoss
18DeviceNotCalibrated

Обычная:

СообщениеЧто означает
mesId=0x%s,type=%dидентификатор и тип события
reas=%d,drvId=%sпричина события и идентификатор водителя
gen path? len=%d,port=%dошибка генерации имени файла фото
p.Init! / p.Init?порт инициализирован / ошибка инициализации
c.sv! / snp.sv!сохранена часть фото / фото сохранено полностью
er=%d−1 нет данных за отведённое время, −2 ошибка передачи, −3 ошибка записи в файл

Расширенная печатает содержимое события: devId=%s,tripId=%d, time=0x%s,spd=%d, lTime=0x%s,hAng=%d, lat=0x%s,ePow=%d, long=0x%s,iBpow=%d, qual=%d,ignS=%d, gpi=%d,gpo=%d, gpio=%d,snpV=%d (наличие медиа 0…3), а также ход сохранения файла: beg sv %s, sv %d of %d, sv?,delF (ошибка сохранения, файл удалён).

  • Movon MDSM-7 / MDAS-9 — только Base Block, 7.0 и специмодификация 7x, требуют двух портов RS-232. Вместе с этой темой выпадает набор тегов CAN8BITR5CAN8BITR16, CAN16BITR5CAN16BITR9, CAN32BITR5CAN32BITR8, которыми алгоритм Movon отдавал состояние камер.
  • Скриншоты конфигуратора 5 и Wialon заменены ссылками go:// и текстом.
  • Пример вспомогательного настроечного алгоритма показан в доноре скриншотом графической схемы Easy Logic; здесь он описан текстом.

См. также: Последовательные порты RS-232 и RS-485 · Внешние CAN-модули: CAN-LOG, SEO CANlog, DTA-CAN · Тахографы · Передача данных на сервер · Вкладка «Терминал»