La couche MAC du périphérique doit être configurable à partir de la console.
Remplace https://github.com/TheThingsNetwork/lorawan-stack/issues/1378
CLI comme seul moyen de configurer la couche MAC du périphérique
Prise en charge de la configuration de tous les champs MACSettings
.
Tous les dispositifs
rx2_data_rate_index
rx2_frequency
factory_preset_frequencies
Spécifique à la classe A (aka, tous les appareils non multicast)
rx1_delay
rx1_data_rate_offset
resets_f_cnt
Spécifique à la classe B
ping_slot_periodicity
Spécifique à la classe A (aka, tous les appareils non multicast)
max_duty_cycle
supports_32_bit_f_cnt
use_adr
status_time_periodicity
status_count_periodicity
Spécifique à la classe B
ping_slot_data_rate_index
ping_slot_frequency
beacon_frequency
Spécifique à la classe A (aka, tous les appareils 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
Spécifique à la classe B
class_b_timeout
desired_ping_slot_data_rate_index
desired_ping_slot_frequency
desired_beacon_frequency
Spécifique à la classe C
class_c_timeout
REMARQUE : Certains d'entre eux peuvent déjà être configurables (par exemple, des éléments FCnt), veuillez mettre à jour les cases à cocher en conséquence et vérifier que ces paramètres sont placés aux bons endroits (c'est-à-dire qu'ils ne sont pas disponibles pour les appareils de multidiffusion)
Je pense que les paramètres spécifiques aux classes B et C devraient être disponibles pour tous les appareils, même pour les appareils pour lesquels le SupportsClass{B,C}
est false
. De cette façon, les utilisateurs peuvent désactiver/activer (temporairement) le fonctionnement en classe B/C chaque fois que nécessaire et conserver les paramètres spécifiques.
Les paramètres spécifiques à la classe A ne devraient être disponibles que pour les appareils non multicast.
Ajoutez tous les champs de MACSettings
https://github.com/TheThingsNetwork/lorawan-stack/blob/74c9da9a9e07a31d7103eabcd3440f9c80c24ea1/api/end_device.proto#L190 -L284 en tant que champs à la configuration de la couche réseau. Ces champs doivent être configurables à tout moment, c'est-à-dire à la fois lors de la création et de la mise à jour.
Utilisez les commentaires du proto pour la description.
@bafonins s'en chargera
Je suis surtout fait avec les champs de haute priorité pour la configuration des paramètres MAC:
Captures d'écran
ABP :
classe B :
OTAA :
Cependant, afin de tous les ajouter et de permettre aux utilisateurs de s'inscrire, par exemple, The Things Uno via la console, le champ mac_state.factory_preset_frequencies
est manquant. Je ne sais pas exactement comment cela devrait être représenté dans l'interface utilisateur, j'ai actuellement ces idées :
OMI, un tel champ rend la sélection des fréquences très facile. De plus, nous pouvons présenter à l'utilisateur des fréquences basées sur le frequency_plan_id
pour l'appareil final. Cependant, comme @rvolosatovs l'a mentionné, les entrées peuvent avoir des valeurs arbitraires et ne dépendent pas nécessairement du plan de fréquence de l'appareil final.
De plus, pour cette approche, il serait formidable d'avoir un RPC pour récupérer des préréglages de fréquences par bande.
Cette approche est plus souple, cependant, elle prend plus de temps à l'utilisateur pour paramétrer le champ, nécessite de taper des fréquences.
Fondamentalement, une combinaison de 1 et 2.
@rvolosatovs @johanstokking
Je pense qu'avoir la liste (2) est le plus clair, car cela montre l'ordre. Et l'ordre est important.
Les fréquences peuvent en effet être n'importe quoi, mais il serait très utile de les récupérer via un plan de fréquences existant.
Ajout de compat/api
car nous pourrions avoir besoin d'un NS rpc pour obtenir le plan de fréquences.
Je pense qu'avoir la liste (2) est le plus clair, car cela montre l'ordre. Et l'ordre est important.
Les deux composants sélectionnés (1) et (2) préservent également l'ordre.
Les fréquences peuvent en effet être n'importe quoi,
Avec (3) des valeurs de fréquence arbitraires peuvent également être ajoutées
Je pense que la solution (2) est également la plus propre, tandis que (3) est plus agréable pour une petite quantité de fréquences, en avoir plusieurs (par exemple 4 ou plus) semblera encombrée et difficile à suivre.
Ce serait formidable si nous pouvions avoir des suggestions de fréquence pour (2) dans chaque zone de texte (à partir du plan de fréquences proposé RPC), donc un peu ce que vous voyez dans (3), mais par zone de texte
Plus ou moins terminé avec l'implémentation, mais je veux attendre que https://github.com/TheThingsNetwork/lorawan-stack/issues/2605 soit fusionné avant de faire un PR pour ajouter des tests pour l'assistant de périphérique (y compris la gestion des paramètres mac)
Quel est le statut ici ?
@johanstokking https://github.com/TheThingsNetwork/lorawan-stack/pull/3065 est prêt à être examiné. J'ai ajouté tous les champs de priorité élevée et certains champs de priorité moyenne.
Changement de jalon de ce problème pas de prochaine étape. Tous les champs de priorité élevée ainsi que certains champs de priorité moyenne ont été ajoutés dans https://github.com/TheThingsNetwork/lorawan-stack/pull/3065. J'y reviendrai plus tard si d'autres champs doivent être ajoutés à la console.