Настройка и работа с загрузчиком R1ScaleLoader

Материал из Википедия ЭТИМа (ETIM Wikipedia)
Версия от 14:26, 22 марта 2023; Michael (обсуждение | вклад) (Настройки импорта)
Перейти к навигации Перейти к поиску

Загрузка данных на весы

Для загрузки данных на весы необходимо выполнить следующие шаги:

  1. Установить общие настройки: каталог импорта, логирование и другие параметры;
  2. Создать правила импорта в настройках;
  3. Записать шаблоны этикеток в каталог загрузчика (по умолчанию: ./Data/Labels/) и создать записи о шаблонах этикеток (не обязательно);
  4. Создать записи о весах в настройках;
  5. Записать файл с импортируемыми данными в каталог импорта. Возможен импорт на одиночные весы или на все весы из списка весов.

Далее весы импортируют переданные им данные.

По умолчанию весы LS515 импортируют данные только в период неактивности (по умолчанию 20 секунд после последней активности на весах).

Весы LS215 импортируют данные в фоновом режиме. Во время импорта на экране появляется сообщение: Загрузка.

Настройка загрузчика

Для изменения настроек загрузчика можно использовать разработанную для этого WEB-консоль R1ScaleLoaderControl, либо напрямую изменять файл настроек загрузчика Settings.ini.

Файл настроек находится в каталоге Settings каталога программы. Файл настроек является общим для WEB-консоли и загрузчика.

При изменении файла настроек они применяются загрузчиком автоматически.

Общие настройки

Настройки находятся к группе Main

Название настройки Тип значения Значение по умолчанию Описание
UserName string root Имя пользователя используемое для подключения в весам LS515 по протоколу SSH
Password string 3342222 Пароль используемый для подключения в весам LS515 по протоколу SSH
PasswordAlt string teraoka Альтернативный пароль используемый для подключения в весам LS515 по протоколу SSH, если не подошел основной пароль. Данная ситуация может возникнуть, если включить поддержку протокола Digi на стороне весов. При это весы автоматически меняют пароль пользователя root
MainDataPath string ./Data Путь к данным ПО. В данном каталоге хранятся данные, используемые при работе загрузчика: картинки, этикетки, шрифты и т.д.

Настройки логирования

Настройки находятся к группе Logging

Название настройки Тип значения Значение по умолчанию Описание
EnableLog bool True Включение ведения логов
SaveLogDays int 7 Количество дней, которое сохраняются логи
MaxLogSize int 5000000 Максимальный размер файла лога до выполнения ротации лог-файлов. Размер в байтах
LogLevel string INFO Уровень логирования. Возможные варианты: DEBUG, INFO, WARNING, ERROR, CRITICAL
LogPath string ./Log/ Путь сохранения файлов логов
EnableDigiLogFile bool True Разрешить ведение логов в формате QLoad
DigiLogPath string ./Log/ Путь сохранения файлов логов в формате QLoad

Настройки импорта

Настройки находятся к группе Import

Название настройки Тип значения Значение по умолчанию Описание
ImportPath string ./Import Каталог импорта файлов
ImportImagesPath string ./Import/Images Каталог импорта файлов картинок. Если у товаров и/или групп заданы картинки, то они ищутся в данном каталоге и в случае обнаружения, передаются на весы в каталог /opt/R1Sensor/Data/Images
Encoding string utf-8 Кодировка файлов импорта. Возможные варианты: 'windows-1251', 'dos-866', 'utf-8', 'windows-1256'
RemoteFilesOnStart bool True Удалять файлы совпадающие с правилами импорта, находящиеся в каталоге импорта при запуске загрузчика. Данная опция возможно понадобится при отладке работы загрузчика
Update bool False По умолчанию обновлять базу товаров, иначе выполнять сначала полную очистку базы, а потом загрузку новых данных
SyncTime bool True Синхронизировать время компьютер <-> весы при загрузке данных в весы
LoadLabelsOnLoadDataBase bool True Загружать шаблоны этикеток при загрузке данных в весы
LoadFontssOnLoadDataBase bool True Загружать шрифты при загрузке данных в весы. Данная опция работает только с весами LS215
DateTimeFormat string %Y%m%d%H%M Формат даты времени в файлах импорта

Список весов

Настройки находятся к группе ScaleX

Где Х - это порядковый номер весов.

Название настройки Тип значения Значение по умолчанию Описание
Enabled bool True Разрешить использование данных весов
Name string Название
Type string Тип весов. Возможные варианты: LS515, LS2M3, Digi SM100/300
IP string IP-адрес весов
Labels string Шаблоны этикеток используемые весами. Задаются номера шаблон этикеток (один или более)
Comment string Примечание


! Весы Digi на 17.03.2023 не поддерживаются



Список шаблонов этикеток

Настройки находятся к группе LabelX

Где Х - это порядковый номер шаблона этикеткив.

Название настройки Тип значения Значение по умолчанию Описание
Enabled bool True Разрешить использование данных весов
Number int Номер шаблона этикетки в весах
FormatFile string Файл содержащий формат этикетки
MapFile string Файл содержащий задний фон этикетки (статические объекты)
TblFile string Файл содержащий исходный (редактируемый) шаблон этикетки. Данный файл может отсутствовать
Comment string Примечание

Список правил импорта

Настройки находятся к группе ImportRuleX

Где Х - это порядковый номер правила импорта.

Название настройки Тип значения Значение по умолчанию Описание
Enabled bool True Разрешить использование данного правила
Name string Название
RegExp string Регулярное выражение в формате Python для захвата файлов импорта
Type string Тип правила. Возможные варианты: database, labels, files, digicsv
Path string Путь на весах LS515. Используется в правилах копирования файлов
Comment string Примечание

Типы правил:

  • database
используется для импорта файлов с данными товарной базы.
поддерживаются форматы csv и xml
формат файлов csv описан в соответствующем разделе руководства
формат файлов xml описан в соответствующем разделе руководства
перед передачей данные файлы преобразуются в зависимости от типа весов, на которые ведется передача
  • labels
используется для передачи шаблонов этикеток на весы
  • files
данное правило используется только при работе с весами LS515
используется для простого копирования файлов на весы
при использовании данного правила необходимо задать путь на весах, куда будут скопированы файлы
  • digicsv
данное правило не поддерживается
используется для импорта файлов с данными товарной базы из файлов в формате QLoad.
поддерживаются формат csv
перед передачей данные файлы преобразуются в зависимости от типа весов, на которые ведется передача

Создание регулярного выражения для правил

Правило захвата файлов загрузчиком построено на регулярных выражений в формате Python. В правилах используются именованные группы, именно они должны быть описаны в формате Python. В остальном регулярные выражения стандартны.

Использование именованных групп:

Для задания IP адреса весов - <IP>
Для задания № этикетки - <NUM>


Для проверки правил можно использовать бесплатный онлайн сервис regular expressions 101 или аналогичные.


Пример для задания этикеток с привязкой к номерам:

.*[tTlL](?P<NUM>\d+).*_fmt(?P<IP>(?:#)\d{1,3}

Этому примеру соответствует:

L17_fmt.lnx

Где 17 - это номер этикетки. Этикетка рассылается на все весы из списка весов.


L17_fmt#158.lnx

Где 17 - это номер этикетки. Файл передается на весы с адресом .158 в последней части IP адреса.


Пример правила простого копирования файла на весы:

.*(?P<IP>#\d{1,3}

Этому примеру соответствует:

input.xml

Файл рассылается на все весы из списка весов.


input#158.xml

Файл передается на весы с адресом .158 в последней части IP адреса.

Запуск загрузчика

Для работы программы необходим Python версии 3.10 и новее.

Так же необходимо установить используемые в программе библиотеки, указанные в файле requirements.txt.

Команда установки зависимостей: pip install -r /opt/PyR1ScaleService/requirements.txt


ОС Windows

Для запуска загрузчика используются файл run-loader.bat, находящийся в каталоге ПО.

Для запуска ПО вручную необходимо выполнить команду из каталога ПО: python R1ScaleLoaderMain.py

ОС Linux

Каталог, где должно находится ПО по умолчанию: /opt/PyR1ScaleService

Для запуска загрузчика в качестве сервиса systemd необходимо установить службу r1scaleloader.service командой systemctl enable r1scaleloader.service.

В случае расположения ПО по другому пути, необходимо внести соответствующие изменения в файл  r1scaleloader.service.


Для запуска ПО вручную необходимо выполнить команду из каталога ПО: python3 R1ScaleLoaderMain.py