Referenzen: https://github.com/TheThingsNetwork/lorawan-stack/issues/2047
Von NS zurĂŒckgegebene Werte fĂŒr AufzĂ€hlungen im Feld mac_settings
sind inkonsistent. Einige fĂŒr einige NS geben Rohwerte zurĂŒck und fĂŒr andere wird eine Zeichenfolgendarstellung zurĂŒckgegeben.
mac_settings.rx1_delay.value
// request
{
"end_device":{
"mac_settings":{
"rx1_delay":{
"value":5 // or 'RX_DELAY_5'
}
}
},
"field_mask":{
"paths":[
"mac_settings.rx1_delay.value",
]
}
}
// response
{
...
"mac_settings":{
"rx1_delay":{
"value":5
},
}
}
// Note, regardless of what you send as the value for mac_settings.rx1_delay.value you always get the raw enum value.
mac_settings.ping_slot_periodicity.value
// request
{
"end_device":{
"mac_settings":{
"ping_slot_periodicity":{
"value": 1 // or 'PING_EVERY_2S'
}
}
},
"field_mask":{
"paths":[
"mac_settings.ping_slot_periodicity.value"
]
}
}
// response
{
"mac_settings":{
"ping_slot_periodicity":{
"value":"PING_EVERY_2S"
}
}
}
// Again, regardless of what you send you always get the string representation of the value.
Inkonsistente Werte fĂŒr mac_settings
Enum-Felder
Alle Werte sollten im gleichen Format (raw/string) zurĂŒckgegeben werden
v3.7.0-rc2
Ich denke, zuerst mĂŒssen wir uns auf das Format einigen. Dann gilt es, https://github.com/TheThingsNetwork/lorawan-stack/blob/master/api/lorawan.proto und https://github.com/TheThingsNetwork/lorawan-stack/blob/master/pkg anzupassen
Ja, aber ich brauche Input von @rvolosatovs @johanstokking @htdvisser
Welche Eingaben sind von uns erforderlich ( @rvolosatovs @johanstokking @htdvisser)? Fehlt diesem Problem das Label discussion
?
FTR, ich denke, es hĂ€ngt davon ab, ĂŒber welche Felder wir sprechen, aber fĂŒr LoRaWAN-spezifische MAC-Sachen sollten wir meiner Meinung nach nur die Nummer verwenden, da dies mit der Spezifikation ĂŒbereinstimmt (Ping-Slot-PeriodizitĂ€t von PING_EVERY_2S
ist es nicht in der Spezifikation definiert, jedoch ist die von 1
)
Dies können wir leider nicht einfach Ă€ndern, da dies gegen unsere API-KompatibilitĂ€tsverpflichtung verstoĂen wĂŒrde, also ist dies definitiv nichts fĂŒr MĂ€rz.
Es gibt derzeit tatsÀchlich mehrere Möglichkeiten, eine AufzÀhlung zu rendern. Beispielsweise kann MACVersion
als "MAC_V1_0_2"
, 3
(beide jsonpb-konform) oder als "1.0.2"
(mit TTN-Stringer, nicht konform) gerendert werden. In der Vergangenheit haben wir den Fehler gemacht, beim Rendern von JSON das dritte ( "1.0.2"
) zu verwenden. Wir hÀtten das nicht tun sollen, aber wir können das nicht mehr Àndern, ohne unsere API zu beschÀdigen.
Um so kompatibel wie möglich zu sein, akzeptieren wir alle Formulare in Anfragenachrichten, aber was wir zurĂŒcksenden, kann nicht mehr einfach geĂ€ndert werden.
In Zukunft (mit goproto v2 API) könnten wir vielleicht UnterstĂŒtzung fĂŒr eine Erweiterung im Accept
-Header hinzufĂŒgen, Ă€hnlich wie Github dies tut. Diese Erweiterung könnte dann verwendet werden, um dem Server mitzuteilen, wie AufzĂ€hlungen (und beispielsweise Nullfelder) gerendert werden sollen.
geschlossen, da wir das nicht beheben werden
Ich denke nicht, dass wir dies sofort als Wontfix abtun sollten. Lassen Sie es uns im RĂŒckstand behalten und sehen, ob wir es in Zukunft beheben können.
Super fĂŒr V4
Hilfreichster Kommentar
Super fĂŒr V4