Изменения

Перейти к навигации Перейти к поиску

Импорт данных по протоколу R1Sensor

19 800 байт добавлено, 21:54, 29 марта 2023
Запросы к весовому комплексу
=Дата изменения документации=
0611.0611.2019 2022 года.
=Общие сведения о протоколе=
{{Внимание|запрещается одновременно обновлять базу товаров в параллельных сессиях.}}
Допускается параллельное выполнение таких операций как копирование файлов или копирование считывание файлов.
Объект {{ProtocolCommand|data}} - в данном объекте передаются дополнительные данные, необходимые для выполнения запроса или команды. Так же в этом поле содержится информация о ПО которое сформировало запрос.
 
{{Внимание|Максимальный размер пакета принимаемый весами 1024000 байт! Рекомендуется использовать пакеты не более 16348 байт.}}
==Ответы от весового комплекса==
==Начало и окончание загрузки товаров и групп==
Команда <code>'''{{ProtocolCommand|BeginUpdate'''</code> }} подается перед загрузкой товаров и/или групп внутренний буфер приема данных в этот момент очищается и весы готовы к приему данных, если команда подается повторно - данные, уже приняты на тот момент удаляются.
Команда <code>'''{{ProtocolCommand|EndUpdate'''</code> }} подается после передачи всех данных. После передачи этой команды данные анализируются, сохраняются во внутреннюю базу весов и происходит обновление информации на экране.
Изначально включается режим обновления/добавления товаров и групп. Если после команды <code>'''{{ProtocolCommand|BeginUpdate'''</code> }} передать команду <code>'''{{ProtocolCommand|ClearGoodsAndGropus'''</code>}}, то включается режим замены базы данных (перед обработкой загруженных данных база данных в весах очищается).
Данная команда позволяет получить текущее состояние весов: заблокированы или нет, текущий вес, состояние ошибки и др. информацию о весах.
При запросе в объекте <code>'''{{ProtocolCommand|data'''</code> }} данные статуса весов.
<code>'''{{ProtocolCommand|error-state'''</code> }} - флаг наличия ошибки на весах; {{ProtocolCommand|error}} - код ошибки; {{ProtocolCommand|error-text}} - текстовое описание ошибки; {{ProtocolCommand|lock-state}} - флаг ручной блокировки весов; {{ProtocolCommand|packing-mode}} - флаг включения режима фасовки; {{ProtocolCommand|user-inactive-time}} - время с последней активности весов (нажатия на тач-экран); {{ProtocolCommand|licensed}} - флаг состояния лицензии; {{ProtocolCommand|database-type}} - тип внутренней базы данных (0 - xml, 1 - sqlite); {{ProtocolCommand|weight}} - текущий вес; {{ProtocolCommand|weight-tare}} - текущая тара;
<code>'''error'''</code> {{ProtocolCommand|weight- код ошибкиstability}} - флаг стабильности веса;
<code>'''error{{ProtocolCommand|scale-text'''</code> model}} - текстовое описание ошибкимодель весов;
<code>'''lock{{ProtocolCommand|scale-state'''</code> version}} - флаг ручной блокировки весовверсия весового модуля;
<code>'''packing{{ProtocolCommand|scale-mode'''</code> serial- флаг включения режима фасовкиnumber}} - заводской номер;
<code>'''user{{ProtocolCommand|operation-inactivesystem}} -time'''</code> - время с последней активности весов (нажатия на тач-экран)тип операционной системы;
<code>'''licensed'''</code> {{ProtocolCommand|hostname}} - флаг состояния лицензииимя хоста весов;
<code>'''database{{ProtocolCommand|user-type'''</code> name}} - тип внутренней базы данных (0 - xmlимя пользователя, 1 - sqlite)под которым запущено ПО весов;
<code>'''weight'''</code> {{ProtocolCommand|current- текущий весtime-date}} - текущее время и дата;
<code>'''weight{{ProtocolCommand|disks}} -tare'''</code> - текущая тараперечень дисков (актуально для Windows версии);
<code>'''weight{{ProtocolCommand|free-stability'''</code> system-disk}} - флаг стабильности весасвободного места на системном диске;
<code>'''scale{{ProtocolCommand|free-model'''</code> work- модель весовdisk}} - свободного места на рабочем диске;
<code>'''scale{{ProtocolCommand|free-version'''</code> memory}} - версия весового модулясвободно оперативной памяти;
<code>'''scale{{ProtocolCommand|screen-serialresolution}} -number'''</code> - заводской номерразрешение экрана;
<code>'''operation{{ProtocolCommand|system-system'''</code> up-time}} - тип операционной время со старта системы;
<code>'''hostname'''</code> - имя хоста весов;
<code>'''user-name'''</code> - имя пользователя, под которым запущено ПО весов;
<code>'''current"goods-timecount""groups-date'''</code> count""labels- текущее время и дата;count"
<"error-code>'''disks'''</code> ""error-state""error- перечень дисков (актуально для Windows версии);text"
<code>'''free"lock-systemstate""packing-disk'''</code> mode""user- свободного места на системном диске;inactive-time""image-recognition-active""image-recognition-camera-error""price-checker-active""voice-control-active"
<code>'''free-work-disk'''</code> - свободного места на рабочем диске;"licensed"
<code>'''free"current-memory'''</code> - свободно оперативной памяти;algoritm"
<code>'''screen"weight""weight-resolution'''</code> stability""weight- разрешение экрана;tare"
<code>'''"scale-model""scale-version""scale-serial-number""scale-serial-number-ext" "operation-system""cpu-model""cpu-serial-number""cpu-uptemperature""hostname""user-name" "current-time'''</code> - время со старта системы;date""hardware-rtc-state""version-build" "screen-resolution" "last-import-datetime""last-import-status" "eth-ip-address""eth-mac""wifi-ip-address""wifi-mac"
==Запуск ротации логов программы и архивов, создаваемых программой==
{ "id" : 1, "command" : "RotateLog", "data" : { "application" : "R1ScaleTester", "version" : "0.0.0.1", "compile-date" : "09-08-2017" } }
</source>
==Получение текущего протокола работы весов==
Данная команда позволяет получить текущий файл протокола работы весов.
Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте <code>'''{{ProtocolCommand|"data": "use-compress"'''</code> }} : 1 или 0. Далее данные кодируются в BASE-64. В объекте <code>'''{{ProtocolCommand|data'''</code> }} возвращаются данные лог файла <code>'''{{ProtocolCommand|log-file-data'''</code> }} и размер файла <code>'''{{ProtocolCommand|log-file-size'''</code>}}.
"response-code" : 0
"data" : { "log-file-size" : "120000", "log-file-data" : "данные-лог-файла" }
</source>
 
==Вывод сообщения на экран весов==
Данная команда позволяет выводить на экран текстовые сообщения. Возможно сопровождать вывод сообщения звуковым сигналом.
 
В объекте {{ProtocolCommand|data}} передается сообщение и другие параметры.
 
{{ProtocolCommand|message}} - текст сообщения;
{{ProtocolCommand|message-for-led}} - текст сообщения для светодиодного индикатора (если он установлен);
{{ProtocolCommand|beep}} - разрешить звуковой сигнал;
{{ProtocolCommand|time}} - длительность вывода сообщения в мс.
 
Запрос:
 
<source lang="json">
"command" : "DisplayMessage"
"data" : { "message" : "Текс сообщения", "beep" : "true", "time" : "1000" }
</source>
 
Ответ:
 
<source lang="json">
"response" : "Ok"
"response-code" : 0
</source>
==Блокировка и разблокировка работы весов==
Данная команда позволяет выполнить удаленную блокировку "{{ProtocolCommand|LockScale" }} и разблокировку "{{ProtocolCommand|UnlockScale" }} работы весов, например в случае поломок принтера.
В объекте "{{ProtocolCommand|data" }} передается пароль "{{ProtocolCommand|password" }} на проводимую операцию (изменяется в настройках весов).
==Обнуление веса и тарирование весов==
Данная команда позволяет удаленно выполнить обнуление веса <code>'''{{ProtocolCommand|ZeroWeight'''</code> }} или произвести тарирование <code>'''{{ProtocolCommand|TareWeight'''</code> }} весов.
В объекте <code>'''{{ProtocolCommand|data'''</code> }} передается пароль <code>'''{{ProtocolCommand|password'''</code> }} на проводимую операцию (изменяется в настройках весов).
</source>
==Получение информации о файле, картинке, шаблоне этикетки или других файла списка файлов в каталоге программы на весах, удаление и добавление файлов==Данная команда позволяет получить информацию о файлесписок файлов или каталогов в указанном каталоге. Начальным путем для поиска файлов является каталог программы.
Для получение получения информации о файленеобходимо передать каталог {{ProtocolCommand|search-dir}}, находящимся в подкаталогах, необходимо в имя файла включить путь до необходимого файламаску файлов {{ProtocolCommand|files-mask}} и флаг поиска файлов или каталогов {{ProtocolCommand|search-files}}.
Вне каталога программы можно получить доступ только к каталогу В ответ информация приходит виде списка в поле {{ProtocolCommand|Exchangefiles-list}}, в котором содержится протокол работы, данные для импорта, отчеты и т.д.
НапримерЗапрос: для получения информации о картинке имя файла должно быть таким {{ProtocolCommand|"file-name" : "./Data/Images/goods.no.picture.png"}}.
В объекте {{ProtocolCommand|<source lang="json"> "command" : "GetFileList", "data}} передается имя необходимого файла " : {{ProtocolCommand|file "search-name}} а возвращается информация о файлеdir" : {{ProtocolCommand|file"./Data/Images/", "files-name}} {{ProtocolCommand|file-size}} - размер файла в байтахmask" : "*.png", {{ProtocolCommand|file "search-date}files" : true } - дата</время последнего изменения файла, {{ProtocolCommand|file-md5}} - контрольная сумма файла рассчитанная по алгоритму MD5.source>
При добавлении файла в объекте {{ProtocolCommand|data}} в поле {{ProtocolCommand|file-data}} передаются данные файла, а в поле {{ProtocolCommand|file-md5}} - контрольная сумма файла расчитанная по алгоритму MD5.Ответ:
Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте {<source lang="json"> "response" : "Ok", "response-code" : 0, "data" : {ProtocolCommand| "datasearch-dir": "use./Data/", "files-compresslist"}} : 1 или 0["goods.no.picture.png", "r1s.select.goods.action.png"] }</source>
Далее ==Добавление, удаление и получение файлов и каталогов на/с весов== Данные команды позволяют получать файлы с весов, удалять файлы на весах и передавать файлы на весы. Начальным точкой для поиска файлов является каталог программы. Для работы с файлами, находящимся в подкаталогах, необходимо в имя файла включить путь до необходимого файла. Вне каталога программы можно получить доступ только к каталогу {{Путь к файлу|/opt/Exchange}}, в котором содержится протокол работы, данные кодируются в BASE-64для импорта, отчеты и т.дКоманды: Запрос: <source lang="json"> "command" : "AddFile" "command" : "GetFile" "command" : "GetFileInfo" "command" : "RemoveFile" "command" : "AddDir" "command" : "RemoveDir" "command" : "PartDataReceived" "command" : "PartDataSended"</source> Поля используемые при работе с файлами:
{{ProtocolCommand|file-name}} - имя файла
Стандартные пути к файлам:{{ProtocolCommand|file-size}} - размер файла
{{Путь к файлуProtocolCommand|./Data/Images/file-data}} - картинки, используемые программойданные файла. Кодируются в BASE-64.
{{Путь к файлуProtocolCommand|./Data/Labels/file-md5}} - шаблоны этикетокконтрольная сумма файла. Рассчитывается до кодировки данных в BASE-64.
{{Путь к файлуProtocolCommand|./Data/Media/use-compress}} - звуки, используемые программойиспользование компрессии данных в GZip.
{{Путь к файлуProtocolCommand|./Data/Lic/"MultiPart"}} - лицензии для программыблочный режим передачи данных. Использование нескольких пакетов при приеме/передаче файлов.
{{Путь к файлуProtocolCommand|./Settings/"part-data-no"}} - настройки программы и экранные формыномер текущего пакета при блочном приеме/передаче файлов. Отсчет с 0.
{{Путь к файлуProtocolCommand|../Exchange/Flags/"total-parts"}} - флаги создаваемые программой в результате событий на весахобщее количество пакетов при блочном приеме/передаче файлов.
{{Путь к файлу|../Exchange/Import/}} - импортируемые данные
Например: для получения файла-картинки имя файла должно быть таким {{Путь к файлуProtocolCommand|."file-name" : "./ExchangeData/LogImages/goods.no.picture.png"}} - протокол работы программы.
В объекте {{Путь к файлуProtocolCommand|../Exchange/Log/ProcessedFiles/data}} передается имя необходимого файла {{ProtocolCommand|file-name}}, а возвращается информация о файле: {{ProtocolCommand|file-name}} {{ProtocolCommand|file-size}} - размер файла в байтах, {{ProtocolCommand|file-data}} - данные файла файла или части файла, {{ProtocolCommand|file-md5}} - протоколы обработки успешно импортированных контрольная сумма блока данныхв поле {{ProtocolCommand|file-data}} до кодирования в BASE-64 рассчитанная по алгоритму MD5.
В объекте {{Путь к файлуProtocolCommand|../Exchange/Log/BadFiles/data}} передается имя необходимого каталога {{ProtocolCommand|dir- протоколы обработки неуспешно импортированных данныхname}}.
При добавлении файла в объекте {{Путь к файлуProtocolCommand|../Exchange/Reports/data}} в поле {{ProtocolCommand|file- отчетыdata}} передаются данные файла, создаваемые программойа в поле {{ProtocolCommand|file-md5}} - контрольная сумма файла рассчитанная по алгоритму MD5 до кодирования в BASE-64. При передаче файла частями {{ProtocolCommand|file-md5}} передается только в последнем пакете и содержит контрольную сумма всего файла.
Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте {{ProtocolCommand|"data": "use-compress"}} : ''1'' или ''0'' или ''true''/''false''. При использовании блочной передачи файлов архиватором пакуется каждая часть отдельно. После паковки блока, данные кодируются в BASE-64.
ЗапросПример передачи файла:
<source lang="json">
"command" : "GetFileInfo" "command" : "RemoveFile"--> "command" : "AddFile",
"data" : {
"file-name" : "./Data/Images/goods.no.picture.png" , "file-data" : "данные-файла", "usefile-compressmd5" : 1"9caa7d76e8e08b56256594f39c13e7d8"
}
<--
"response" : "Ok",
"response-code" : 0
</source>
ОтветПри передаче/запросе больших файлов можно использовать передачу файлов частями (получение файлов более 16384 байт с весов всегда выполняется по частям). При передаче по частям необходимо в первом пакете использовать команду {{ProtocolCommand|AddFile}} и в объект данных {{ProtocolCommand|data}} добавить поля {{ProtocolCommand|"total-parts" : ''xxx''}} и {{ProtocolCommand|"part-data-no" : 0}}. В поле {{ProtocolCommand|total-parts}} вместо ''xxx'' нужно передать общее количество частей файла.  В поле {{ProtocolCommand|part-data-no}} передается номер текущего пакет. Начиная с '''0'''. Остальные части файла передаются с помощью команд {{ProtocolCommand|PartDataSended}}, а принимаются с помощью команд {{ProtocolCommand|PartDataReceived}}. Поле {{ProtocolCommand|"MultiPart" : 1}} используется в ответе на команду передачи по частям. Т.е. последовательность следующая:
<source lang="json">
--> Первая часть "command" : "AddFile", "data" : { "file-name" : "./Data/Images/goods.no.picture.png", "file-data" : "данные-файла", "part-data-no" : 0, "total-parts" : 5 } <-- "response" : "Ok", "response-code" : 0, "data" : { "part-data-no" : 0, "total-parts" : 5 } ... -->Последующие части "command" : "PartDataSended", "data" : { "file-name" : "./Data/Images/goods.no.picture.png", "file-data" : "данные-файла", "part-data-no" : 3, "total-parts" : 5, "use-compress" : 1 } <-- "response" : "MultiPart", "response-code" : 1, "data" : { "part-data-no" : 3, "total-parts" : 5 } ... -->Последняя часть "command" : "PartDataSended",
"data" : {
"file-name" : "./Data/Images/goods.no.picture.png", "file-sizedata" : "12332данные-файла", "part-data-no": 4, "total-parts" : 5, "use-compress" : 1, "file-md5" : "e455d2b43b6157b50e8f502ac77aad139caa7d76e8e08b56256594f39c13e7d8"
}
<--
"response" : "MultiPart",
"response-code" : 1,
"data" : {
"part-data-no" : 4,
"total-parts" : 5
}
 
</source>
Данная команда позволяет полностью очистить базу товаров и групп перед загрузкой новых товаров и групп.
Данная '''Если данная команда должна быть передана передается после команды {{ProtocolCommand|BeginUpdate}}, то включается режим очистки данных при передаче товаров.'''
Если данная команда не передается, то включается режим обновления/добавления товаров.
Очистка данных производится только если добавляется хотя бы один товар.
 
'''Если данная команда передается отдельно от других команд, производится полная очистка базы товаров (удаляются все товары и группы).'''
Запрос:
Команды {{ProtocolCommand|Remove...}} обрабатываются в последнюю очередь. Т.е. сначала производится очистка базы данных, далее производится добавление товаров/групп и потом удаление товаров/групп.
 
 
{{Внимание2|Параметры {{ProtocolCommand|goods-picture-bytes}} и {{ProtocolCommand|group-picture-bytes}} являются устаревшими и не рекомендованы к использованию. Используете параметры передающие имена файлов-картинок и загружайте файлы картинок отдельно. Это позволяет более экономично использовать дисковое пространство и использовать будущие расширения протокола весов.}}
 
 
В версиях ПО старше '''1.0.2.22 сборка 4168''' добавлена возможность групповой передачи товаров. Для этого список товаров загружается в поле {{ProtocolCommand|goods-list}}.
*Поля данных товара:
{{ProtocolCommand|goods-no}} - номер товара. '''Номер должен быть уникален. ''' Поиск товара при добавлении/обновлении ведется по этому полю.
{{ProtocolCommand|goods-add-code}} - дополнительный номер товар. Может использоваться при формировании штрих-кода товара.
{{ProtocolCommand|goods-name}} - название товара для печати на этикетке.
{{ProtocolCommand|goods-name-2}} - второе название товара для печати на этикетке. {{ProtocolCommand|goods-full-name}} - название товара для вывода на экранную кнопку товара. Если данное поле не задано, значение берется из поля {{ProtocolCommand|goods-name}}. {{ProtocolCommand|goods-full-name-2}} - второе название товара для вывода на экранную кнопку товара. Если данное поле не задано, значение берется из поля {{ProtocolCommand|goods-name-2}}.
{{ProtocolCommand|goods-price}} - цена товара. Можно передавать как строку: '''''"123.55"''''', можно как число: 123.55
{{ProtocolCommand|goods-dep}} - отдел товара. Используется как префикс при формировании штрих-кода товара, если так задано в структуре штрих-кода.
{{ProtocolCommand|goods-barcode-type}} - штрих- тип код товара (для режима прайс-чекера) или описание структуры штрих-кода товара, если номер структуры равен 200. Для версии 1.0.2.21 и старше.
{{ProtocolCommand|goods-barcode-type}} - номер структуры штрих-кода товара. {{ProtocolCommand|goods-barcode-struct}} - номер структуры штрих-кода товара для версии 1.0.2.21 и старше. {{ProtocolCommand|goods-action}} - признак акционности (скидка) товара (используется для вывода на кнопке товара специальной картинки).
{{ProtocolCommand|goods-is-popular}} - признак популярности товара (используется для вывода этих товаров в отдельное поле на форме выбора товаров).
{{ProtocolCommand|goods-owner-group}} - группа-владелец товара.
{{ProtocolCommand|goods-picture-bytes}} - картинка товара (массив байт). Устаревший параметр. Не рекомендуется использовать данный параметр, используете {{ProtocolCommand|goods-picture-filename}}.
{{ProtocolCommand|goods-picture-filename}} - имя файла картинки товара.
{{ProtocolCommand|goods-second-picture-filename}} - имя файла дополнительной картинки товара. Обычно используется для вывода на экран выводимый после печати этикетки.
{{ProtocolCommand|goods-packing-date}} - дата/время паковки (формат: '''''dd-MM-yyyy hh:mm''''').
{{ProtocolCommand|goods-valid-date}} - дата/время окончания срока годности (формат: '''''dd-MM-yyyy hh:mm''''').
{{ProtocolCommand|goods-sale-before-date}} - дата/время окончания продажи товара (формат: '''''dd-MM-yyyy hh:mm'''''). Для версии 1.0.2.21 и старше. {{ProtocolCommand|goods-shelf-life}} - срок годности в днях. Если число отрицательно - : в часах.
{{ProtocolCommand|goods-weight-unit}} - весовая единица товара.
{{ProtocolCommand|goods-tare}} - вес тары товара.
{{ProtocolCommand|goods-message-x}}               - текстовые сообщения для печати на этикетке, где х номер строки текстового сообщения.Расширенные сообщения (номера с 6 и выше) введены начиная с сборки 4121.  // "goods-message-1" - текстовое сообщение // "goods-message-2" - ингредиенты // "goods-message-3" - страна происхождения // "goods-message-4" - реклама // "goods-message-5" - данные для второго ШК // "goods-message-6" - пищевая ценность / энергетическая ценность // "goods-message-7" - условия хранения // "goods-message-8" - изготовлено // "goods-message-9" - срок годности // "goods-message-10" - изготовитель // "goods-message-11" - картинка для этикетки 
*В поле {{ProtocolCommand|goods-picture-filename}} и {{ProtocolCommand|goods-second-picture-filename}} передается имя файла картинки для товара или группы. Указанный файл должен присутствовать в каталоге {{Путь к файлу|./Data/PicturesImages/}}. Можно располагать файлы в подкаталогах.
*Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте {{ProtocolCommand|data: use-compress}} : 1 или 0.
:{{ProtocolCommand|goods-message-1}} - текстовое сообщение
:{{ProtocolCommand|goods-message-2}} - ингридиентыингредиенты
:{{ProtocolCommand|goods-message-3}} - страна происхождения
{{ProtocolCommand|group-picture-filename}} - имя файла картинки группы.
{{ProtocolCommand|group-second-picture-filename}} - имя файла второй картинки группы. Используется для вывода на экраны товаров. {{ProtocolCommand|group-picture-bytes}} - картинка товара (массив байт). Устаревший параметр. Не рекомендуется использовать данный параметр, используете {{ProtocolCommand|group-picture-filename}}.
{{ProtocolCommand|group-owner-group}} - номер группы-владельца.
| 52 || EAN8 || DD(2) IIIII(5) CRC(1) || Не поддерживание (введен для совместимости)
|-
| '''99...119''' || EAN13 || Пользовательские штрихкоды ||Тип ШК задается в структуре пользовательского кода начиная с версии 1.0.2.21|-| '''200''' || || Пользовательский штрихкод, индивидуальный для каждого товара || Тип ШК задается в данных каждого товара индивидуально с версии 1.0.2.23
|}
{{ProtocolCommand|store-name-4}} - название магазина строка 4
 
==Настройки весов==
Данные команды служат для получения списка настроек весов, а так же получения или изменения самих значений настроек на весах.
 
 
При передаче данных команд необходимо передавать пароль для изменения настроек (этот пароль используется так же для входа в режим настроек на весах).
 
При передаче пароля рекомендуется передавать MD5 сумму пароля в поле {{ProtocolCommand|password}} и значение {{ProtocolCommand|"crypted-password": true}}.
 
Если пароль передается в открытом виде, что не рекомендуется по соображениям безопасности, то нужно передать значение {{ProtocolCommand|"crypted-password": false}}.
 
=== Получение списка настроек ===
 
Команда для получения настроек с весов {{ProtocolCommand|GetSettingsList}}:
 
<source lang="json">
{
"id": 4,
"command": "GetSettingsList",
"data": {
"application": "PyR1SensorDriver",
"version": "0.0.1.0",
"version-build": "1",
"compile-date": "26.07.2022",
"password": "11b9842e0a271ff252c1903e7132cd68",
"crypted-password": true,
}
}
</source>
 
Ответ:
 
<source lang="json">
{
"id": 4,
"response": "Ok",
"response-code": 0
"data": {
"application": "R1 Sensor.",
"compile-date": "26-07-2022",
"version": "1.0.2.22",
"version-build": 4153,
 
"settings-read-list": [{"settings-name": "enDebug", "settings-type": 1, "settings-type-name": "bool", "settings-value": true}, {"settings-name": "enLog", "settings-type": 1, "settings-type-name": "bool", "settings-value": true}],
"settings-write-list": [{"settings-name": "enDebug", "settings-type": 1, "settings-type-name": "bool", "settings-value": true}, {"settings-name": "enLog", "settings-type": 1, "settings-type-name": "bool", "settings-value": true}]
}
}</source>
 
Возвращаемые значения:
{{ProtocolCommand|settings-read-list}} - Список настроек доступных для чтения.
{{ProtocolCommand|settings-write-list}} - Список настроек доступных для изменения.
 
В списках возвращается перечень настроек со следующими параметрами:
{{ProtocolCommand|settings-name}} - название настройки. Используется для чтения и изменения.
{{ProtocolCommand|settings-type}} - числовое представление типа значения настройки.
{{ProtocolCommand|settings-type-name}} - название типа значения настройки.
{{ProtocolCommand|settings-value}} - текущее значение настройки.
 
 
=== Получение значения настроек ===
 
В поле {{ProtocolCommand|settings-name}} передается название необходимого параметра настроек, а поле {{ProtocolCommand|settings-valuе}} само значение.
 
Команда для получения значений настроек с весов {{ProtocolCommand|GetSettings}}:
 
<source lang="json">
{
"id": 4,
"command": "GetSettings",
"data": {
"application": "PyR1SensorDriver",
"version": "0.0.1.0",
"version-build": "1",
"compile-date": "26.07.2022",
"password": "11b9842e0a271ff252c1903e7132cd68",
"crypted-password": true,
"settings-name": "enImageRecognition"
}
}
 
</source>
 
Ответ:
 
<source lang="json">
{
"id": 4,
"response": "Ok",
"response-code": 0
"data": {
"application": "R1 Sensor.",
"compile-date": "26-07-2022",
"version": "1.0.2.22",
"version-build": 4153
 
"settings-name": "enImageRecognition",
"settings-value": false,
}
}</source>
 
Для получения нескольких настроек одновременно можно при передаче использовать список c названиями настроек.
Для этого необходимо записать имена настроек в список {{ProtocolCommand|items-list}}.
 
Значения так же возвращаются в списке {{ProtocolCommand|items-list}}.
 
<source lang="json">
{
"id": 18,
"command": "GetSettings",
"data": {
"application": "PyR1SensorDriver",
"version": "0.0.1.0",
"version-build": "1",
"compile-date": "26.07.2022",
"password": "11b9842e0a271ff252c1903e7132cd68",
"crypted-password": true,
"items-list": [{"settings-name": "enImageRecognition"}, {"settings-name": "enDebug"}]
}
}
</source>
 
Ответ:
 
<source lang="json">
{
"id": 18,
"response": "Ok",
"response-code": 0
"data": {
"application": "R1 Sensor.",
"compile-date": "26-07-2022",
"version": "1.0.2.22",
"version-build": 4153,
"items-list": [{"settings-name": "enImageRecognition", "settings-value": "true"}, {"settings-name": "enDebug", "settings-value": "true"}]
},
}
</source>
 
 
=== Изменение значения настроек ===
 
Команда для изменения настроек на весах: {{ProtocolCommand|SetSettings}}
 
При изменении настроек используется тоже имя настройки, что и при получении значения настройки.
 
В поле {{ProtocolCommand|settings-name}} передается название необходимого параметра настроек, а поле {{ProtocolCommand|settings-valuе}} само значение.
 
<source lang="json">
{
"id": 18,
"command": "SetSettings",
"data": {
"application": "PyR1SensorDriver",
"version": "0.0.1.0",
"version-build": "1",
"compile-date": "26.07.2022",
"password": "11b9842e0a271ff252c1903e7132cd68",
"crypted-password": true,
"settings-name": "enImageRecognition",
"settings-value": "true"
}
}
</source>
 
 
Ответ:
 
<source lang="json">
{
"id": 18,
"response": "Ok",
"response-code": 0
"data": {
"application": "R1 Sensor.",
"compile-date": "26-07-2022",
"version": "1.0.2.22",
"version-build": 4153
},
}
</source>
 
 
Для изменения нескольких настроек одновременно можно при передаче использовать список.
Для этого необходимо записать настройки в список {{ProtocolCommand|items-list}}
 
<source lang="json">
{
"id": 18,
"command": "SetSettings",
"data": {
"application": "PyR1SensorDriver",
"version": "0.0.1.0",
"version-build": "1",
"compile-date": "26.07.2022",
"password": "11b9842e0a271ff252c1903e7132cd68",
"crypted-password": true,
"items-list": [{"settings-name": "enImageRecognition", "settings-value": "true"}, {"settings-name": "enDebug", "settings-value": "true"}]
}
}</source>
 
В ответе на данную команду присутствует список со статусами изменения каждой из переданных настроек:
 
<source lang="json">
{
"id": 18,
"response": "Ok",
"response-code": 0
"data": {
"application": "R1 Sensor.",
"compile-date": "26-07-2022",
"version": "1.0.2.22",
"version-build": 4153
"items-list": [{"enImageRecognition": True}, {"enDebug": True}]
}
}
</source>
 
==Перезапуск системы распознавания товаров==
 
Данная команда служат для перезапуска системы распознавания товаров после изменения настроек системы.
 
 
При передаче данной команды необходимо передавать пароль для изменения настроек (этот пароль используется так же для входа в режим настроек на весах).
 
 
При передаче пароля рекомендуется передавать MD5 сумму пароля в поле {{ProtocolCommand|password}} и значение {{ProtocolCommand|"crypted-password": true}}.
 
Если пароль передается в открытом виде, что не рекомендуется по соображениям безопасности, то нужно передать значение {{ProtocolCommand|"crypted-password": false}}.
 
 
<source lang="json">
{
"id": 6,
"command": "RestartImageRecognitionSystem",
"data": {
"application": "PyR1SensorDriver",
"version": "0.0.1.0",
"version-build": "1",
"compile-date": "26.07.2022",
"password": "11b9842e0a271ff252c1903e7132cd68",
"crypted-password": true
}
}
</source>
 
Ответ:
 
<source lang="json">
{
"id": 6,
"response": "Ok",
"response-code": 0
"data": {
"application": "R1 Sensor.",
"compile-date": "26-07-2022",
"version": "1.0.2.22",
"version-build": 4153
},
}
</source>
=Перечень ошибок=

Навигация