Lorawan-stack: Konfigurasi lapisan MAC perangkat di konsol

Dibuat pada 25 Feb 2020  ·  9Komentar  ·  Sumber: TheThingsNetwork/lorawan-stack

Ringkasan

Lapisan MAC perangkat harus dapat dikonfigurasi dari konsol.
Menggantikan https://github.com/TheThingsNetwork/lorawan-stack/issues/1378

Kenapa kita perlu ini?

  • Pembuatan/pembaruan perangkat Kelas B dari konsol
  • Pembuatan/pembaruan perangkat akhir menggunakan pengaturan lapisan MAC non-default (mis. The Things Uno)

Apa yang sudah ada? Apa yang kamu lihat sekarang?

CLI sebagai satu-satunya cara untuk mengonfigurasi lapisan MAC perangkat

Apa yang hilang? Apa yang ingin kau lihat?

Dukungan untuk mengonfigurasi semua bidang MACSettings .

Daftar prioritas bidang
Tinggi
  • Semua perangkat

    • [x] rx2_data_rate_index
    • [x] rx2_frequency
    • [x] factory_preset_frequencies
  • Kelas A-spesifik (alias, semua perangkat non-multicast)

    • [x] rx1_delay
    • [x] rx1_data_rate_offset
    • [x] resets_f_cnt
  • Khusus Kelas B

    • [x] ping_slot_periodicity
Sedang
  • Kelas A-spesifik (alias, semua perangkat non-multicast)

    • [ ] max_duty_cycle
    • [x] supports_32_bit_f_cnt
    • [ ] use_adr
    • [ ] status_time_periodicity
    • [ ] status_count_periodicity
  • Khusus Kelas B

    • [ ] ping_slot_data_rate_index
    • [x] ping_slot_frequency
    • [ ] beacon_frequency
Rendah
  • Kelas A-spesifik (alias, semua perangkat non-multicast)

    • [ ] 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
  • Khusus Kelas B

    • Non-multicast

      • [ ] class_b_timeout

      • [ ] desired_ping_slot_data_rate_index

      • [ ] desired_ping_slot_frequency

      • [ ] desired_beacon_frequency

  • Khusus Kelas C

    • Non-multicast

      • [ ] class_c_timeout

CATATAN: Beberapa di antaranya mungkin sudah dapat dikonfigurasi (mis. FCnt stuff), harap perbarui kotak centang yang sesuai dan periksa apakah pengaturan ini ditempatkan di tempat yang benar (yaitu tidak tersedia untuk perangkat multicast)

Saya percaya bahwa pengaturan khusus kelas B dan C harus tersedia untuk semua perangkat, bahkan untuk perangkat yang masing-masing SupportsClass{B,C} adalah false . Dengan cara ini pengguna dapat (sementara) menonaktifkan/mengaktifkan operasi kelas B/C kapan pun diperlukan dan mempertahankan pengaturan khusus.

Pengaturan khusus Kelas A seharusnya hanya tersedia untuk perangkat non-multicast.

Bagaimana Anda mengusulkan untuk menerapkan ini?

Tambahkan semua bidang dari MACSettings https://github.com/TheThingsNetwork/lorawan-stack/blob/74c9da9a9e07a31d7103eabcd3440f9c80c24ea1/api/end_device.proto#L190 -L284 sebagai bidang ke konfigurasi Lapisan Jaringan. Bidang-bidang ini harus dapat dikonfigurasi setiap saat, yaitu saat pembuatan dan pembaruan.

Gunakan komentar dari proto untuk deskripsi.

Bisakah Anda melakukannya sendiri dan mengajukan Permintaan Tarik?

@bafonins akan menanganinya

console compaapi documentation uweb

Semua 9 komentar

Saya sebagian besar selesai dengan bidang prioritas tinggi untuk konfigurasi Pengaturan MAC:


Tangkapan layar
AB:

Screenshot 2020-03-29 at 17 41 50

kelas B:

Screenshot 2020-03-29 at 17 44 00

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

Namun, untuk menambahkan semuanya dan memungkinkan pengguna untuk mendaftar, misalnya, The Things Uno melalui Konsol, bidang mac_state.factory_preset_frequencies tidak ada. Saya tidak yakin bagaimana tepatnya ini harus diwakili di UI, saat ini saya memiliki ide-ide ini:

  1. Sebagai multi-pilih:
    Screenshot 2020-03-30 at 09 47 01

IMO, bidang seperti itu membuat pemilihan frekuensi menjadi sangat mudah. Selain itu, kami dapat menampilkan frekuensi pengguna berdasarkan frequency_plan_id untuk perangkat akhir. Namun, seperti yang disebutkan @rvolosatovs bahwa input dapat memiliki nilai arbitrer dan tidak selalu bergantung pada rencana frekuensi perangkat akhir.

Selain itu, untuk pendekatan ini akan sangat bagus jika memiliki RPC untuk mengambil preset frekuensi per band.

  1. Sebagai array input angka (mirip dengan cara kami mengizinkan penambahan header ke integrasi webhook):
    Screenshot 2020-03-30 at 11 06 13

Pendekatan ini lebih fleksibel, namun membutuhkan lebih banyak waktu bagi pengguna untuk mengatur bidang, membutuhkan frekuensi pengetikan.

  1. Sebagai multi-pilih dengan opsi untuk membuat label baru:

freqqs

Pada dasarnya, kombinasi 1 dan 2.

@rvolosatovs @johanstokking

Saya pikir memiliki daftar (2) paling jelas, karena itu menunjukkan urutannya. Dan urutan itu penting.

Frekuensi memang bisa apa saja, tetapi akan sangat membantu untuk mengambilnya melalui rencana frekuensi yang ada.

Menambahkan compat/api karena kita mungkin memerlukan NS rpc untuk mendapatkan paket frekuensi.

Saya pikir memiliki daftar (2) paling jelas, karena itu menunjukkan urutannya. Dan urutan itu penting.

Keduanya memilih komponen (1) dan (2) mempertahankan urutannya juga.

Frekuensi memang bisa apa saja,

Dengan (3) nilai frekuensi arbitrer dapat ditambahkan juga

Saya pikir solusi (2) adalah yang terbersih juga, sementara (3) terlihat lebih bagus untuk jumlah frekuensi yang kecil, memiliki beberapa (misalnya 4 atau lebih) akan terlihat berantakan dan sulit untuk dilacak.
Akan sangat bagus jika kami dapat memiliki saran frekuensi untuk (2) di setiap kotak teks (dari RPC rencana frekuensi yang diusulkan), jadi seperti yang Anda lihat di (3), tetapi per kotak teks

Kurang lebih sudah selesai implementasinya, tapi mau nunggu https://github.com/TheThingsNetwork/lorawan-stack/issues/2605 digabung sebelum membuat PR untuk menambahkan tes untuk device wizard (termasuk penanganan pengaturan mac)

Apa statusnya di sini?

@johanstokking https://github.com/TheThingsNetwork/lorawan-stack/pull/3065 siap untuk ditinjau. Saya menambahkan semua bidang prioritas tinggi dan beberapa sedang.

Mengubah tonggak masalah ini tidak ada selanjutnya. Semua bidang prioritas tinggi bersama dengan beberapa bidang prioritas sedang ditambahkan di https://github.com/TheThingsNetwork/lorawan-stack/pull/3065. Akan kembali lagi nanti jika ada bidang lain yang harus ditambahkan ke konsol.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat