Lorawan-stack: Конфигурация MAC-уровня устройства в консоли

Созданный на 25 февр. 2020  ·  9Комментарии  ·  Источник: TheThingsNetwork/lorawan-stack

Резюме

Уровень MAC устройства должен настраиваться с консоли.
Заменяет https://github.com/TheThingsNetwork/lorawan-stack/issues/1378

Почему нам это надо?

  • Создание/обновление устройства класса B из консоли
  • Создание/обновление конечных устройств с использованием нестандартных настроек MAC-уровня (например, The Things Uno)

Что уже есть? Что ты видишь сейчас?

CLI как единственное средство настройки MAC-уровня устройства

Чего не хватает? Что вы хотите увидеть?

Поддержка настройки всех полей MACSettings .

Список приоритетов полей
Высокий
  • Все устройства

    • [х] rx2_data_rate_index
    • [х] rx2_frequency
    • [х] factory_preset_frequencies
  • Специфичный для класса A (также известный как все устройства без многоадресной рассылки)

    • [х] rx1_delay
    • [х] rx1_data_rate_offset
    • [х] resets_f_cnt
  • Класс B

    • [х] ping_slot_periodicity
Середина
  • Специфичный для класса A (также известный как все устройства без многоадресной рассылки)

    • [ ] max_duty_cycle
    • [х] supports_32_bit_f_cnt
    • [ ] use_adr
    • [ ] status_time_periodicity
    • [ ] status_count_periodicity
  • Класс B

    • [ ] ping_slot_data_rate_index
    • [х] ping_slot_frequency
    • [ ] beacon_frequency
Низкий
  • Специфичный для класса A (также известный как все устройства без многоадресной рассылки)

    • [ ] adr_margin
    • [ ] desired_rx1_delay
    • [ ] desired_rx1_data_rate_offset
    • [ ] desired_rx2_data_rate_index
    • [ ] desired_rx2_frequency
    • [ ] desired_max_duty_cycle
    • [ ] desired_adr_ack_limit_exponent
    • [ ] desired_adr_ack_delay_exponent
  • Класс B

    • Не многоадресный

      • [ ] class_b_timeout

      • [ ] desired_ping_slot_data_rate_index

      • [ ] desired_ping_slot_frequency

      • [ ] desired_beacon_frequency

  • Класс C

    • Не многоадресный

      • [ ] class_c_timeout

ПРИМЕЧАНИЕ. Некоторые из них уже могут быть настроены (например, элементы FCnt), пожалуйста, установите соответствующие флажки и убедитесь, что эти параметры расположены в правильных местах (т. е. они недоступны для многоадресных устройств).

Я считаю, что настройки класса B и C должны быть доступны для всех устройств, даже для устройств, для которых соответствующие SupportsClass{B,C} равны false . Таким образом, пользователи могут (временно) отключать/включать работу класса B/C, когда это необходимо, и сохранять определенные настройки.

Параметры класса A должны быть доступны только для устройств без многоадресной рассылки.

Как вы предлагаете это реализовать?

Добавьте все поля из MACSettings https://github.com/TheThingsNetwork/lorawan-stack/blob/74c9da9a9e07a31d7103eabcd3440f9c80c24ea1/api/end_device.proto#L190 -L284 в качестве полей в конфигурацию сетевого уровня. Эти поля должны быть доступны для настройки в любое время, т. е. как при создании, так и при обновлении.

Используйте комментарии из прототипа для описания.

Можете ли вы сделать это самостоятельно и отправить запрос на слияние?

@bafonins справится с этим

console compaapi documentation uweb

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

Я в основном закончил с полями с высоким приоритетом для конфигурации настроек MAC:


Скриншоты
АД:

Screenshot 2020-03-29 at 17 41 50

класс Б:

Screenshot 2020-03-29 at 17 44 00

ОТАА:
Screenshot 2020-03-29 at 18 11 58

Однако для того, чтобы добавить их все и позволить пользователям зарегистрировать, например, The Things Uno через Консоль, поле mac_state.factory_preset_frequencies отсутствует. Я не уверен, как именно это должно быть представлено в пользовательском интерфейсе, в настоящее время у меня есть следующие идеи:

  1. Как множественный выбор:
    Screenshot 2020-03-30 at 09 47 01

ИМО, такое поле делает выбор частот очень простым. Кроме того, мы можем представить пользователю частоты на основе frequency_plan_id для конечного устройства. Однако, как упомянул @rvolosatovs , входы могут иметь произвольные значения и не обязательно зависеть от частотного плана конечного устройства.

Кроме того, для этого подхода было бы здорово иметь RPC для получения предустановленных частот для каждого диапазона.

  1. В виде массива числовых входов (аналогично тому, как мы разрешаем добавлять заголовки для интеграции веб-перехватчиков):
    Screenshot 2020-03-30 at 11 06 13

Такой подход является более гибким, однако пользователю требуется больше времени на настройку поля, требует ввода частот.

  1. Как множественный выбор с опциями для создания новых меток:

freqqs

В общем, комбинация 1 и 2.

@rvolosatovs @johanstokking

Я думаю, что список (2) наиболее понятен, так как он показывает порядок. И порядок важен.

Частоты действительно могут быть любыми, но было бы очень полезно получить их через существующий частотный план.

Добавление compat/api потому что нам может понадобиться NS rpc для получения частотного плана.

Я думаю, что список (2) наиболее понятен, так как он показывает порядок. И порядок важен.

Оба выбранных компонента (1) и (2) также сохраняют порядок.

Частоты действительно могут быть любыми,

С (3) также могут быть добавлены произвольные значения частоты

Я думаю, что решение (2) также является самым чистым, в то время как (3) выглядит лучше для небольшого количества частот, наличие нескольких (например, 4 или более) будет выглядеть загроможденным и трудным для отслеживания.
Было бы здорово, если бы мы могли иметь предложения по частоте для (2) в каждом текстовом поле (из предлагаемого частотного плана RPC), примерно то, что вы видите в (3), но для каждого текстового поля.

Более или менее сделано с реализацией, но нужно дождаться слияния https://github.com/TheThingsNetwork/lorawan-stack/issues/2605 , прежде чем делать PR для добавления тестов для мастера устройства (включая обработку настроек Mac)

Какой тут статус?

@johanstokking https://github.com/TheThingsNetwork/lorawan-stack/pull/3065 готов к рассмотрению. Я добавил все поля с высоким и средним приоритетом.

Изменение вехи этой проблемы не будет дальше. Все поля с высоким приоритетом вместе с некоторыми полями со средним приоритетом были добавлены в https://github.com/TheThingsNetwork/lorawan-stack/pull/3065. Вернемся к этому позже, если какие-либо другие поля должны быть добавлены в консоль.

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

Смежные вопросы

htdvisser picture htdvisser  ·  4Комментарии

htdvisser picture htdvisser  ·  9Комментарии

ecities picture ecities  ·  5Комментарии

kschiffer picture kschiffer  ·  4Комментарии

kschiffer picture kschiffer  ·  7Комментарии