Lorawan-stack: Обзор единого шлюза

Созданный на 6 мар. 2019  ·  7Комментарии  ·  Источник: TheThingsNetwork/lorawan-stack

Резюме:
Консоли нужна обзорная страница для шлюзов, дополняющая наши обзорные страницы для приложений и устройств. См. также № 26.

Обзорная страница должна содержать:

  • основная информация, такая как идентификатор, имя, описание, дата создания
  • информация о статусе (последнее посещение)
  • расположение шлюзов (антенн)
  • количество отправленных/полученных сообщений
  • частотный план
  • информация об оборудовании (марка, модель, уровень сигнала, прошивка)
  • конфиденциальность (общедоступный/частный шлюз)

Неявно работа над обзором также будет содержать:

  • родительский вид шлюза (с боковой панелью, контейнером хлебных крошек)

Почему нам это надо?
Обзорные страницы наших объектов служат для быстрого доступа к наиболее важной информации с небольшой глубиной нажатия.

Что уже есть?
Соответствующие конечные точки API. Для справки пример ответа GET /gateways/{gateway_ids.gateway_id} из реестра шлюза:

{
  "ids": {
    "gateway_id": "string",
    "eui": "string"
  },
  "created_at": "2019-03-06T08:55:43.727Z",
  "updated_at": "2019-03-06T08:55:43.727Z",
  "name": "string",
  "description": "string",
  "attributes": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "contact_info": [
    {
      "contact_type": "CONTACT_TYPE_OTHER",
      "contact_method": "CONTACT_METHOD_OTHER",
      "value": "string",
      "public": true,
      "validated_at": "2019-03-06T08:55:43.727Z"
    }
  ],
  "version_ids": {
    "brand_id": "string",
    "model_id": "string",
    "hardware_version": "string",
    "firmware_version": "string"
  },
  "gateway_server_address": "string",
  "auto_update": true,
  "update_channel": "string",
  "frequency_plan_id": "string",
  "antennas": [
    {
      "gain": 0,
      "location": {
        "latitude": 0,
        "longitude": 0,
        "altitude": 0,
        "accuracy": 0,
        "source": "SOURCE_UNKNOWN"
      },
      "attributes": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      }
    }
  ],
  "status_public": true,
  "location_public": true,
  "schedule_downlink_late": true,
  "enforce_duty_cycle": true,
  "downlink_path_constraint": "DOWNLINK_PATH_CONSTRAINT_NONE"
}

Чего не хватает?

  • Быстрое обсуждение того, что там должно быть (мы ничего не упустили)
  • Вайрфреймы и/или дизайн экрана
  • Выполнение

Как вы предлагаете это реализовать?
Дополняет нашу реализацию приложения.

Что вы можете сделать сами и в чем вам нужна помощь?
Я хотел бы продолжить с быстрым каркасом, как только у меня будет некоторая информация о требованиях.

console discuss in progress

Самый полезный комментарий

Я хотел бы сделать это простым; ID, EUI, имя, описание и частотный план.

Неплохо бы показать онлайн-индикатор, нажав на GS и проверив статистику соединения. Если 200 <= status < 300 — подключено, если 404 — нет, и все остальное — ошибка. Это вызов для каждой показанной записи, но это того стоит и дешево обслуживать из GS, поскольку он поступает из памяти.

Все 7 Комментарий

Я думаю, что в ближайшее время нам понадобится информация о том, что показывать на странице обзора шлюза.
копия @htdvisser @johanstokking

Я хотел бы сделать это простым; ID, EUI, имя, описание и частотный план.

Неплохо бы показать онлайн-индикатор, нажав на GS и проверив статистику соединения. Если 200 <= status < 300 — подключено, если 404 — нет, и все остальное — ошибка. Это вызов для каждой показанной записи, но это того стоит и дешево обслуживать из GS, поскольку он поступает из памяти.

из https://github.com/TheThingsNetwork/lorawan-stack/issues/26#issue -404416151

отображать статистику соединений для каждого шлюза (если gateway_server_address совпадает с конфигурацией Gateway Server API текущей консоли)

и

Неплохо бы показать онлайн-индикатор, нажав на GS и проверив статистику соединения. Если 200 <= status < 300 — подключено, если 404 — нет, и все остальное — ошибка.

Мы должны договориться о том, что мы показываем пользователю.

позволять
gtw_gs_address — адрес сервера шлюза, настроенный для шлюза.
console_gs_address — адрес шлюзового сервера текущего кластера, переданный в консоль.

  1. Если больше или равно 200 и меньше 300, то это connected
  2. если 404
    2.1 если gtw_gs_address или console_gs_address == empty -> статус unknown . это может произойти, если адрес сервера шлюза отсутствует в текущем кластере или адрес не был добавлен при создании шлюза, или если и то, и другое.
    2.2 если gtw_gs_address == console_gs_address -> статус disconnected
    2.3 если gtw_gs_address != console_gs_address -> шлюз is not managed by this console
  3. все остальное -> состояние шлюза unknown , на странице обзора шлюза отображается ошибка

Пользовательский интерфейс:
connected (1)
Screenshot 2019-05-06 at 11 46 17

unknown (2.1)
Screenshot 2019-05-06 at 11 46 52

disconnected (2.2)
Screenshot 2019-05-06 at 11 44 50

not this console (2.3)
Screenshot 2019-05-06 at 11 53 11

@johanstokking @htdvisser @kschiffer

Я бы использовал другую логику для индикатора подключения. Он должен начинаться с адреса сервера-шлюза, а не с запроса к GS (ибо нет смысла вызывать GS, который, как мы уже знаем, не обслуживает шлюз):

  • Если console.gateway_server_address пусто, функция полностью отключена.
  • Если gateway.gateway_server_address пусто, то либо:

    1. предположим console.gateway_server_address , но также покажем сообщение

    2. функция отключена для этого шлюза и показать сообщение

  • Если gateway.gateway_server_address не равно console.gateway_server_address , то функция отключена для этого шлюза и отображается сообщение

Я бы тоже немного изменил сообщение. Мы пытаемся сообщить пользователю, что выбранный шлюз не назначен серверу шлюза в кластере текущей консоли. По-прежнему можно читать/записывать содержимое шлюза, которое находится на сервере идентификации, а не на сервере шлюза (в основном все, кроме состояния подключения и трафика).

Я бы тоже немного изменил сообщение.

Каким будет сообщение?

Я согласен с @htdvisser по поводу заказа.

Итак, у нас есть пять состояний:

  • Если console.gateway_server_address равно gateway.gateway_server_address , нажмите GS:



      1. Подключено , если 200 <= статус < 300





      1. Не подключен , если 404





      1. Ошибка , если иначе



  • В противном случае



      1. Неизвестно Если gateway.gateway_server_address пусто; шлюз не настроен





      1. Другой кластер в противном случае (т. е. адреса отличаются)



Я бы тоже немного изменил сообщение.

Каким будет сообщение?

В любом случае, я не знаю, подходит ли верхняя часть для отображения уведомления. Чтобы иметь значимое сообщение, нам, вероятно, нужен более длинный текст, который не будет хорошо смотреться там. Я бы сказал, что Unknown или Other Cluster в качестве статуса достаточно, и мы должны заглянуть в другое место, чтобы сообщить пользователю подробности позже.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги