...
6.2. Настройка нескольких камер в драйвере uvcdriver (диагностика USB-оборудования)
- Подключить 2 камеры.
Просмотр подключенных к кассе USB-устройств:
Блок кода language bash theme RDark dmesg -T | grep Product:
Видим обе камеры. Одна подключена в порт 1-2, вторая подключена в порт 1.4.3.
Далее нужно привязать камеры к определенным USB-портам, запустив следующие скрипты:
Блок кода language py theme RDark ~/mint/bin/manual_ascending_attaching_cameras.sh
Перезагрузить кассу.
- Проверить, что в СуперМаг Vision и демонстрации покупателя есть картинка с камеры.
Если камеры не по тем портам, то запускаем скрипт смены камер и повторяем проверки:
Блок кода language py theme RDark ~/mint/bin/manual_descending_attaching_cameras.sh
Перезагрузить кассу и проверить еще раз.
Проверить, выполнена ли привязка, можно следующей командой:
Блок кода | ||||
---|---|---|---|---|
| ||||
cat /etc/udev/rules.d/60-gst-usb-camera-v4l.rules |
Пример правильного вывода:
Здесь мы можем увидеть, что камера, подключенная в порт 1-1, работает как фронтальная камера, а камера подключенная в порт 1-4.3, работает как камера СуперМаг Vision.
В случае, если привязка камер не выполнена, в поле KERNELS будет пусто. Нужно будет выполнить привязку еще раз.
Внимание! В случае, если было выполнено подключение камер в другие порты, нужно еще раз выполнить привязку камер.
7. Смотрим, что нет проблем с портами USB:
dmesg -T | grep disconnect
dmesg -T | grep reset
Не должно быть reset больше 1 раза в 3 дня и disconnect устройства в порту камер чаще одного раза в 3 дня.
Наличие большого количества сообщений с типом disconnect вероятнее всего, говорит о наличии проблемы с физическим подключением устройства (плохой разъем, кабель, плохой контакт).
Наличие большого количества сообщений с типом reset может свидельствовать о нехватке электропитания для устройства. Необходимо подключение в другие порты, согласно схеме:
Вот пример явно неправильного подключения устройства. Нужно сменить порт подключения устройства, подключенного в порт 1-2.
Вот пример устройства, которое не определяется в порту (возможна также ошибка error -30, error -71). Может помочь полное отключение кассы по питанию, отключение устройства от порта, подключение устройства обратно через 5 минут или смена порта.
8. Если проблем нет, то проверяем правильно ли привязаны камеры (не перепутаны ли местами). Должна работать фронтальная камера (проверяем, подключившись по VNC) и камера СуперМаг Vision (проверяем, положив что-то на весы и нажав на кнопку Взвесить).
Примечание. Проверить работу камеры по ссылке в браузере недостаточно!!!
...
Если что-то не совпадает, прописываем камеры:
cd cd /home/ukm5/mint/bin
./manual_ascending_attaching_cameras.sh
# ascending - – повышается номер порта для фронтальной камеры.
Смотрим правила, как изменились номера портов:
cat /etc/udev/rules.d/60-gst-usb-camera-v4l.rules
Перезапускаем кассу:
sudo reboot
Проверяем, не перепутались ли камеры местами.
Если перепутались то:
cd /home/ukm5/mint/bin
./manual_descending_attaching_cameras.sh
Смотрим правила, как изменились номера портов:
cat /etc/udev/rules.d/60-gst-usb-camera-v4l.rules
Перезапускаем кассу:
sudo reboot
Запускаем покупателей и мониторим:
dmesg | grep reset
или
dmesg | grep disconnect
6.3. Настройка СуперМаг Vision на Sherman-J
Создаём конфигурационный файл камеры:
Блок кода language py theme RDark sudo cat >> /var/opt/camera_agent/config.yaml << 'EOF' %YAML 1.2 --- schema_version: 2 web_api: recognition: https://vision.servplus.ru/v2.3/recognize/partner/ upload: https://vision.servplus.ru/v2.3/upload/ devices: gst_device_usb: connection: v4l2src device=/dev/v4l/by-id/gst-usb-camera socket: /tmp/gst_dev_usb cap: image/jpeg,width=1920,height=1080,framerate=30/1 default_camera: <<cameraID>> sources: <<cameraID>>: camera: classname: GStreamerSRBCamera stream: shmsrc socket-path={devices.gst_device_usb.socket} num-buffers=1 ! {devices.gst_device_usb.cap} ! appsink device: gst_device_usb transform: - Crop: box: [670, 280, 1270, 800] EOF
Меняем отмеченные жёлтым выше параметры на те, что были в RPi.
Пример. В режиме редактирования файла F4 – в mc, проверяем, что в конце строк нет символов переноса; если есть, то удаляем.
Ниже пример правильного конфига:
А вот так быть не должно:Настраиваем DNS:
Блок кода language py theme RDark sudo mcedit /etc/netplan/01-netcfg.yaml
Прописываем адреса dns-серверов, как в примере ниже:
Настраиваем службы:
Блок кода language py theme RDark sudo sed -i -e 's/ukmclient/ukm5/g' /etc/systemd/system/camera_agent.service sudo sed -i -e 's/ukmclient/ukm5/g' /etc/systemd/system/gst_camera@.service sudo sed -i -e 's/ukmclient/ukm5/g' /etc/systemd/system/uni_worker@.service cd /opt/camera_agent; sudo venv/bin/python3 -u devices.py sudo systemctl enable --now uni_worker@camera_agent sudo systemctl enable camera_agent.service
Каждую команду нужно выполнить отдельно, не все сразу.
Запускаем службы:
Блок кода language py theme RDark sudo systemctl restart gst_camera@gst_device_usb.service sudo systemctl restart camera_agent.service sudo systemctl restart uni_worker@camera_agent.service
Каждую команду нужно выполнить отдельно, не все сразу.
- По пути http://IP_KASSA:6060/image должна быть доступна картинка с камеры:
- Если картинка с камеры не видна или на экране черный квадрат, то перезагружаем весь системный блок кассового аппарата по питанию.
- Если при открытии http://IP_KASSA:6060/sku/image видим ошибку 500, то вероятнее всего ошиблись в конфигурационном файле /var/opt/camera_agent/config.yaml.
Если всё было сделано верно, по инструкции, но вместо картинки с камеры в браузере видно белый пиксель по центру экрана, то перезапускаем udev-правила и службы ещё раз:
Блок кода language py theme RDark sudo udevadm control --reload-rules && udevadm trigger sudo systemctl restart gst_camera@gst_device_usb.service sudo systemctl restart camera_agent.service sudo systemctl restart uni_worker@camera_agent.service
Если и это не помогло, то перезапускаем ОС:
Блок кода language py theme RDark sudo reboot
- Проверяем работу СуперМаг Vision.
7. Настройка СуперМаг DS (воспроизведение контента)
- Переходим в
...
- конфигурационный файл оборудования киоска (Магазин – Кассы, выбираем интересующую кассу и нажимаем кнопку Оборудование):
...
- Открываем конфигурационный файл ds.conf (\misc\ds.conf):
...
Указываем для standBy значения partnerId и PlayerID, ID необходимо запросить у пользователя/маркетолога пользователя. Нажимаем Сохранить.
Информация title Важная информация Для киоска 2.0 на
...
оборудовании "Гермес" можно использовать воспроизведение контента в режиме "receipt" (внутри чека),
...
для чего необходимо раскомментировать вторую строчку в конфигурационном файле и прописать актуальные
...
ID:
- Переходим в настройки
...
- типа касс киоска 1.0 или 2.
...
- 0 – принципиально не важно, методология одна (Магазин – Типы касс, выбираем интересующий тип касс и нажимаем Настройки).
...
- В файле sale.conf (applications\sale\sale.conf
...
- ) проверяем,
...
- что
...
- строка, содержащая файл с настройками СуперМаг DS, раскомментирована:
...
...
- В файле mintukm.conf (applications\mintukm.conf) проверяем, что
...
- строка с
...
- настройками СуперМаг DS раскомментирована:
Если было закоменчено, раскомментируем.
- После сохранения всех настроек, перезагружаем киоск. Ждём, когда закачается расписание с контентом.
- Локально на кассе можно проверить по пути:
- После закачки, проверяем, что контент в режиме StandBy (ожидание покупателя) воспроизводится. Если используется оборудование
...
- "Гермес", также проверяем контент внутри чека.
...
- Воспроизведение рекламы внутри чека возможно на всех
...
- киосках, у которых на основных
...
- мониторах стоит разрешение от
...
- 1920x1080.