Lorawan-stack: 控制台中的设备 MAC 层配置

创建于 2020-02-25  ·  9评论  ·  资料来源: TheThingsNetwork/lorawan-stack

概括

设备 MAC 层应该可以从控制台进行配置。
替换https://github.com/TheThingsNetwork/lorawan-stack/issues/1378

我们为什么需要这个?

  • 从控制台创建/更新 B 类设备
  • 使用非默认 MAC 层设置(例如 The Things Uno)创建/更新终端设备

什么已经存在? 你现在看到了什么?

CLI 作为配置设备 MAC 层的唯一手段

缺什么? 你要看什么?

支持配置所有MACSettings字段。

字段优先级列表
高的
  • 所有设备

    • [x] rx2_data_rate_index
    • [x] rx2_frequency
    • [x] factory_preset_frequencies
  • A 类特定(又名,所有非多播设备)

    • [x] rx1_delay
    • [x] rx1_data_rate_offset
    • [x] resets_f_cnt
  • B 类专用

    • [x] ping_slot_periodicity
中等的
  • A 类特定(又名,所有非多播设备)

    • [ ] max_duty_cycle
    • [x] supports_32_bit_f_cnt
    • [ ] use_adr
    • [ ] status_time_periodicity
    • [ ] status_count_periodicity
  • B 类专用

    • [ ] ping_slot_data_rate_index
    • [x] 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会处理它

console compaapi documentation uweb

所有9条评论

我主要完成了 MAC 设置配置的优先级字段:


截图
血压:

Screenshot 2020-03-29 at 17 41 50

B类:

Screenshot 2020-03-29 at 17 44 00

OTA:
Screenshot 2020-03-29 at 18 11 58

但是,为了添加所有这些并允许用户注册,例如,通过控制台注册 The Things Uno,缺少mac_state.factory_preset_frequencies字段。 我不确定这在 UI 中应该如何表示,目前我有这些想法:

  1. 作为多选:
    Screenshot 2020-03-30 at 09 47 01

IMO,这样的字段使选择频率变得非常容易。 此外,我们可以根据终端设备的frequency_plan_id向用户呈现频率。 但是,正如@rvolosatovs提到的,输入可以具有任意值,并且不一定依赖于终端设备的频率计划。

此外,对于这种方法,最好有一个 RPC 来获取每个频段的预设频率。

  1. 作为数字输入数组(类似于我们允许向 webhook 集成添加标头的方式):
    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 个或更多)将看起来混乱且难以跟踪。
如果我们可以在每个文本框(来自提议的频率计划 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中添加了所有高优先级字段和一些中等优先级字段

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

kschiffer picture kschiffer  ·  4评论

adriansmares picture adriansmares  ·  9评论

adriansmares picture adriansmares  ·  8评论

kschiffer picture kschiffer  ·  6评论

MatteMoveSRL picture MatteMoveSRL  ·  7评论