2541
правка
Изменения
→Запросы к весовому комплексу
=Дата изменения документации=
=Общие сведения о протоколе=
{{Внимание|запрещается одновременно обновлять базу товаров в параллельных сессиях.}}
Допускается параллельное выполнение таких операций как копирование файлов или копирование считывание файлов и обновление базы товаров.
==Запросы к весовому комплексу==
Запрос обязательно должен содержать следующие поля:
==Ответы от весового комплекса==
Ответ обязательно содержать следующие поля:
{{ProtocolCommand|id}} - идентификатор запроса.
{{ProtocolCommand|response}} - текстовое описание ответа весов (результат выполнения команды или запроса).
{{ProtocolCommand|response-code}} - цифровое код ответа весов (результат выполнения команды или запроса).
Объект {{ProtocolCommand|data}} - в данном объекте передаются дополнительные данные, являющиеся результатом выполнения команды. Так же в этом поле содержится информация о ПО весов.
==Объект "''data''"==
В объекте "''{{ProtocolCommand|data''" }} передаются дополнительные данные, необходимые для выполнения или являющиееся являющиеся результатом выполнения команд.Постоянно в объекте дата присутствуют поля "''{{ProtocolCommand|application''" "''}} {{ProtocolCommand|version''" "''}} {{ProtocolCommand|compile-date''"}}, в которых содержится информация о ПО, которое их сформировало. Данная информация используется в информационных целях. Так же в случае возникновения ошибки присутсвует присутствует поле "{{ProtocolCommand|response-ext"}}, в котором содержится расширенное описание ошибки.
В некоторых командах, пересылающих большие объемы данных, данные предварительно могут быть запакованы архиватором GZip (см. описание команд).
Данная возможность отключается через настройки весового комплекса или в флагом "''{{ProtocolCommand|use-compress''" }} объекте "''{{ProtocolCommand|data''"}}.
Кодировка русских символов: UTF-8
==Получение и установка даты и времени на весах==
При запросе в объекте "{{ProtocolCommand|data" }} возвращаются дата/время с весов.
При установке в объекте "{{ProtocolCommand|data" }} передаются дата/время с весов.
==Начало и окончание загрузки товаров и групп==
Команда "{{ProtocolCommand|BeginUpdate" }} подается перед загрузкой товаров и/или групп внутренний буфер приема данных в этот момент очищается и весы готовы к приему данных, если команда подается повторно - данные, уже приняты на тот момент удаляются.
Команда "{{ProtocolCommand|EndUpdate" }} подается после передачи всех данных. После передачи этой команды данные анализируются, сохраняются во внутреннюю базу весов и происходит обновление информации на экране.
Изначально включается режим обновления/добавления товаров и групп. Если после команды "{{ProtocolCommand|BeginUpdate" }} передать команду "{{ProtocolCommand|ClearGoodsAndGropus"}}, то включается режим замены базы данных (перед обработкой загруженных данных база данных в весах очищается).
Данная команда позволяет получить текущее состояние весов: заблокированы или нет, текущий вес, состояние ошибки и др. информацию о весах.
При запросе в объекте "{{ProtocolCommand|data" }} данные статуса весов.
"scalegoods-versioncount" "groups- версия весового модуля;count""labels-count"
"scaleerror-serialcode""error-numberstate"" error- заводской номер;text"
"operationlock-systemstate" "packing-mode""user-inactive-time""image-recognition- тип операционной системы;active""image-recognition-camera-error""price-checker-active""voice-control-active"
"hostnamelicensed" - имя хоста весов;
"usercurrent-namealgoritm" - имя пользователя, под которым запущено ПО весов;
"currentweight""weight-timestability""weight-datetare" - текущее время и дата;
"disksscale-model""scale-version""scale-serial-number"" scale-serial- перечень дисков (актуально для Windows версии);number-ext"
"freeoperation-system""cpu-diskmodel"" cpu- свободного места на системном диске;serial-number""cpu-temperature""hostname""user-name"
"freecurrent-worktime-diskdate" "hardware-rtc-state""version- свободного места на рабочем диске;build"
"freescreen-memoryresolution" - свободно оперативной памяти;
"screenlast-resolutionimport-datetime"" last-import- разрешение экрана;status"
"systemeth-upip-timeaddress" "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 (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте {{ProtocolCommand|"data": "use-compress" }} : 1 или 0. Далее данные кодируются в BASE-64. В объекте "{{ProtocolCommand|data" }} возвращаются данные лог файла "{{ProtocolCommand|log-file-data" }} и размер файла "{{ProtocolCommand|log-file-size"}}.
</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" }} на проводимую операцию (изменяется в настройках весов).
==Обнуление веса и тарирование весов==
Данная команда позволяет удаленно выполнить обнуление веса "{{ProtocolCommand|ZeroWeight" }} или произвести тарирование "{{ProtocolCommand|TareWeight" }} весов.
В объекте "{{ProtocolCommand|data" }} передается пароль "{{ProtocolCommand|password" }} на проводимую операцию (изменяется в настройках весов).
==Перезагрузка и выключение весов==
Данная команда позволяет удаленно выполнить перезагрузку "{{ProtocolCommand|RebootScale" }} или произвести выключение "{{ProtocolCommand|PowerOffScale" }} весов.
В объекте "{{ProtocolCommand|data" }} передается пароль "{{ProtocolCommand|password" }} проводимую операцию (изменяется в настройках весов).
Стандартный пароль для перезагрузки и выключения: {{Password|255}}
==Перезапуск и завершение работы ПО весов==
Данная команда позволяет удаленно выполнить перезагрузку "{{ProtocolCommand|RestartApp" }} или завершить работу "{{ProtocolCommand|ShutdownApp" }} основного ПО весов.
В объекте "{{ProtocolCommand|data" }} передается пароль "{{ProtocolCommand|password" }} проводимую операцию (изменяется в настройках весов).
Стандартный пароль для перезагрузки и выключения: {{Password|255}}
</source>
==Получение информации о файле, картинке, шаблоне этикетки или других файла списка файлов в каталоге программы на весах, удаление и добавление файлов==Данная команда позволяет получить информацию о файлесписок файлов или каталогов в указанном каталоге. Начальным путем для поиска файлов является каталог программы.
Для получение получения информации о файленеобходимо передать каталог {{ProtocolCommand|search-dir}}, находящимся в подкаталогах, необходимо в имя файла включить путь до необходимого файламаску файлов {{ProtocolCommand|files-mask}} и флаг поиска файлов или каталогов {{ProtocolCommand|search-files}}.
{{ProtocolCommand|file-name}} - имя файла
{{ProtocolCommand|file-data}} - данные файла./Data/Images/ Кодируются в BASE- картинки, используемые программой64.
{{ProtocolCommand|file-md5}} - контрольная сумма файла./Data/Labels/ Рассчитывается до кодировки данных в BASE- шаблоны этикеток64.
{{ProtocolCommand|use-compress}} - использование компрессии данных в GZip./Data/Media/ - звуки, используемые программой
{{ProtocolCommand|"MultiPart"}} - блочный режим передачи данных.Использование нескольких пакетов при приеме/Data/Lic/ - лицензии для программыпередаче файлов.
{{ProtocolCommand|"part-data-no"}} - номер текущего пакета при блочном приеме/передаче файлов. Отсчет с 0./Settings/ - настройки программы и экранные формы
{{ProtocolCommand|"total-parts"}} - общее количество пакетов при блочном приеме/передаче файлов../Exchange/Flags/ - флаги создаваемые программой в результате событий на весах
В объекте {{ProtocolCommand|data}} передается имя необходимого каталога {{ProtocolCommand|dir-name}}../Exchange/Log/BadFiles/ - протоколы обработки неуспешно импортированных данных
При добавлении файла в объекте {{ProtocolCommand|data}} в поле {{ProtocolCommand|file-data}} передаются данные файла, а в поле {{ProtocolCommand|file-md5}} - контрольная сумма файла рассчитанная по алгоритму MD5 до кодирования в BASE-64.При передаче файла частями {{ProtocolCommand|file-md5}} передается только в последнем пакете и содержит контрольную сумма всего файла./Exchange/Reports/ - отчеты, создаваемые программой
Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте {{ProtocolCommand|"data": "use-compress"}} : ''1'' или ''0'' или ''true''/''false''. При использовании блочной передачи файлов архиватором пакуется каждая часть отдельно. После паковки блока, данные кодируются в BASE-64.
<source lang="json">
"data" : {
"file-name" : "./Data/Images/goods.no.picture.png" , "file-data" : "данные-файла", "usefile-compressmd5" : 1"9caa7d76e8e08b56256594f39c13e7d8"
}
<--
"response" : "Ok",
"response-code" : 0
</source>
<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>
==Выполнение команды весами==
Данная команда позволяет выполнить команды на весах.
{{Внимание|Данная команда пока не реализована.}}
Запрос:
<source lang="json"> "command" : "ExecuteCommand"</source>
Ответ:
Данная команда позволяет полностью очистить базу товаров и групп перед загрузкой новых товаров и групп.
Если данная команда не передается, то включается режим обновления/добавления товаров.
Очистка данных производится только если добавляется хотя бы один товар.
'''Если данная команда передается отдельно от других команд, производится полная очистка базы товаров (удаляются все товары и группы).'''
Запрос:
<source lang="json"> "command" : "ClearGoodsAndGroups"</source>
Ответ:
"response-code" : 0
</source>
==Добавление товаров, обновление или удаление товаров и групп товаров==
Перед использование данных команд, необходимо передать на весы команду "{{ProtocolCommand|BeginUpdate"}}, а по окончании работы с товарами передается команда "{{ProtocolCommand|EndUpdate"}}. При необходимости очистки базы товаров на весах, между передачами команд "{{ProtocolCommand|BeginUpdate/EndUpdate"}}, так же необходимо передать команду "{{ProtocolCommand|ClearGoodsAndGroups"}}. При использовании команд обновления ({{ProtocolCommand|UpdateGoods}} и {{ProtocolCommand|UpdateGroups}}), если товара или группы нет в базе весов - товар или группа создаются и сообщение об ошибке не передается. Разница между командами {{ProtocolCommand|UpdateХХХ}} и {{ProtocolCommand|AddXXX}} заключается в минимальном наборе параметров, которые необходимо передаются на весы, что бы не возникло ошибки при приеме команды. Так для для команды {{ProtocolCommand|AddGoods}} необходимо передать: номер товара, название товар, группу-владелец и цену. Для команды {{ProtocolCommand|UpdateGoods}}: только номер товара. Если при использовании команд удаления ({{ProtocolCommand|RemoveGoods}} и {{ProtocolCommand|RemoveGroups}}) товар или группа не найден - передается ошибка '''''товар не найден'''''. В объекте {{ProtocolCommand|data}} передаются все необходимые параметры товара или группы.
*Поля данных товара:
{{ProtocolCommand|goods-picture-filename}} - имя файла картинки товара.
{{ProtocolCommand|goods-produced-date}} - дата/время производства (формат: '''''dd-MM-yyyy hh:mm''''').
{{ProtocolCommand|goods-sale-before-date}} - дата/время окончания продажи товара (формат: '''''dd-MM-yyyy hh:mm'''''). Для версии 1.0.2.21 и старше.
{{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-no}}, {{ProtocolCommand|goods-name}}, {{ProtocolCommand|goods-price}}, *Формат дат: '''''dd.MM.yyyy hh:mm''''' *В поле {{ProtocolCommand|goods-picture-filename}} и {{ProtocolCommand|goods-second-picture-filename}} передается имя файла картинки для товара или группы. Указанный файл должен присутствовать в каталоге {{Путь к файлу|./Data/Images/}}. Можно располагать файлы в подкаталогах. *Данные могут быть предварительно запакованы архиватором GZip (отключается в настройках весов). Так же флаг использования компрессии можно предать в объекте "{{ProtocolCommand|data": "use-compress" }} : 1 или 0. :Далее данные кодируются в BASE-64.
*Срок годности товара имеет следующие значение:
*Поля {{ProtocolCommand|goods-message-x}} служат для передачи дополнительной текстовой информации, печатаемой на этикетке.
*Поля данных группы:
*Для успешного добавления группы необходимо передать как минимум следующие поля:
"response-code" : 0
</source>
===Весовые типы товаров (Weight Unit)===
{| class="wikitable"
|-
! Код !! Тип !! Название
|-
| 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''''' - контрольная сумма
{| class="wikitable"
|-
! Код !! Тип !! Содержание !! Примечание
|-
| 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 || Пользовательские штрихкоды || Тип ШК задается в структуре пользовательского кода начиная с версии 1.0.2.21
|-
| '''200''' || || Пользовательский штрихкод, индивидуальный для каждого товара || Тип ШК задается в данных каждого товара индивидуально с версии 1.0.2.23
|}
Изменение пользовательских ШК описано {{Описано в разделе|Настройка_пользовательского_штрихкода}}.
==Добавление или связывание шаблонов этикеток==
Данная команда служат для передачи на весы шаблонов этикеток и установки связи между именами файлов шаблонов этикеток и номерами этикеток, которые используются в параметрах товаров.
При установке связи между именем файла шаблона этикетки, необходимо предварительно загрузить файл на весы в каталог {{Путь к файлу|./Data/Labels}}.
Если файл отсутвует отсутствует - связь не будет установлена.
В случае передачи данных шаблона в команде имя файла генерируется автоматически.
Перед использование данной команды, необходимо передать на весы команду "{{ProtocolCommand|BeginUpdate"}}, а по окончании работы с товарами передается команда "{{ProtocolCommand|EndUpdate"}}. Можно использовать эти команду в едином цикле с обновление информации о товарах.
Данные шаблонов, если передаются прямо в команде, могут быть предварительно запакованы архиватором GZip (отключается в настройках весов).
Так же флаг использования компрессии можно предать в объекте {{ProtocolCommand|"data": "use-compress" }} : 1 или 0.
Далее данные кодируются в BASE-64.
Поля данных этикетки:
==Изменение номера и названия магазина==
Возможна передача до 4-х строк названия магазина.
Перед использование данной команды, необходимо передать на весы команду "{{ProtocolCommand|BeginUpdate"}}, а по окончании работы передается команда "{{ProtocolCommand|EndUpdate"}}. Можно использовать эти команду в едином цикле с обновление информации о товарах.
Поля данных этикетки:
<source lang="storejson">{ "id": 4, "command": "GetSettingsList", "data": { "application": "PyR1SensorDriver", "version": "0.0.1.0", "version-namebuild": "1", "compile-2 date": "26.07.2022", "password": "11b9842e0a271ff252c1903e7132cd68", "crypted- название магазина строка 2 password": true, }}</source>
<source lang="storejson">{ "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}} передается название магазина строка 4 необходимого параметра настроек, а поле {{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>
=Перечень ошибок=
При возникновении ошибок в ответе содержится текстовый ответ и код, сообщающие о возникшей ошибке.
Так же в объект "{{ProtocolCommand|data" }} добавляется поле с расширенным описание ошибки "{{ProtocolCommand|response-ext"}}.
При работе с весами возможны следующие ошибки:
Ошибка данных команды или некорректные данные:
В поле "response-ext" возвращается расширенное описание ошибки.
<source lang="json">
"response" : "Error"
"response-code" : -2
"data" :
{
"response-ext" : "Unknown command"
}
</source>
Ошибка выполнения команды (например: при установке даты/времени):
В поле "response-ext" возвращается расширенное описание ошибки.
<source lang="json">
"response" : "ExecError"
"response-code" : -3
"data" :
{
"response-ext" : "Error sync date/time (-1)."
}
</source>