La capa MAC del dispositivo debe ser configurable desde la consola.
Reemplaza https://github.com/TheThingsNetwork/lorawan-stack/issues/1378
CLI como el único medio para configurar la capa MAC del dispositivo
Soporte para configurar todos los campos MACSettings
.
Todos los dispositivos
rx2_data_rate_index
rx2_frequency
factory_preset_frequencies
Específico de clase A (también conocido como todos los dispositivos que no son de multidifusión)
rx1_delay
rx1_data_rate_offset
resets_f_cnt
Específico de clase B
ping_slot_periodicity
Específico de clase A (también conocido como todos los dispositivos que no son de multidifusión)
max_duty_cycle
supports_32_bit_f_cnt
use_adr
status_time_periodicity
status_count_periodicity
Específico de clase B
ping_slot_data_rate_index
ping_slot_frequency
beacon_frequency
Específico de clase A (también conocido como todos los dispositivos que no son de multidifusión)
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
Específico de clase B
class_b_timeout
desired_ping_slot_data_rate_index
desired_ping_slot_frequency
desired_beacon_frequency
Específico de clase C
class_c_timeout
NOTA: Es posible que algunos de estos ya sean configurables (por ejemplo, cosas de FCnt), actualice las casillas de verificación en consecuencia y verifique que estas configuraciones estén en los lugares correctos (es decir, no está disponible para dispositivos de multidifusión)
Creo que la configuración específica de clase B y C debería estar disponible para todos los dispositivos, incluso para los dispositivos para los cuales SupportsClass{B,C}
respectivos son false
. De esta manera, los usuarios pueden (temporalmente) deshabilitar/habilitar la operación de clase B/C cuando sea necesario y mantener la configuración específica.
La configuración específica de Clase A solo debe estar disponible para dispositivos que no sean de multidifusión.
Agregue todos los campos desde MACSettings
https://github.com/TheThingsNetwork/lorawan-stack/blob/74c9da9a9e07a31d7103eabcd3440f9c80c24ea1/api/end_device.proto#L190 -L284 como campos para la configuración de la capa de red. Estos campos deben ser configurables en todo momento, es decir, tanto en la creación como en la actualización.
Use comentarios del prototipo para la descripción.
@bafonins se encargará
Casi he terminado con los campos de alta prioridad para la configuración de configuración de MAC:
capturas de pantalla
PAA:
clase B:
OTAA:
Sin embargo, para agregarlos a todos y permitir que los usuarios registren, por ejemplo, The Things Uno a través de la Consola, falta el campo mac_state.factory_preset_frequencies
. No estoy seguro de cómo se debe representar exactamente esto en la interfaz de usuario, actualmente tengo estas ideas:
En mi opinión, dicho campo hace que la selección de frecuencias sea muy fácil. Además, podemos presentarle al usuario frecuencias basadas en frequency_plan_id
para el dispositivo final. Sin embargo, como mencionó @rvolosatovs, las entradas pueden tener valores arbitrarios y no necesariamente dependen del plan de frecuencia del dispositivo final.
Además, para este enfoque, sería genial tener un RPC para buscar preajustes de frecuencias por banda.
Este enfoque es más flexible, sin embargo, el usuario necesita más tiempo para configurar el campo y requiere frecuencias de escritura.
Básicamente, una combinación de 1 y 2.
@rvolosatovs @johanstokking
Creo que tener la lista (2) es más claro, ya que muestra el orden. Y el orden es importante.
De hecho, las frecuencias pueden ser cualquier cosa, pero sería muy útil obtenerlas a través de un plan de frecuencias existente.
Agregar compat/api
porque es posible que necesitemos un NS rpc para obtener el plan de frecuencia.
Creo que tener la lista (2) es más claro, ya que muestra el orden. Y el orden es importante.
Ambos componentes selectos (1) y (2) también conservan el orden.
De hecho, las frecuencias pueden ser cualquier cosa,
Con (3) también se pueden agregar valores de frecuencia arbitrarios
Creo que la solución (2) también es la más limpia, mientras que (3) se ve mejor para una pequeña cantidad de frecuencias, tener múltiples (por ejemplo, 4 o más) se verá desordenado y difícil de seguir.
Sería genial si pudiéramos tener sugerencias de frecuencia para (2) en cada cuadro de texto (del plan de frecuencia propuesto RPC), algo así como lo que ve en (3), pero por cuadro de texto
Más o menos hecho con la implementación, pero quiero esperar a que https://github.com/TheThingsNetwork/lorawan-stack/issues/2605 se fusione antes de hacer un PR para agregar pruebas para el asistente del dispositivo (incluido el manejo de la configuración de mac)
¿Cuál es el estado aquí?
@johanstokking https://github.com/TheThingsNetwork/lorawan-stack/pull/3065 está listo para su revisión. Agregué todos los campos de prioridad alta y algunos de prioridad media.
Cambiando el hito de este problema no hay siguiente. Todos los campos de prioridad alta junto con algunos campos de prioridad media se agregaron en https://github.com/TheThingsNetwork/lorawan-stack/pull/3065. Volveremos a esto más adelante si se deben agregar otros campos a la consola.