Обновление встроенного ПО
Файл прошивки передаётся в контроллер следующими кадрами. В первом кадре from д.б. равно 0.
В последнем to д.б. равно size.
Загрузка
{
"set" : "binary",
"binary" : {
"file" : "firmware",
"size" : 5757200,
"from" : 0,
"to" : 511,
"part" : "IyBNYWluIGZpbGUgZm9yIE5YUCBMUEMxeHh4L0xQQzQweHggc2VyaWVzIENvcnRleC1NMC8wKy8zLzRGIHBhcnRzCiMKIyAhISEhISEKIwojIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGRpcmVjdGx5LCByYXRoZXIgYnkgdGhlIGxwYzExeHguY2ZnLAojIGxwYzEzeHguY2ZnLCBscGMxN3h4LmNmZywgZXRjLiB3aGljaCBzZXQgdGhlIG5lZWRlZCB2YXJpYWJsZXMgdG8gdGhlCiMgYXBwcm9wcmlhdGUgdmFsdWVzLgojCiMgISEhISEhCgojIExQQzh4eCBjaGlwcyBzdXBwb3J0IG9ubHkgU1dEIHRyYW5zcG9ydC4KIyBMUEMxMXh4IGNoaXBzIHN1cHBvcnQgb25seSBTV0QgdHJhbnNwb3J0LgojIExQQzEyeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnQuCiMgTFBDMTFVeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnRzLgojIExQQzEzeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnRzLgojIExQQzE3eHggY2hpcHMgc3VwcG9ydCBib3RoIEpUQQ"
}
}
Ответ (результат выполнения set)
{
"answer" : { "binary": "ok" },
"binary" : {
"file" : "firmware",
"size" : 5757200,
"from" : 0,
"to" : 511,
"part" : "IyBNYWluIGZpbGUgZm9yIE5YUCBMUEMxeHh4L0xQQzQweHggc2VyaWVzIENvcnRleC1NMC8wKy8zLzRGIHBhcnRzCiMKIyAhISEhISEKIwojIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGRpcmVjdGx5LCByYXRoZXIgYnkgdGhlIGxwYzExeHguY2ZnLAojIGxwYzEzeHguY2ZnLCBscGMxN3h4LmNmZywgZXRjLiB3aGljaCBzZXQgdGhlIG5lZWRlZCB2YXJpYWJsZXMgdG8gdGhlCiMgYXBwcm9wcmlhdGUgdmFsdWVzLgojCiMgISEhISEhCgojIExQQzh4eCBjaGlwcyBzdXBwb3J0IG9ubHkgU1dEIHRyYW5zcG9ydC4KIyBMUEMxMXh4IGNoaXBzIHN1cHBvcnQgb25seSBTV0QgdHJhbnNwb3J0LgojIExQQzEyeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnQuCiMgTFBDMTFVeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnRzLgojIExQQzEzeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnRzLgojIExQQzE3eHggY2hpcHMgc3VwcG9ydCBib3RoIEpUQQ"
}
}
После ответа на последний кадр загрузки необходимо перезагрузить контроллер командой:
Команда
{
"control" : "reboot",
"reboot" : {}
}
Ответ (результат выполнения control)
{
"result" : { "reboot": "ok" },
"reboot" : {}
}
После передачи ответа контроллер перезагрузится, и начнётся процесс перепрошивки. Процесс перепрошивки может занимать длительное время (типично - несколько минут), в течение его контроллер может несколько раз перезагружаться. После перепрошивки восстановится связь с софтом (WEB UI).
Обновление HTTPS сертификата
Сертификат передаётся в контроллер аналогично прошивке. Перезагрузка не требуется.
Логирование
Запрос архива лога контроллера осуществляется следующей командой get : data_file (см. ниже). В ответ на неё контроллер передаст архив *.tar.gz с логами, разбитый на отдельные кадры. В первом кадре first:true, в последнем last:true. Файл архив при передаче кодируется base64.
Запрос
{
"get" : "data_file",
"data_file" : {"file":"log"}
}
Ответ (результат выполнения set)
{
"answer" : { "data_file": "ok" },
"data_file" : {
"file" : "log",
"size": 16848,
"first":true,
"last":false,
"part" : "IyBNYWluIGZpbGUgZm9yIE5YUCBMUEMxeHh4L0xQQzQweHggc2VyaWVzIENvcnRleC1NMC8wKy8zLzRGIHBhcnRzCiMKIyAhISEhISEKIwojIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGRpcmVjdGx5LCByYXRoZXIgYnkgdGhlIGxwYzExeHguY2ZnLAojIGxwYzEzeHguY2ZnLCBscGMxN3h4LmNmZywgZXRjLiB3aGljaCBzZXQgdGhlIG5lZWRlZCB2YXJpYWJsZXMgdG8gdGhlCiMgYXBwcm9wcmlhdGUgdmFsdWVzLgojCiMgISEhISEhCgojIExQQzh4eCBjaGlwcyBzdXBwb3J0IG9ubHkgU1dEIHRyYW5zcG9ydC4KIyBMUEMxMXh4IGNoaXBzIHN1cHBvcnQgb25seSBTV0QgdHJhbnNwb3J0LgojIExQQzEyeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnQuCiMgTFBDMTFVeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnRzLgojIExQQzEzeHggY2hpcHMgc3VwcG9ydCBvbmx5IFNXRCB0cmFuc3BvcnRzLgojIExQQzE3eHggY2hpcHMgc3VwcG9ydCBib3RoIEpUQQ"
}
}
Изменение “серъёзности” (уровня) логирования осуществляется следующей командой. Серъёзность (уровень) логирования меняется до поступления следующей команды или до перезагрузки контроллера, после перезагрузки уровень логирования базовый - только ошибки.
Установка
{
"control" : "log",
"log" : {"severity_level" : 0}
}
Ответ
{
"result" : { "log": "ok" },
"log" : {"severity_level" : 0}
}
Резервирование БД
Журнал событий не резервируется. Только общие установки контроллера (сеть, временная зона, удалённые сервера, пароль и т.п.) и параметры ИУ. Используется для возможности восстановления БД контроллера из резервной копии при повреждении файла БД после старта контроллера. Рекомендуется производить после важных изменений конфигурации.
Команда
{
"control":"sql",
"sql":{"action":"replication"}
}
Ответ
{
"result" : { "sql": "ok","control":"own" },
"sql" : {"action" : "replication"}
}
file — Тип загружаемого файла:
`firmware` — прошивка
`ssl` — HTTPS сертификат
size — Размер файла.
from — Позиция в файле 1-го байта передаваемых данных.
to — Позиция в файле последнего байта передаваемых данных.
part — Передаваемые данные (часть файла от from до to), строка в base64.
Загружаемый файл представляет собой бинарные данные (в общем случае). Каждая часть файла перед передачей кодируется в base64, и помещается в поле part. Поля size, from и to относятся к бинарным данным (не стооке)! Т.е. размер передаваемых в кадре бинарных данных to - from будет на 1/4 меньше размера строки part.
first / last — признак первого / последнего кадра выгружаемого файла соответственно:
`true` — да
`false` — нет
severity_level — определяет уровень «строгости» логирования может быть строкой либо целым числом в диапазоне 0 — 5. Чем меньше значение, тем меньше «строгосиь», и тем больше информации в журнале. Строковые значения:
`debug` (`0`)
`normal` (`1`)
`info` (`2`)
`warning` (`3`
`error` (`4`)
`critical` (`5`)
Ошибки “error”:
`action unresolved` - не распознаное действие в команде
`Required: action` - отсутствует поле `action`
`Incorrect size of base64` - не корректно раскодирован из base64, либо не правильные параметры запроса (`to`? `from`?)
`Write error` - ошибка записи файла на устройство
`Incorrect Binary size` - слишком большой размер передаваемого файла
`Incorrect Binary` - не корректный файл (ошибка формата или содержания)
`Can not create file` - не возможно создать файл на устройстве
`to not less than size` - не правильные параметры запроса (`to`? `size`?)
`file open error` - ошибка открытия файла
`memory allocation error` - внутренняя ошибка аллокации памяти для процесса передачи файла
`file type unrecognized` - не правильные параметры запроса (`file`?)
`file type error - no path for archives` - внутренняя ошибка