设备 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 中的所有字段作为字段添加到网络层配置。 这些字段应该始终是可配置的,即在创建和更新时。
使用来自 proto 的注释进行描述。
@bafonins会处理它
我主要完成了 MAC 设置配置的高优先级字段:
截图
血压:
B类:
OTA:
但是,为了添加所有这些并允许用户注册,例如,通过控制台注册 The Things Uno,缺少mac_state.factory_preset_frequencies
字段。 我不确定这在 UI 中应该如何表示,目前我有这些想法:
IMO,这样的字段使选择频率变得非常容易。 此外,我们可以根据终端设备的frequency_plan_id
向用户呈现频率。 但是,正如@rvolosatovs提到的,输入可以具有任意值,并且不一定依赖于终端设备的频率计划。
此外,对于这种方法,最好有一个 RPC 来获取每个频段的预设频率。
这种方法更灵活,但是用户设置字段需要更多时间,需要输入频率。
基本上是1和2的组合。
@rvolosatovs @johanstokking
我认为列表 (2) 是最清晰的,因为它显示了顺序。 而且顺序很重要。
频率确实可以是任何东西,但通过现有的频率计划获取它们会非常有帮助。
添加compat/api
因为我们可能需要一个 NS rpc 来获取频率计划。
我认为列表 (2) 是最清晰的,因为它显示了顺序。 而且顺序很重要。
选择组件 (1) 和 (2) 都保留顺序。
频率确实可以是任何东西,
使用 (3) 也可以添加任意频率值
我认为解决方案 (2) 也是最干净的,而 (3) 对于少量频率看起来更好,具有多个(例如 4 个或更多)将看起来混乱且难以跟踪。
如果我们可以在每个文本框(来自提议的频率计划 RPC)中为 (2) 提供频率建议,那就太好了,就像您在 (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中添加了所有高优先级字段和一些中等优先级字段