Настройка и работа с загрузчиком R1ScaleLoader
Содержание
Загрузка данных на весы
Для загрузки данных на весы необходимо выполнить следующие шаги:
- Установить общие настройки: каталог импорта (каталог находится на компьютере, где запущен загрузчик), передачу шрифтов/этикеток, логирование и другие параметры;
- Создать правила импорта файлов с данными в настройках;
- Записать шаблоны этикеток в каталог загрузчика (по умолчанию:
./Data/Labels/) и создать записи связывающие номера шаблонов этикеток с конкретными файлами. Данный пункт не является обязательным; - Создать записи о весах в настройках;
- Записать файл с импортируемыми данными в каталог импорта. Файл можно записать в каталог импорта непосредственно на компьютер, где установлен загрузчик, либо передать с помощью WEB-консоли. Возможен импорт на одиночные весы или на все весы из списка весов, все определяется правилами и зависит от имени файла.
Далее весы импортируют переданные им данные.
По умолчанию весы 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