Импорт данных по протоколу R1Sensor
Содержание
- 1 Дата изменения документации
- 2 Общие сведения о протоколе
- 3 Примеры запросов/команд
- 4 Запросы/команды
- 4.1 Установка связи
- 4.2 Проверка связи
- 4.3 Получение и установка даты и времени на весах
- 4.4 Начало и окончание загрузки товаров и групп
- 4.5 Получение статуса весов
- 4.6 Запуск ротации логов программы и архивов, создаваемых программой
- 4.7 Получение текущего протокола работы весов
- 4.8 Блокировка и разблокировка работы весов
- 4.9 Обнуление веса и тарирование весов
- 4.10 Перезагрузка и выключение весов
- 4.11 Перезапуск и завершение работы ПО весов
- 4.12 Получение информации о файле, картинке, шаблоне этикетки или других файла в каталоге программы на весах, удаление и добавление файлов
- 4.13 Выполнение команды весами
- 4.14 Очистка базы товаров и групп
- 4.15 Добавление товаров, обновление или удаление товаров и групп товаров
- 4.16 Добавление или связывание шаблонов этикеток
- 4.17 Изменение номера и названия магазина
- 5 Перечень ошибок
Дата изменения документации
06.06.2019 года.
Общие сведения о протоколе
Протокол основан на запросах/ответах передаваемых в формате JSON [1].
Для коммуникации между весовым комплексом и управляющим компьютером используется протокол TCP/IP.
На весовом комплексе запущена серверная часть, прослушивающая порт 27706. Данный порт можно поменять через настройки весового комплекса.
Весы допускают множественные одновременные подсоединение к прослушиваемому порту.
! | запрещается одновременно обновлять базу товаров в параллельных сессиях. |
Допускается параллельное выполнение таких операций как копирование файлов или копирование файлов.
Алгоритм взаимодействия
- При подсоединении к весам, они выдают пакет соединения.
- В ответ на этот пакет в течении 30 секунд необходимо передать пакет установки связи. В случае истечения таймаута весы закрывают соединение.
- В дальнейшей работе весам необходимо раз в 30 секунд передавать любую команду (например: тест связи).
- Если этого не происходит весы разрываются соединение (данная возможность отключается через настройки весов).
- На каждый запрос или команду весовой комплекс выдает подтверждающий пакет, либо пакет с запрошенными данными.
Запросы к весовому комплексу
Запрос обязательно должен содержать следующие поля:
id
- идентификатор запроса. Можно использовать для проверки, что ответ идет на ту команду, на которую посылался запрос.
command
- выполняемый запрос или команда.
объект data
- в данном объекте передаются дополнительные данные, необходимые для выполнения запроса или команды. Так же в этом поле содержится информация о ПО которое сформировало запрос.
Ответы от весового комплекса
Ответ обязательно содержать следующие поля:
id
- идентификатор запроса.
response
- текстовое описание ответа весов (результат выполнения команды или запроса).
response-code
- цифровое код ответа весов (результат выполнения команды или запроса)
объект data
- в данном объекте передаются дополнительные данные, являющиеся результатом выполнения команды. Так же в этом поле содержится информация о ПО весов.
Объект "data"
В объекте data
передаются дополнительные данные, необходимые для выполнения или являющиеся результатом выполнения команд.
Постоянно в объекте дата присутствуют поля application
version
compile-date
, в которых содержится информация о ПО, которое их сформировало. Данная информация используется в информационных целях.
Так же в случае возникновения ошибки присутствует поле response-ext
, в котором содержится расширенное описание ошибки.
Порядок следования полей и объектов в пакетах JSON не важен.
Все двоичные данные пересылаются в кодировке BASE64.
В некоторых командах, пересылающих большие объемы данных, данные предварительно могут быть запакованы архиватором GZip (см. описание команд).
Данная возможность отключается через настройки весового комплекса или в флагом use-compress
объекте data
.
Кодировка русских символов: UTF-8
Примеры запросов/команд
Пример запроса (команда установки связи):
{
"id" : 1,
"command" : "Link",
"data" : {
"application" : "R1 protocol tester",
"version" : "1.0.0.0",
"compile-date" : "26-08-2015"
}
}
Пример ответа (команда выполнена):
{
"id" : 1,
"response" : "Ok",
"response-code" : 0,
"data" : {
"application" : "R1 Self Service Soft.",
"version" : "1.0.2.11",
"compile-date" : "09-08-2017",
"response-ext" : "Extended error description"
}
}
Пакет соединения с сервером:
Сервер выдает при подсоединении к нему клиента.
В ответ на этот пакет в течении 30 секунд необходимо передать пакет установки связи.
В случае истечения таймаута весы закрывают соединение.
Пример:
{
"id" : 1,
"response" : "ConnectOk",
"response-code" : 0,
"data" : {
"application" : "R1 Self Service Soft.",
"version" : "1.0.0.0",
"compile-date" : "01-01-2015"
}
}
Запросы/команды
Установка связи
Передается от клиента серверу после соединения с последним.
Первая команда, необходимая для дальнейшей работы.
Запрос:
"command" : "Link"
Ответ:
"response" : "Ok"
"response-code" : 0
Пример:
{ "id" : 1, "command" : "Link", "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
{ "id" : 1, "response" : "Ok", "response-code" : 0, "data" : { "application" : "R1 Self Service Soft.", "version" : "1.0.2.11", "compile-date" : "09-08-2017" } }
Проверка связи
Эта команда ничего не выполняет.
Используется либо для проверки связи, либо для поддержания связи - не реже чем раз в 30 секунд.
Запрос:
"command" : "TestLink"
Ответ:
"response" : "Ok"
"response-code" : 0
Пример:
{ "id" : 1, "command" : "TestLink", "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
{ "id" : 1, "response" : "Ok", "response-code" : 0, "data" : { "application" : "R1 Self Service Soft.", "version" : "1.0.2.11", "compile-date" : "09-08-2017" } }
Получение и установка даты и времени на весах
При запросе в объекте data
возвращаются дата/время с весов.
При установке в объекте data
передаются дата/время с весов.
Запрос:
"command" : "GetDateTime"
"command" : "SetDateTime"
Ответ:
"response" : "Ok"
"response-code" : 0
"data" : { "date" : "21-08-2015", "time" : "12:00:00" }
Пример:
{ "id" : 1, "command" : "GetDateTime", "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
{ "id" : 1, "response" : "Ok", "response-code" : 0, "data" : { "date" : "21-08-2015", "time" : "12:00:00", "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
{ "id" : 1, "command" : "SetDateTime", "data" : { "date" : "21-08-2015", "time" : "12:00:00", "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
{ "id" : 1, "response" : "Ok", "response-code" : 0, "data" : { "application" : "R1 Self Service Soft.", "version" : "1.0.2.11", "compile-date" : "09-08-2017" } }
Начало и окончание загрузки товаров и групп
Команда BeginUpdate
подается перед загрузкой товаров и/или групп внутренний буфер приема данных в этот момент очищается и весы готовы к приему данных, если команда подается повторно - данные, уже приняты на тот момент удаляются.
Команда EndUpdate
подается после передачи всех данных. После передачи этой команды данные анализируются, сохраняются во внутреннюю базу весов и происходит обновление информации на экране.
Изначально включается режим обновления/добавления товаров и групп. Если после команды BeginUpdate
передать команду ClearGoodsAndGropus
, то включается режим замены базы данных (перед обработкой загруженных данных база данных в весах очищается).
Запрос:
"command" : "BeginUpdate"
"command" : "EndUpdate"
Ответ:
"response" : "Ok"
"response-code" : 0
Пример:
{ "id" : 1, "command" : "BeginUpdate", "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
{ "id" : 1, "response" : "Ok", "response-code" : 0, "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
{ "id" : 1, "command" : "EndUpdate", "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
{ "id" : 1, "response" : "Ok", "response-code" : 0, "data" : { "application" : "R1 Self Service Soft.", "version" : "1.0.2.11", "compile-date" : "09-08-2017" } }
Получение статуса весов
Данная команда позволяет получить текущее состояние весов: заблокированы или нет, текущий вес, состояние ошибки и др. информацию о весах.
При запросе в объекте data
данные статуса весов.
Запрос:
"command" : "GetState",
Ответ:
"response" : "Ok"
"response-code" : 0
Пример:
{ "id" : 1, "command" : "GetState", "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
error-state
- флаг наличия ошибки на весах;
error
- код ошибки;
error-text
- текстовое описание ошибки;
lock-state
- флаг ручной блокировки весов;
packing-mode
- флаг включения режима фасовки;
user-inactive-time
- время с последней активности весов (нажатия на тач-экран);
licensed
- флаг состояния лицензии;
database-type
- тип внутренней базы данных (0 - xml, 1 - sqlite);
weight
- текущий вес;
weight-tare
- текущая тара;
weight-stability
- флаг стабильности веса;
scale-model
- модель весов;
scale-version
- версия весового модуля;
scale-serial-number
- заводской номер;
operation-system
- тип операционной системы;
hostname
- имя хоста весов;
user-name
- имя пользователя, под которым запущено ПО весов;
current-time-date
- текущее время и дата;
disks
- перечень дисков (актуально для Windows версии);
free-system-disk
- свободного места на системном диске;
free-work-disk
- свободного места на рабочем диске;
free-memory
- свободно оперативной памяти;
screen-resolution
- разрешение экрана;
system-up-time
- время со старта системы;
Запуск ротации логов программы и архивов, создаваемых программой
Данная команда позволяет получить в ручную запустить процесс ротации лог-файлов программы и архивов (базы данных, обработанных и ошибочных файлов импорта).
Запрос:
"command" : "RotateLog",
Ответ:
"response" : "Ok"
"response-code" : 0
Пример:
{ "id" : 1, "command" : "RotateLog", "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
Получение текущего протокола работы весов
Данная команда позволяет получить текущий файл протокола работы весов.
Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте "data": "use-compress"
: 1 или 0. Далее данные кодируются в BASE-64. В объекте data
возвращаются данные лог файла log-file-data
и размер файла log-file-size
.
Запрос:
"command" : "GetLog"
Ответ:
"response" : "Ok"
"response-code" : 0
"data" : { "log-file-size" : "120000", "log-file-data" : "данные-лог-файла" }
Блокировка и разблокировка работы весов
Данная команда позволяет выполнить удаленную блокировку "LockScale" и разблокировку "UnlockScale" работы весов, например в случае поломок принтера.
В объекте "data" передается пароль "password" на проводимую операцию (изменяется в настройках весов).
Запрос:
"command" : "LockScale"
"command" : "UnlockScale"
"data" : { "password" : "239" }
Ответ:
"response" : "Ok"
"response-code" : 0
Обнуление веса и тарирование весов
Данная команда позволяет удаленно выполнить обнуление веса ZeroWeight
или произвести тарирование TareWeight
весов.
В объекте data
передается пароль password
на проводимую операцию (изменяется в настройках весов).
Запрос:
"command" : "ZeroWeight"
"command" : "TareWeight"
"data" : { "password" : "239" }
Ответ:
"response" : "Ok"
"response-code" : 0
Перезагрузка и выключение весов
Данная команда позволяет удаленно выполнить перезагрузку "RebootScale" или произвести выключение "PowerOffScale" весов.
В объекте "data" передается пароль "password" проводимую операцию (изменяется в настройках весов).
Стандартный пароль для перезагрузки и выключения: 255
Запрос:
"command" : "RebootScale",
"command" : "PowerOffScale",
"data" : { "password" : "255" }
Ответ:
"response" : "Ok"
"response-code" : 0
Перезапуск и завершение работы ПО весов
Данная команда позволяет удаленно выполнить перезагрузку "RestartApp" или завершить работу "ShutdownApp" основного ПО весов.
В объекте "data" передается пароль "password" проводимую операцию (изменяется в настройках весов).
Стандартный пароль для перезагрузки и выключения: 255
Запрос:
"command" : "RestartApp",
"command" : "ShutdownApp",
"data" : { "password" : "255" }
Ответ:
"response" : "Ok"
"response-code" : 0
Получение информации о файле, картинке, шаблоне этикетки или других файла в каталоге программы на весах, удаление и добавление файлов
Данная команда позволяет получить информацию о файле. Начальным путем для поиска файлов является каталог программы.
Для получение информации о файле, находящимся в подкаталогах, необходимо в имя файла включить путь до необходимого файла.
Вне каталога программы можно получить доступ только к каталогу "Exchange", в котором содержится протокол работы, данные для импорта, отчеты и т.д.
Например: для получения информации о картинке имя файла должно быть таким "file-name" : "./Data/Images/goods.no.picture.png".
В объекте "data" передается имя необходимого файла "file-name", а возвращается информация о файле: "file-name", "file-size" - размер файла в байтах, "file-date" - дата/время последнего изменения файла, "file-md5" - контрольная сумма файла расчитанная по алгоритму MD5.
При добавлении файла в объекте "data" в поле "file-data" передаются данные файла, а в поле "file-md5" - контрольная сумма файла расчитанная по алгоритму MD5.
Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте "data": "use-compress" : 1 или 0.
Далее данные кодируются в BASE-64.
Стандартные пути к файлам:
./Data/Images/ - картинки, используемые программой
./Data/Labels/ - шаблоны этикеток
./Data/Media/ - звуки, используемые программой
./Data/Lic/ - лицензии для программы
./Settings/ - настройки программы и экранные формы
../Exchange/Flags/ - флаги создаваемые программой в результате событий на весах
../Exchange/Import/ - импортируемые данные
../Exchange/Log/ - протокол работы программы
../Exchange/Log/ProcessedFiles/ - протоколы обработки успешно импортированных данных
../Exchange/Log/BadFiles/ - протоколы обработки неуспешно импортированных данных
../Exchange/Reports/ - отчеты, создаваемые программой
Запрос:
"command" : "GetFileInfo"
"command" : "RemoveFile"
"command" : "AddFile"
"data" : {
"file-name" : "./Data/Images/goods.no.picture.png"
"file-data" : "данные-файла"
"use-compress" : 1
}
Ответ:
"response" : "Ok"
"response-code" : 0
"data" : {
"file-name" : "./Data/Images/goods.no.picture.png",
"file-size" : "12332",
"file-md5" : "e455d2b43b6157b50e8f502ac77aad13"
}
Выполнение команды весами
Данная команда позволяет выполнить команды на весах.
! | Данная команда пока не реализована |
Запрос:
"command" : "ExecuteCommand"
Ответ:
"response" : "Ok"
"response-code" : 0
Очистка базы товаров и групп
Данная команда позволяет полностью очистить базу товаров и групп перед загрузкой новых товаров и групп.
Данная команда должна быть передана после команды "BeginUpdate".
Если данная команда не передается, то включается режим обновления/добавления товаров.
Очистка данных производится только если добавляется хотя бы один товар.
Запрос:
"command" : "ClearGoodsAndGroups"
Ответ:
"response" : "Ok"
"response-code" : 0
Добавление товаров, обновление или удаление товаров и групп товаров
Данные команды служат для изменение базы товаров в весах.
Перед использование данных команд, необходимо передать на весы команду BeginUpdate, а по окончании работы с товарами передается команда EndUpdate. При необходимости очистки базы товаров на весах, между передачами команд BeginUpdate/EndUpdate, так же необходимо передать команду ClearGoodsAndGroups.
При использовании команд обновления (UpdateGoods и UpdateGroups), если товара или группы нет в базе весов - товар или группа создаются и сообщение об ошибке не передается.
Разница между командами UpdateХХХ и AddXXX заключается в минимальном наборе параметров, которые необходимо передаются на весы, что бы не возникло ошибки при приеме команды. Так для для команды AddGoods необходимо передать: номер товара, название товар, группу-владелец и цену. Для команды UpdateGoods: только номер товара.
Если при использовании команд удаления (RemoveGoods и RemoveGroups) товар или группа не найден - передается ошибка товар не найден.
В объекте data передаются все необходимые параметры товара или группы.
Команды Remove... обрабатываются в последнюю очередь. Т.е. сначала производится очистка базы дынных, далее производится добавление товаров/групп и потом удаление товаров/групп.
- Поля данных товара:
- goods-no - номер товара. Номер должен быть уникален. Поиск товара при добавлении/обновлении ведется по этому полю.
- goods-add-code - дополнительный номер товар. Может использоваться при формировании штрих-кода товара.
- goods-display-number - дополнительный номер товара. Данный номер можно вывести на кнопку товара. По данному номеру возможно сортировать товары внутри группы.
- goods-name - название товара для печати на этикетке.
- goods-full-name - название товара для вывода на кнопку товара. Если данное поле не задано, значение берется из поля goods-name.
- goods-price - цена товара. Можно передавать как строку: 123.55, можно как число: 123.55
- goods-dep - отдел товара. Используется при формировании штрих-кода товара.
- goods-barcode-type - тип структуры штрих-кода товара.
- goods-action - признак акционности товара (используется для вывода на кнопке товара специальной картинки).
- goods-is-popular - признак популярности товара (используется для вывода этих товаров в отдельное поле на форме выбора товаров).
- goods-ice-percent - процент ледяной глазури в весе товара. В формате от 0.0 до 99.99.
- goods-label - номер шаблона этикетки.
- goods-label2 - номер 2-го шаблона этикетки.
- goods-discount-label - номер шаблона этикетки для печати скидочных товаров.
- goods-discount-price - цена со скидкой.
- goods-discount-percent - процент скидки.
- goods-discount-type - тип скидки (0 - нет скидки).
- goods-limit-quantity - ограничение количества для вывода на этикетку при использовании скидок.
- goods-owner-group - группа-владелец товара.
- goods-picture-bytes - картинка товара (массив байт).
- goods-picture-filename - имя файла картинки товара.
- goods-second-picture-filename - имя файла дополнительной картинки товара.
- goods-packing-date - дата/время паковки (формат: dd-MM-yyyy hh:mm).
- goods-produced-date - дата/время производства (формат: dd-MM-yyyy hh:mm).
- goods-valid-date - дата/время окончания срока годности (формат: dd-MM-yyyy hh:mm).
- goods-shelf-life - срок годности в днях. Если число отрицательно - в часах.
- goods-weight-unit - весовая единица товара.
- goods-tare - вес тары товара.
- goods-message-x - текстовые сообщения для печати на этикетке.
- Для успешного добавления товара необходимо передать как минимум следующие поля:
- goods-no, goods-name, goods-price,
- Формат дат: dd.MM.yyyy hh:mm
- В поле goods-picture-filename и goods-second-picture-filename передается имя файла картинки для товара или группы. Указанный файл должен присутсвовать в каталоге ./Data/Pictures/. Можно располагать файлы в подкаталогах.
- Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте data: use-compress : 1 или 0.
- Далее данные кодируются в BASE-64.
- Срок годности товара имеет следующие значение:
- 0 - срок годности не задан
- -х - срок годности указан часах
- х - срок годности указан в днях
- Поля "goods-message-x" служат для передачи дополнительной текстовой информации, печатаемой на этикетке.
- Перечень соответствия сообщений и элементов шаблона этикетки:
- "goods-message-1" - текстовое сообшение
- "goods-message-2" - ингридиенты
- "goods-message-3" - страна происхождения
- "goods-message-4" - реклама
- Поля данных группы:
- group-no - номер группы.
- group-name - название группы.
- group-picture-filename - имя файла картинки группы.
- group-picture-bytes - картинка товара (массив байт).
- group-owner-group - номер группы-владельца.
- Для успешного добавления группы необходимо передать как минимум следующие поля:
- group-no, group-name
Запрос:
"command" : "AddGoods"
"command" : "UpdateGoods"
"command" : "RemoveGoods"
"command" : "AddGroups"
"command" : "UpdateGroups"
"command" : "RemoveGroups"
Ответ:
"response" : "Ok"
"response-code" : 0
Весовые типы товаров (Weight Unit)
Код | Тип | Название |
---|---|---|
0 | 50g | 50 грамм |
1 | G | грамм |
2 | 10g | 10 грамм |
3 | 100g | 100 грамм |
4 | Kg | килограмм |
5 | Oz | унция |
6 | Pb | фунт |
7 | 500g | 500 грамм |
8 | 600g | 600 грамм |
9 | PSCg | 50 грамм |
10 | PSCKg | штучный грамм |
11 | PSCOz | штучный килограмм |
12 | PSCg | штучная унция |
13 | PSCLb | штучный фунт |
Типы штрихкодов товаров (Barcode Type)
Сокращения используемые в таблице:
D - отдел
L - № товара
I - код магазина
P - цена
Q - вес
CRC - контрольная сумма
Код | Тип | Содержание | Примечание |
---|---|---|---|
0 | EAN13 | DD(2) IIIIIIIIII(10) CRC(1) | |
1 | EAN13 | DD(2) IIIIII(6) PPPP(4) CRC(1) | |
2 | EAN13 | DD(2) IIIII(5) PPPPP(5) CRC(1) | |
3 | EAN13 | DD(2) IIII(4) PPPPPP(6) CRC(1) | |
4 | EAN13 | DD(2) III(3) PPPPPPP(7) CRC(1) | |
5 | EAN13 | DD(2) IIIIII(6) Q.QQQ(4) CRC(1) | |
6 | EAN13 | DD(2) IIIIII(6) QQ.QQ(4) CRC(1) | |
7 | EAN13 | DD(2) IIIII(5) QQ.QQQ(5) CRC(1) | |
8 | EAN13 | DD(2) IIIII(5) QQQQ.Q(5) CRC(1) | |
9 | EAN13 | DD(2) IIIII(5) QQQQQ(5) CRC(1) | |
10 | EAN13 | 20(2) IIIIIIIIII(10) CRC(1) | |
11 | EAN13 | 21(2) IIIIII(6) PPPP(4) CRC(1) | |
12 | EAN13 | 22(2) IIIII(5) PPPPP(5) CRC(1) | |
13 | EAN13 | 23(2) IIII(4) PPPPPP(6) CRC(1) | |
14 | EAN13 | 24(2) III(3) PPPPPPP(7) CRC(1) | |
15 | EAN13 | 25(2) IIIIII(6) Q.QQQ(4) CRC(1) | |
16 | EAN13 | 26(2) IIIIII(6) QQ.QQ(4) CRC(1) | |
17 | EAN13 | 27(2) IIIII(5) QQ.QQQ(5) CRC(1) | |
18 | EAN13 | 28(2) IIIII(5) QQQQ.Q(5) CRC(1) | |
19 | EAN13 | EAN13, 29(2) IIIII(5) QQQQQ(5) CRC(1) | |
20 | - | Не печатать штрихкод | |
21 | EAN13 | D(1) IIIIIII(7) PPPP(4) CRC(1) | |
22 | EAN13 | D(1) IIIIII(6) PPPPP(5) CRC(1) | |
23 | EAN13 | D(1) IIIII(5) PPPPPP(6) CRC(1) | |
24 | EAN13 | D(1) IIII(4) PPPPPPP(7) CRC(1) | |
25 | EAN13 | D(1) IIIIIII(7) Q.QQQ(4) CRC(1) | |
26 | EAN13 | D(1) IIIIIII(7) QQ.QQ(4) CRC(1) | |
27 | EAN13 | D(1) IIIIII(6) QQ.QQQ(5) CRC(1) | |
28 | EAN13 | D(1) IIIIII(6) QQQQ.Q(5) CRC(1) | |
29 | EAN13 | D(1) IIIIII(6) QQQQQ(5) CRC(1) | |
30 | EAN13+5 | D(1) IIIIII(6) PPPPP(5) QQ.QQQ(5) CRC(1) | Не поддерживание (введен для совместимости) |
31 | EAN13+5 | D(1) IIIIII(6) PPPPP(5) QQQQ.Q(5) CRC(1) | Не поддерживание (введен для совместимости) |
32 | EAN13+5 | D(1) IIIIII(6) PPPPP(5) QQQQQ(5) CRC(1) | Не поддерживание (введен для совместимости) |
33 | EAN13+5 | D(1) IIIIII(6) PPPPP(5) QQ.QQQ(5) CRC(1) | Не поддерживание (введен для совместимости) |
34 | EAN13+5 | D(1) IIIIII(6) PPPPP(5) QQQQ.Q(5) CRC(1) | Не поддерживание (введен для совместимости) |
35 | EAN13+5 | D(1) IIIIII(6) PPPPP(5) QQQQQ(5) CRC(1) | Не поддерживание (введен для совместимости) |
36 | EAN18 | D(1) LLLLLL(6) IIII(4) RR(2) QQ.QQQ(5) | Не поддерживание (введен для совместимости) |
37 | EAN18 | D(1) LLLLLL(6) IIII(4) RR(2) QQQQ.Q(5) | Не поддерживание (введен для совместимости) |
38 | EAN18 | D(1) LLLLLL(6) IIII(4) RR(2) QQQQQ(5) | Не поддерживание (введен для совместимости) |
50 | EAN8 | IIIIIII(7) CRC(1) | Не поддерживание (введен для совместимости) |
51 | EAN8 | D(1) IIIIII(6) CRC(1) | Не поддерживание (введен для совместимости) |
52 | EAN8 | DD(2) IIIII(5) CRC(1) | Не поддерживание (введен для совместимости) |
99=119 | EAN13 | Пользовательские штрихкоды |
Добавление или связывание шаблонов этикеток
Данная команда служат для передачи на весы шаблонов этикеток и установки связи между именами файлов шаблонов этикеток и номерами этикеток, которые используются в параметрах товаров.
При установке связи между именем файла шаблона этикетки, необходимо предварительно загрузить файл на весы в каталог ./Data/Labels
Если файл отсутвует - связь не будет установлена.
В случае передачи данных шаблона в команде имя файла генерируется автоматически.
Перед использование данной команды, необходимо передать на весы команду "BeginUpdate", а по окончании работы с товарами передается команда "EndUpdate". Можно использовать эти команду в едином цикле с обновление информации о товарах.
Данные шаблонов, если передаются прямо в команде, могут быть предварительно запакованы архиватором GZip (отключается в настройках весов).
Так же флаг использования компрессии можно предать в объекте "data": "use-compress" : 1 или 0.
Далее данные кодируются в BASE-64.
Запрос:
"command" : "AddLabel"
Ответ:
"response" : "Ok"
"response-code" : 0
Поля данных этикетки:
"label-no" - номер шаблона этикетки.
"label-filename-format" - имя файла c форматом шаблона этикетки. Файл должен находится в каталоге ./Data/Labels
"label-filename-map" - имя файла с задним фоном шаблона этикетки. Файл должен находится в каталоге ./Data/Labels
"label-format-bytes" - данные формата шаблона этикетки (массив байт).
"label-map-bytes" - данные заднего фона шаблона этикетки (массив байт).
"label-filename" - номер группы-владельца. Только для использования с весами LS215.
"label-bytes" - данные шаблона этикетки (массив байт). Только для использования с весами LS215.
"use-compress" - флаг использования компрессии данных
Изменение номера и названия магазина
Данная команда служат для передачи на весы данных о номере и названии магазина.
Возможна передача до 4-х строк названия магазина.
Перед использование данной команды, необходимо передать на весы команду "BeginUpdate", а по окончании работы передается команда "EndUpdate". Можно использовать эти команду в едином цикле с обновление информации о товарах.
Запрос:
"command" : "AddStoreParams"
Ответ:
"response" : "Ok"
"response-code" : 0
Поля данных этикетки:
"store-no" - номер магазина.
"store-name-1 - название магазина строка 1
"store-name-2 - название магазина строка 2
"store-name-3 - название магазина строка 3
"store-name-4 - название магазина строка 4
Перечень ошибок
При возникновении ошибок в ответе содержится текстовый ответ и код, сообщающие о возникшей ошибке.
Так же в объект "data" добавляется поле с расширенным описание ошибки "response-ext".
При работе с весами возможны следующие ошибки:
Ошибок нет, команда выполнена успешно:
"response" : "Ok"
"response-code" : 0
"data"
Истек таймаут соединения при установке связи или во время работы:
"response" : "Abort"
"response-code" : -1
Ошибка данных команды или некорректные данные:
В поле "response-ext" возвращается расширенное описание ошибки.
"response" : "Error"
"response-code" : -2
"data" :
{
"response-ext" : "Unknown command"
}
Ошибка выполнения команды (например: при установке даты/времени):
В поле "response-ext" возвращается расширенное описание ошибки.
"response" : "ExecError"
"response-code" : -3
"data" :
{
"response-ext" : "Error sync date/time (-1)."
}