Lorawan-stack: JSON μ‘λ‹΅μ˜ μΌκ΄€λ˜μ§€ μ•Šμ€ μ—΄κ±°ν˜• λ Œλ”λ§

에 λ§Œλ“  2020λ…„ 03μ›” 29일  Β·  5μ½”λ©˜νŠΈ  Β·  좜처: TheThingsNetwork/lorawan-stack

μš”μ•½

μ°Έμ‘°: https://github.com/TheThingsNetwork/lorawan-stack/issues/2047

mac_settings ν•„λ“œ λ‚΄μ˜ μ—΄κ±°ν˜•μ— λŒ€ν•΄ NSμ—μ„œ λ°˜ν™˜λœ 값이 μΌμΉ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 일뢀 NS의 경우 μ›μ‹œ 값을 λ°˜ν™˜ν•˜κ³  λ‹€λ₯Έ NS의 경우 λ¬Έμžμ—΄ ν‘œν˜„μ΄ λ°˜ν™˜λ©λ‹ˆλ‹€.

λ²ˆμ‹ 단계

  1. 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.
  1. 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.

μ§€κΈˆ 무엇을 λ³Ό 수 μžˆμŠ΅λ‹ˆκΉŒ?

mac_settings μ—΄κ±°ν˜• ν•„λ“œμ˜ 값이 μΌμΉ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λŒ€μ‹  무엇을 보고 μ‹ΆμŠ΅λ‹ˆκΉŒ?

λͺ¨λ“  값은 λ™μΌν•œ ν˜•μ‹(μ›μ‹œ/λ¬Έμžμ—΄)으둜 λ°˜ν™˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

ν™˜κ²½

v3.7.0-rc2

이λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μ–΄λ–»κ²Œ μ œμ•ˆν•©λ‹ˆκΉŒ?

λ¨Όμ € ν˜•μ‹μ— λ™μ˜ν•΄μ•Ό ν•  것 κ°™μŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ https://github.com/TheThingsNetwork/lorawan-stack/blob/master/api/lorawan.proto 및 https://github.com/TheThingsNetwork/lorawan-stack/blob/master/pkg λ₯Ό μ‘°μ •ν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

이 μž‘μ—…μ„ 직접 μˆ˜ν–‰ν•˜κ³  Pull Requestλ₯Ό μ œμΆœν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

예, ν•˜μ§€λ§Œ @rvolosatovs @johanstokking @htdvisser 의 μž…λ ₯이 ν•„μš”ν•©λ‹ˆλ‹€.

bummajor compaapi

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

V4용으둜 μ’‹μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  5 λŒ“κΈ€

우리( @rvolosatovs @johanstokking @htdvisser)μ—κ²Œ μ–΄λ–€ 정보가 ν•„μš”ν•©λ‹ˆκΉŒ? 이 λ¬Έμ œμ— discussion λ ˆμ΄λΈ”μ΄ λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

FTR, 그것은 μš°λ¦¬κ°€ λ§ν•˜λŠ” ν•„λ“œμ— 따라 λ‹€λ₯΄λ‹€κ³  μƒκ°ν•˜μ§€λ§Œ LoRaWAN νŠΉμ • MAC ν•­λͺ©μ˜ 경우 사양과 μΌμΉ˜ν•˜κΈ° λ•Œλ¬Έμ— 숫자만 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€( PING_EVERY_2S 의 Ping 슬둯 μ£ΌκΈ°λŠ” 사양에 μ •μ˜λ˜μ–΄ μžˆμ§€λ§Œ 1 쀑 ν•˜λ‚˜λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

μ΄λŠ” λΆˆν–‰νžˆλ„ API ν˜Έν™˜μ„± 약속을 μœ„λ°˜ν•˜λ―€λ‘œ λ³€κ²½ν•  수 μžˆλŠ” 사항이 μ•„λ‹ˆλ―€λ‘œ 3μ›”μ—λŠ” ν•΄λ‹Ήλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ μ—΄κ±°ν˜•μ„ λ Œλ”λ§ν•˜λŠ” λ°©λ²•μ—λŠ” μ—¬λŸ¬ 가지가 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, MACVersion λŠ” "MAC_V1_0_2" , 3 (λͺ¨λ‘ jsonpb ν˜Έν™˜) λ˜λŠ” "1.0.2" (TTN의 슀트링거 μ‚¬μš©, λΉ„μ€€μˆ˜)둜 λ Œλ”λ§λ  수 μžˆμŠ΅λ‹ˆλ‹€. κ³Όκ±°μ—λŠ” JSON을 λ Œλ”λ§ν•  λ•Œ μ„Έ 번째( "1.0.2" )λ₯Ό μ‚¬μš©ν•˜λŠ” μ‹€μˆ˜λ₯Ό μ €μ§ˆλ €μŠ΅λ‹ˆλ‹€. κ·Έλ ‡κ²Œ ν•΄μ„œλŠ” μ•ˆ λ˜μ—ˆμ§€λ§Œ APIλ₯Ό μ€‘λ‹¨ν•˜μ§€ μ•Šκ³ λŠ” 더 이상 λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•œ ν•œ ν˜Έν™˜λ˜λ„λ‘ μš”μ²­ λ©”μ‹œμ§€μ˜ λͺ¨λ“  ν˜•μ‹μ„ ν—ˆμš©ν•˜μ§€λ§Œ λ°˜ν™˜λ˜λŠ” λ‚΄μš©μ€ 더 이상 μ‰½κ²Œ λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

μ•žμœΌλ‘œ (goproto v2 APIλ₯Ό μ‚¬μš©ν•˜μ—¬) Githubμ—μ„œ μˆ˜ν–‰ν•˜λŠ” 방식과 μœ μ‚¬ν•˜κ²Œ Accept 헀더에 ν™•μž₯에 λŒ€ν•œ 지원을 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ 이 ν™•μž₯을 μ‚¬μš©ν•˜μ—¬ μ—΄κ±°ν˜•(예: 0 ν•„λ“œ)이 λ Œλ”λ§λ˜μ–΄μ•Ό ν•˜λŠ” 방법을 μ„œλ²„μ— μ•Œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.

μš°λ¦¬κ°€ 이것을 κ³ μΉ  수 μ—†κΈ° λ•Œλ¬Έμ— λ‹«ν˜”μŠ΅λ‹ˆλ‹€

λ‚˜λŠ” μš°λ¦¬κ°€ 이것을 곧잘λͺ»λœ 문제둜 μΉ˜λΆ€ν•΄μ„œλŠ” μ•ˆλœλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ°±λ‘œκ·Έμ— λ³΄κ΄€ν•˜κ³  λ‚˜μ€‘μ— μˆ˜μ •ν•  수 μžˆλŠ”μ§€ λ΄…μ‹œλ‹€.

V4용으둜 μ’‹μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰