База знаний Waviot

API сервера производства

ID статьи: 77
Последнее обновление: 27 Mar, 2020

API - методы сервера производства

Для использования данного API требуется быть авторизованным пользователем (процесс авторизации описан тут)

Таблица 1. Сводная таблица всех API методов сервера производства

Описание

URL

Метод

Требует авторизацию, необходимые права

Добавление записи о прошивке

/api/add_flash_controller

POST

да, workman

Получение словаря с настройками

/api/get_settings

GET

да

Получение логов калибровки устройства

/api/get_calib_logs

GET

да

Добавление лога калибровки устройству

/api/add_calib_log

POST

да

Проверка возможности совершить действие над устройством

/devices/check_action

POST

да

Добавление записи о прошивке

Если устройства ранее не было в БД, оно будет создано, иначе будет проверена принадлежность устройства к компании пользователя и его возможность перепрошивки. Если все условия будут удовлетворены, запись о прошивке будет добавлена, а информация об устройстве обновлена.

Внимание: для того, чтобы устройство можно было перепрошить, требуется поставить ему статус "разрешение на перепрошивку".

Запрос: /api/add_flash_controller

BODY

{
  "modem_id": 7368704,
  "key": "0123456789ABCDEF0123456789ABCDEF",
  "nbfi": {
    "dl_base_freq": 446000000,
    "dl_bitrates": [0, 1, 2, 3],
    "dl_mode": "CRX",
    "dl_num_of_retries": 3,
    "dl_strength": 26,
    "hw_type": "phobos3split",
    "nbfi_ver": 2,
    "protocol": "electro5",
    "ul_base_freq": 868775000,
    "ul_bitrates": [21, 24]
  },
  "type": "AXSEM",
  "version": "hardware_version",
  "fw_version": "firmware_version",
  "full_name": "device modification",
  "batch_id": 1234,
  "lic_sig": "1234567890abcdef",
  "lic_comment": ""
}

Описание параметров в JSON

Имя параметра

Тип

Описание

Значение по умолчанию

modem_id

int

номер модема

обязательный параметр

key

string

ключ шифрования

обязательный параметр

nbfi

json

настройки

обязательный параметр

type

string

тип платы

обязательный параметр

version

string

версия платы

обязательный параметр

fw_version

string

версия прошивки

обязательный параметр

full_name

string

модификация устройства

null

batch_id

int

номер батча

null

lic_sig

string

подпись лицензии

null

lic_comment

string

комментарий из лицензии

null

Ответ:

BODY

если код ответа 200:

{  
  "status": "ok",
  "data": {
    "id": 14566776,
    "modem_id": 7368704,
    "dev_type": "phobos3split",
    "key": "0123456789ABCDEF0123456789ABCDEF",
    "nbfi": {
      "dl_base_freq": 446000000,
      "dl_bitrates": [0, 1, 2, 3],
      "dl_mode": "CRX",
      "dl_num_of_retries": 3,
      "dl_strength": 26,
      "hw_type": "phobos3split",
      "nbfi_ver": 2,
      "protocol": "electro5",
      "ul_base_freq": 868775000,
      "ul_bitrates": [21, 24]
    },
    "type": "AXSEM",
    "version": "hardware_version",
    "user_id": 1,
    "timestamp": 1580000000,
    "fw_version": "firmware_version",
    "lic_sig": "1234567890abcdef",
    "lic_comment": ""
  }
}

иначе ( возможные коды ответа - 400 ):

{  
  "status": "error",
  "message": "<текст ошибки>"
}

Получение словаря с настройками

Метод для получения настроек для разных клиентских утилит, хранящихся на сервере.

Запрос: /api/get_settings

Ответ:

BODY

{  
  "status": "ok",
  "data": {

    setting_name : setting_value, ...

  }
}

Получение логов калибровки устройства

Запрос: /api/get_calib_logs?modem_id=7368704

Описание GET-параметров

Имя параметра

Тип

Описание

Значение по умолчанию

modem_id

int

номер модема

обязательный параметр

Ответ:

BODY

{  
  "status": "ok",
  "data": [{
    "modem_id":  7368704,
    "user_id":  1,
    "display_name":  "user name",
    "timestamp":  1580000000,
    "log":  "log text"
  }, ...]
}

Добавление лога калибровки устройству

Добавление новой записи в логи калибровки для устройства.

Запрос: /api/add_calib_log

BODY

{
  "modem_id": 7368704,
  "log": "log text",
}

Описание параметров в JSON

Имя параметра

Тип

Описание

Значение по умолчанию

modem_id

int

номер модема

обязательный параметр

log

string

текст лога,

макс. длина строки: 255

обязательный параметр

Ответ:

BODY

если код ответа 200:

{  
  "status": "ok",
  "data": {
    "id":  1586356,
    "modem_id":  7368704,
    "user_id":  1,
    "timestamp":  1580000000,
    "log":  "log text"
  }
}

иначе ( возможные коды ответа - 400 ):

{  
  "status": "error",
  "message": "<текст ошибки>"
}

Проверка возможности совершить действие над устройством

Внимание: для того, чтобы с устройством можно было совершить какое-либо действие, требуется быть владельцем этого устройства (из этого правила есть исключения, они будут описаны в таблице "Список идентификаторов действий").

Запрос: /devices/check_action

BODY

{
  "modem_ids": [7368704],
  "status_id": 1,
}

Описание параметров в JSON

Имя параметра

Тип

Описание

Значение по умолчанию

modem_ids

list: int

список номеров модемов

обязательный параметр

status_id

int

идентификатор действия

обязательный параметр

Список идентификаторов действий

Идентификатор

Действие

Описание/дополнительно

0

комментарий

Просто добавление текстового комментария

1

прошивка

ставится автоматически после прошивки устройства

Требуются права workman

5

ОТК (отметка технического контроля)

При совершении данного действия устройству заполняется поле "дата производства"

По умолчанию система проверяет наличие сообщений от устройства за последние 2 суток

Требуются права otc

9

брак

Пометка устройства как бракованного.

Требуются права otc

30

разрешение на перепрошивку

Данное действие дает возможность произвести повторную прошивку устройства.

Требуются права workman

Ответ:

BODY

если код ответа 200:

{  
  <номер модема>: <действие доступно : true|false>
}

иначе ( возможные коды ответа - 400 ):

{  
  "status": "error",
  "message": "<текст ошибки>"
}

Эта статья была:   Полезна | Не полезна
Сообщить об ошибке
ID статьи: 77
Последнее обновление: 27 Mar, 2020
Ревизия: 29
Просмотры: 0
Комментарии: 0