Необходимо обратиться к команде техподдержки киоска за ссылкой на актуальный x64 образ кассы УКМ 5.
При использовании селфи-камеры, сервиса СуперМаг DS и СуперМаг Vision, необходимо не менее 4Гб памяти на кассе и 64-битный образ!
В данном документе представлена инструкция к версии кассы ukm5-pos-x64-1.46.19.iso и соответственно, сервер также должен быть обновлён до версии 1.46.7.
Rufus: https://disk.yandex.ru/d/ciEYjdOw_0NpWA.
Производится заранее пред заливкой на Sherman и непосредственно перед заливкой для каждого магазина.
Подключение к кассовому серверу на флешке:
srvIp=IP кассового сервера (или FQDN имя)
srvPort=9000
tmIp=IP кассового сервера (или FQDN имя)
tmPort=9091
Если не поменять данные на флешке, то на кассе будет окно с возможностью ввести параметры при регистрации кассы.
Примечание. Если загрузка не началась или в BIOS Flash-накопитель не видится, попробуйте пункт 2.1.2.
После регистрации кассы и прогрузки данных обязательно обращаем внимание на текущее время на киоске:
Если время некорректно, проверяем регион и часовой пояс в магазине и указываем корректные значения:
Следующим шагом проверяем ограничение времени на продажу алкоголя.
Переходим в раздел Ограничения продажи – По расписанию:
Заходим в каждое созданное ограничение на продажу алкоголя и убеждаемся, что выбранный магазин входит в установленное ограничение и временной интервал указан корректно (если магазина нет, добавляем его в режиме редактирования (кнопка Редактировать)):
Если монитор настроен нормально, можно перейти к следующему пункту, закрыв приложение крестиком.
Примечание. Не нажимать кнопку Apply!
В меню Настройки типов касс необходимо настроить конфигурационный файл goods_recognition.conf (applications\sale\goods_recognition.conf), как представлено на картинке ниже:
{"app_sale.goods_recognition" : { params : { runOrder = 2 baseUrl = "http://127.0.0.1:6060" //Адрес камера-агента на кассе (в случае использования Jetson - тут адрес Jetson) partnerId = 777 //Идентификатор партнера (узнать у менеджера) pictureUrl = "https://vision.servplus.ru/catalog/picture/" include file("conf/misc/vision.conf") isReweighingDialog = false // Для весов типа NCR (невозможно повторное взвешивание, без снятия товара с весов) blackoutDelay = 2 seconds // При неудачном соединении отправка все запросов будет заблокирована на время blackoutTimeout } } |
Используем нижеуказанные параметры:
Нажимаем Сохранить.
Примечание. При возникновении проблем с распределением камер (камеры выполняют не свои функции), ознакомится с пунктом 6.2.
При использовании шаблона оборудования кассы, созданной на сервере версии 1.46 или выше, данные действия выполнять не требуется.
В данном шаблоне необходимо в папке sound настроить конфигурационный файл input.conf, указав следующие параметры:
# Файл конфигурации принимающего звук устройства defaultSoundCard = alsa_card.pci-0000_00_1b.0 # Основная звуковая карта. Параметр не изменять! defaultProfile = analog-stereo # Основной профиль ввода, поддерживаемые варианты analog-stereo, hdmi-stereo defaultDevice = analog-input-mic # Основное устройство ввода, поддерживаемые варианты analog-input-mic, analog-input-internal-mic, hdmi-output-0, hdmi-output-1 defaultDeviceVolume = 100 # Громкость звука основного устройства ввода, от 0 до 150 (в процентах) |
Дополнительно, необходимо в файле sound настроить конфигурационный файл output.conf, указав следующие параметры:
# Файл конфигурации выводящего звук устройства defaultSoundCard = alsa_card.pci-0000_00_1b.0 # Основная звуковая карта. Параметр не изменять! defaultProfile = analog-stereo # Основной профиль вывода, поддерживаемые варианты analog-stereo, hdmi-stereo defaultDevice = analog-output-headphones # Основное устройство вывода, поддерживаемые варианты analog-output-headphones, analog-output-speaker, hdmi-output-0, hdmi-output-1 defaultDeviceVolume = 100 # Громкость звука основного устройства вывода, от 0 до 150 (в процентах) |
После выполнения всех настроек, перезапустить киоск и проверить, что все работает корректно.
Чтобы запустить утилиту для управления устройствами ввода/вывода звука, необходимо выполнить следующие команды в терминале:
1 |
|
На экране кассы (или по VNC) появится интерфейс программы настройки звука.
2. Вывод используемых в системе звуковых карт:
1 |
|
3. Проигрывание звука на кассе через консоль:
Analog (например DP-Kiosk) aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav HDMI (например Гермес) aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav |
Просмотр подключенных к кассе USB-устройств:
dmesg -T | grep Product: |
Видим обе камеры. Одна подключена в порт 1-2, вторая подключена в порт 1.4.3.
Далее нужно привязать камеры к определенным USB-портам, запустив следующие скрипты:
~/mint/bin/manual_ascending_attaching_cameras.sh |
Перезагрузить кассу.
Если камеры не по тем портам, то запускаем скрипт смены камер и повторяем проверки:
~/mint/bin/manual_descending_attaching_cameras.sh |
Перезагрузить кассу и проверить еще раз.
Проверить, выполнена ли привязка, можно следующей командой:
cat /etc/udev/rules.d/60-gst-usb-camera-v4l.rules |
Пример правильного вывода:
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
Создаём конфигурационный файл камеры:
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:
sudo mcedit /etc/netplan/01-netcfg.yaml |
Прописываем адреса dns-серверов, как в примере ниже:
Настраиваем службы:
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 |
Каждую команду нужно выполнить отдельно, не все сразу.
Запускаем службы:
sudo systemctl restart gst_camera@gst_device_usb.service sudo systemctl restart camera_agent.service sudo systemctl restart uni_worker@camera_agent.service |
Каждую команду нужно выполнить отдельно, не все сразу.
Если всё было сделано верно, по инструкции, но вместо картинки с камеры в браузере видно белый пиксель по центру экрана, то перезапускаем udev-правила и службы ещё раз:
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 |
Если и это не помогло, то перезапускаем ОС:
sudo reboot |
Указываем для standBy значения partnerId и PlayerID, ID необходимо запросить у пользователя/маркетолога пользователя. Нажимаем Сохранить.
Для киоска 2.0 на оборудовании "Гермес" можно использовать воспроизведение контента в режиме "receipt" (внутри чека), для чего необходимо раскомментировать вторую строчку в конфигурационном файле и прописать актуальные ID: |
В случае наличия технической возможности программного тестирования интерфейсов подключения устройств киоска самообслуживания, рекомендуется выполнить его в соответствии с имеющейся методикой тестирования.
1. Подключиться к киоску самообслуживания по SSH, используя PuTTY (скачать PuTTY можно по ссылке – https://disk.yandex.ru/d/4sdhDVRcAwfzEw).
Прописываем IP-адрес киоска (IP-адрес можно посмотреть, нажав кнопку Статус), нажимаем Open:
Как альтернативный вариант (если нет возможности использовать PuTTY), можем подключиться к консоли через стандартную PC-клавиатуру, подключенную к кассе, нажав вместе правый ALT+CTRL+F3:
Далее инструкция подходит и для PuTTY, и для работы напрямую с PC-клавиатурой.
Вводим логин ukm5, пароль xxxxxx:
2. Для получения перечня виртуальных устройств на портах системного блока киоска выполняем следующую команду:
dmesg -T | grep Product: | tail -n 200
Видим все подключенные устройства:
3. Необходимо убедиться в отсутствии постоянных дисконнектов (разрывов соединения). Для получения информации (логов) по
дисконнектам устройств, нужно выполнить следующую команду:
dmesg -T | grep disconnect
Если после выполнения команды, никакой информации не выводится, значит дисконнекты отсутствуют.
Пример:
Если дисконнекты присутствуют, то информация будет следующего вида:
Здесь видно, что происходит постоянное отключение устройства USB 1-4.4 в короткий промежуток времени, и очевидно, что это устройство «USB 2.0 Camera»:
Подсчитать полное количество дисконнектов можно через выполнение следующей команды:
cd /var/log/ && zgrep -ia 'kernel' syslog | zgrep -c 'usb 1-4.4: USB disconnect'
Как итог, видно 11 дисконнектов камеры, это повод начать разбираться с камерой, т.е. проверить заземление киоска, проверить порядок подключения USB-портов, попробовать заменить камеру и т.д.
4. Для получения лога по ресетам (переподключению) портов, необходимо выполнить следующую команду:
dmesg -T | grep reset | tail -n 50
Пример:
Из примера видно, что никаких массовых и даже одиночных ресетов не было, можно сделать вывод, что проблем с переподключением USB-устройств нет.
Если ресеты будут присутствовать, то отображение информации будет выведено списком, выделенным красными цветом. Посчитать количество ресетов можно следующей командой:
cd /var/log/ && zgrep -ia 'kernel' syslog | zgrep -c 'usb 1-2: reset'
В случае отсутствия массовых самопроизвольных (не больше 1 раз в день) ресетов (reset) и дисконнектов (disconnect) в логах, киоск считается исправным и допускается к эксплуатации.