Уровень MAC устройства должен настраиваться с консоли.
Заменяет https://github.com/TheThingsNetwork/lorawan-stack/issues/1378
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 справится с этим
Я в основном закончил с полями с высоким приоритетом для конфигурации настроек MAC:
Скриншоты
АД:
класс Б:
ОТАА:
Однако для того, чтобы добавить их все и позволить пользователям зарегистрировать, например, The Things Uno через Консоль, поле mac_state.factory_preset_frequencies
отсутствует. Я не уверен, как именно это должно быть представлено в пользовательском интерфейсе, в настоящее время у меня есть следующие идеи:
ИМО, такое поле делает выбор частот очень простым. Кроме того, мы можем представить пользователю частоты на основе frequency_plan_id
для конечного устройства. Однако, как упомянул @rvolosatovs , входы могут иметь произвольные значения и не обязательно зависеть от частотного плана конечного устройства.
Кроме того, для этого подхода было бы здорово иметь RPC для получения предустановленных частот для каждого диапазона.
Такой подход является более гибким, однако пользователю требуется больше времени на настройку поля, требует ввода частот.
В общем, комбинация 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. Вернемся к этому позже, если какие-либо другие поля должны быть добавлены в консоль.