Открыть главное меню

Изменения

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

1565 байт добавлено, 13:04, 4 декабря 2021
Добавление, удаление и получение файлов и каталогов на/с весов
==Добавление, удаление и получение файлов и каталогов на/с весов==
Данные команды позволяют получать файлы с весов, удалять файлы на весах и передавать файлы на весы. Начальным путем точкой для поиска файлов является каталог программы.
Для работы с файлами, находящимся в подкаталогах, необходимо в имя файла включить путь до необходимого файла.
<source lang="json">
"command" : "AddFile"
"command" : "GetFile"
"command" : "RemoveFile"
"command" : "AddDir"
"command" : "PartDataSended"
</source>
 
Поля используемые при работе с файлами:
 
{{ProtocolCommand|file-name}} - имя файла
 
{{ProtocolCommand|file-size}} - размер файла
 
{{ProtocolCommand|file-data}} - данные файла. Кодируются в BASE-64.
 
{{ProtocolCommand|file-md5}} - контрольная сумма файла. Рассчитывается до кодировки данных в BASE-64.
 
{{ProtocolCommand|use-compress}} - использование компрессии данных в GZip.
 
{{ProtocolCommand|"MultiPart"}} - блочный режим передачи данных. Использование нескольких пакетов при приеме/передаче файлов.
 
{{ProtocolCommand|"part-data-no"}} - номер текущего пакета при блочном приеме/передаче файлов. Отсчет с 0.
 
{{ProtocolCommand|"total-parts"}} - общее количество пакетов при блочном приеме/передаче файлов.
 
Например: для получения файла-картинки имя файла должно быть таким {{ProtocolCommand|"file-name" : "./Data/Images/goods.no.picture.png"}}.
При добавлении файла в объекте {{ProtocolCommand|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" : "AddFile", "data" : { "file-name" : "./Data/Images/goods.no.picture.png", "file-data" : "данные-файла", "file-md5" : "9caa7d76e8e08b56256594f39c13e7d8" } <-- "response" : "Ok", "response-code" : 0</source>
При передаче/запросе больших файлов можно использовать передачу файлов частями (получение файлов более 16384 байт с весов всегда выполняется по частям). При передаче по частям необходимо в первом пакете использовать команду {{ProtocolCommand|AddFile}} и в объект данных {{ProtocolCommand|data}} добавить поля {{ProtocolCommand|"total-parts" : ''xxx''}} и {{ProtocolCommand|"part-data-no" : 0}}.
"file-data" : "данные-файла",
"part-data-no" : 0,
"total-parts" : 5, "use-compress" : 1
}
<--
"response" : "MultiPartOk", "response-code" : 10,
"data" : {
"part-data-no" : 0,