API - методы модуля telecom
Модуль telecom выполняет функции NB-Fi телеком-cервера. Данный HTTP API-интерфейс позволяет получать, отправлять NB-Fi пакеты данных, конфигурировать режимы работы устройств, базовых станций, выполнять мониторинг работы сети и загружать лицензии на новые устройства. Данные API - методы доступны на сервере https://api.waviot.ru
Таблица 1. Сводная таблица всех API методов модуля telecom
Описание |
URL |
Метод |
/telecom/api/messages |
GET |
|
/telecom/api/dl_messages |
GET |
|
/telecom/api/dl_message_status |
GET |
|
/telecom/api/send_dl |
GET |
|
/telecom/api/deletemessage |
GET |
|
/telecom/api/device |
GET |
|
/telecom/api/device |
POST |
|
/telecom/api/devsnr |
GET |
|
/telecom/api/bs |
GET |
|
/telecom/api/bs |
POST |
|
/telecom/api/stinfo |
GET |
|
/telecom/api/stats |
GET |
|
/telecom/api/license |
POST |
UL uniq - uplink пакет транспортного уровня протокола, имеющий длину всегда 8 байт.
UL copy - копия этого пакета, принятая другой базовой станцией(первый который пришел на сервер, это UL uniq, последующие - UL copy)
У пакетов UL uniq и UL copy частота приема, SNR и RSSI соответствуют действительности.
ULAPP - это uplink пакет уровня приложения, который может иметь длину от 1 до 240 байт и может формироваться из одного либо нескольких пакетов UL uniq. У пакетов ULAPP номер БС, частота приема SNR и RSSI определяются для самой мощной копии UL пакета среди принятых разными БС. Так как ULAPP пакет формируется, непосредственно сразу после прихода не сервер первой копии UL пакета, то информация о самой мощной копии, имеется только по предыдущему UL пакету. По этой причине, данные в ULAPP пакетах различаются от данных в UL пакетах, из которых они сформированы.
DL - downlink пакет транспортного уровня, имеющий длину всегда 8 байт.
INFO - уведомления, сформированные сервером, не являющиеся передаваемыми пакетами.
Для получения UL uniq, UL copy, ULAPP, DL и INFO пакетов из базы данных, используется метод /telecom/api/messages
DLAPP - это downlink пакет уровня приложения.
Для получения DLAPP пакетов из базы данных, используется метод /telecom/api/dl_messages
Чтение списка UL, DL, ULAPP, INFO пакетов
Чтение пакетов из базы данных с возможностью фильтрации по типу пакета, номерам устройств и/или БС и времени приема(отправки) пакета.
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/messages |
message_types, bs_ids, devices, timefrom, timeto, time_saved, limit |
telecom/api/messages?message_types=3&devices=7769790&bs_ids=8249&timeto=1554991680&limit=400 |
Ответ:
BODY |
[ { "bs_id": 8249, "comment": " ", "freq": 868812800, "iter": 35, "modem_id": 7769790, "payload": "420E245CAF1E3081890002382E8389000029978489000020A8816800000713", "phy": 26, "rssi": -75, "snr": 60, "time_detected": 1554990636, "time_saved": 1554990636, "type": 3 }, { "bs_id": 8249, "comment": " ", "freq": 868813867, "iter": 222, "modem_id": 7769790, "payload": "EF121408", "phy": 26, "rssi": -74, "snr": 60, "time_detected": 1554990251, "time_saved": 1554990252, "type": 3 } ] |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
message_types |
int |
тип пакета(1-UL uniq, 2- UL copy, 3 – ULAPP, 10 – DL, 20 - INFO) |
3 |
bs_ids |
int |
номер(а) БС |
все номера |
devices |
int |
номера(а) устройств |
все номера |
timefrom |
int |
таймстамп времени начала данных |
0 |
timeto |
int |
таймстамп времени окончания данных |
текущее время |
time_saved |
int |
0 – выборка по времени приема пакета 1 – выборка по времени сохранения пакета в БД |
0 |
limit |
int |
ограничение количества пакетов |
100 |
Чтение DLAPP пакетов из базы данных с возможностью фильтрации по статусу доставки пакета, номерам устройств и/или БС и времени изменения статуса пакета.
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/dl_messages |
statuses, bs_ids, devices, timefrom, timeto, limit |
telecom/api/dl_messages?statuses=4&devices=7769790&bs_ids=8249&timeto=1554991680&limit=400 |
Ответ:
BODY |
[ { "bs_id": 8249, "modem_id": 7769790, "noise": -114, "payload": "EF121408", "phy": 3, "posted_time": 1554990250, "snr": 50, "status": 4, "tag_id": "drvElectro5_15939795" }, { "bs_id": 8249, "modem_id": 7769790, "noise": -115, "payload": "EF0A", "phy": 3, "posted_time": 1554718939, "snr": 51, "status": 4, "tag_id": "drvElectro5_15579330" } ] |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
statuses |
int |
тип пакета(1-queued, 2- in process, 4 – delivered, 5 – lost) |
1,2,4,5 |
bs_ids |
int |
номер(а) БС |
все номера |
devices |
int |
номера(а) устройств |
все номера |
timefrom |
int |
таймстамп времени начала данных |
0 |
timeto |
int |
таймстамп времени окончания данных |
текущее время |
limit |
int |
ограничение количества пакетов |
100 |
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/send_dl |
modem_id, payload, tag_id |
telecom/api/send_dl?modem_id=7607371&payload=deadbeaf |
Ответ:
BODY |
{ "tag_id": "342519d9-9738-42f0-bd3d-1caddd15d3ca" } |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
modem_id |
int |
номер устройства, на которое необходимо отправить DLAPP-пакет |
обязательный параметр |
payload |
hex string |
отправляемые данные в формате HEX |
обязательный параметр |
tag_id |
string |
тэг DLAPP-пакета |
параметр может отсутствовать, в этом случае тэг будет сформирован автоматически |
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/dl_message_status |
tag_id |
telecom/api/dl_message_status?tag_id=342519d9-9738-42f0-bd3d-1caddd15d3ca |
Ответ:
BODY |
{ "ACK": 1, "bs_id": 0, "modem_id": 7607371, "payload": "DEADBEAF", "phy": 0, "posted_time": 1555329074, "status": 5, "tag_id": "342519d9-9738-42f0-bd3d-1caddd15d3ca" } |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
tag_id |
int |
тэг DLAPP-пакета |
обязательный параметр |
Удаление UL, DL, ULAPP пакета.
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/deletemessage |
modem_id, type, station_id, iter, time_detected |
telecom/api/deletemessage?modem_id=7769790&type=3&station_id=8249&iter=35&time_detected=1554990636 |
Ответ:
BODY |
{ "result": true } |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
modem_id |
int |
номер устройства |
обязательный параметр |
type |
int |
тип пакета(1-UL uniq, 2- UL copy, 3 – ULAPP, 10 – DL, 20 - INFO) |
обязательный параметр |
station_id |
int |
номер БС |
обязательный параметр |
iter |
int |
поле iter пакета |
обязательный параметр |
time_detected |
int |
поле time_detected пакета |
обязательный параметр |
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/device |
dev_ids |
telecom/api/device?dev_ids=7769790,7769791 telecom/api/device?list=1 |
Ответ на запрос без ключа list="1":
BODY |
[ { "bs_data": [ { "aver_snr": 76, "bs_id": 8249, "f_offset": -16, "last_hb_ts": 1555334055, "last_success_dl_ts": 1555312010, "last_unsuccess_dl_ts": 1554193669, "rating": 600 }, {
"aver_snr": 9,
"bs_id": 8252,"f_offset": 60, "last_hb_ts": 1554193569, "last_success_dl_ts": -1, "last_unsuccess_dl_ts": 1554171576, "rating": 100 } ], "dl_base_freq": 446000000, "dl_bitrates": [ 0, 1, 2, 3 ], "dl_messages_per_ack": 1, "dl_mode": "CRX", "dl_num_of_retries": 3, "dl_phy": "DL_PSK_FASTDL", "dl_strength": 0, "hw_type": "phobos3split_stm", "key": "B5D7E56067E5A0E1C2224896A79136284A4CB6194C4013B483BB2A284C9797B0", "last_success_dl_ts": 1555312010, "last_unsuccess_dl_ts": 1554193669, "modem_id": 7769790, "nbfi_ver": 4, "protocol": "electro5", "ul_base_freq": 868775000, "ul_bitrates": [ 21, 24, 26 ], "ul_messages_per_ack": 1, "work_bs": 8249 }, { "bs_data": [ { "aver_snr": 72, "bs_id": 8249, "f_offset": 0, "last_hb_ts": 1555334484, "last_success_dl_ts": 1555315229, "last_unsuccess_dl_ts": 1554990248, "rating": 600 } ], "dl_base_freq": 446000000, "dl_bitrates": [ 0, 1, 2, 3 ], "dl_messages_per_ack": 1, "dl_mode": "CRX", "dl_num_of_retries": 3, "dl_phy": "DL_PSK_FASTDL", "dl_strength": 0, "hw_type": "phobos3split_stm", "key": "3A20FC678C920613F5130E33D461F4B43BFFD454D833729A2452B5149EA70EFF", "last_success_dl_ts": 1555315229, "last_unsuccess_dl_ts": 1554990248, "modem_id": 7769791, "nbfi_ver": 4, "protocol": "electro5", "ul_base_freq": 868775000, "ul_bitrates": [ 21, 24, 26 ], "ul_messages_per_ack": 1, "work_bs": 8249 } ] |
Ответ на запрос c ключом list="1:
BODY |
{ "modems": 14, "x_ids": [ 7437096, 7437100, 7437105, 7437118, 7437145, 7437184, 7437192, 7437255, 7437262, 7437266, 7437271, 7437274, 7437275, 7437279 ] } |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
dev_ids |
int |
номер(а) устройств(а) |
все номера |
list |
int |
1 - вернуть результат в виде списка номеров |
0 |
Конфигурирование параметров устройств
POST запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/device |
telecom/api/device |
BODY |
[ { "modem_id": 7769790, "dl_base_freq": 446000000, "dl_bitrates": [ 0, 1, 2, 3 ], "dl_messages_per_ack": 1, "dl_mode": "CRX", "dl_num_of_retries": 3, "dl_strength": 0, "hw_type": "phobos3split_stm", "key": "B5D7E56067E5A0E1C2224896A79136284A4CB6194C4013B483BB2A284C9797B0", "nbfi_ver": 4, "protocol": "electro5", "ul_base_freq": 868775000, "ul_bitrates": [ 21, 24, 26 ], "ul_messages_per_ack": 1, }, { "modem_id": 7769791, "dl_base_freq": 446000000, "dl_bitrates": [ 0, 1, 2, 3 ], "dl_messages_per_ack": 1, "dl_mode": "CRX", "dl_num_of_retries": 3, "dl_strength": 0, "hw_type": "phobos3split_stm", "key": "3A20FC678C920613F5130E33D461F4B43BFFD454D833729A2452B5149EA70EFF", "nbfi_ver": 4, "protocol": "electro5", "ul_base_freq": 868775000, "ul_bitrates": [ 21, 24, 26 ], "ul_messages_per_ack": 1, } ] |
Чтение среднего уровня приема устройством UL пакетов
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/devsnr |
dev_id |
telecom/api/devsnr?dev_id=7769790 |
Ответ:
BODY |
{ |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
dev_id |
int |
номер(а) устройств(а) |
обязательный параметр |
Чтение параметров базовых станций.
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/bs |
bs_ids, online_status |
telecom/api/bs?bs_ids=9500 |
Ответ:
BODY |
[ |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
bs_ids |
int |
номер(а) БС |
все номера |
online_status |
int |
статус БС(0 – все, 1 – онлайн, 2 - оффлайн) |
0 |
Конфигурирование параметров базовых станций
POST запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/bs |
telecom/api/bs |
BODY |
[ { "bs_id": 9500, "address": "г. Москва, Лесная 3", "comment": "BS3 v3.4", "latitude": 0, "longitude": 0, "timezone": "Europe/Moscow", "timezone_offset": 10800 } ] |
Чтение статистики базовой станции
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/stinfo |
bs_ids, hours, dev_ids, snr, max_uls, type, protocol |
telecom/api/stinfo?bs_ids=9500&protocol=water5 |
Ответ:
BODY |
{ |
Описание параметров запроса
Имя параметра |
Тип |
Описание |
Значение по умолчанию |
bs_ids |
int |
номер(а) БС |
все номера |
hours |
int |
период выгрузки статистики(кол-во последних часов) |
24 |
dev_ids |
int |
фильтрация по номерам устройств |
все номера |
snr |
int |
порог уровня SNR (устройства с уровнем ниже данного порога попадают в список “low_snr_list”) |
6 |
max_uls |
int |
порог кол-ва UL пакетов (устройства с кол-вом пакетов больше данного порога попадают в список “high_message_rate_list”) |
∞ |
type |
string |
фильтрация по типу (type) устройства |
все типы |
protocol |
string |
фильтрация по протоколу (protocol) устройства |
все протоколы |
Чтение общей статистики telecom-сервера
GET запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/stats |
telecom/api/stats |
Ответ:
BODY |
{ |
Загрузка лицензии на устройства
POST запрос:
URL |
Список параметров |
Пример запроса |
/telecom/api/license |
telecom/api/license |
Ответ:
BODY |
{ |