์ฅ์น MAC ๊ณ์ธต์ ์ฝ์์์ ๊ตฌ์ฑํ ์ ์์ด์ผ ํฉ๋๋ค.
https://github.com/TheThingsNetwork/lorawan-stack/issues/1378 ๋์ฒด
์ฅ์น MAC ๊ณ์ธต์ ๊ตฌ์ฑํ๋ ์ ์ผํ ์๋จ์ธ CLI
๋ชจ๋ MACSettings
ํ๋ ๊ตฌ์ฑ์ ์ง์ํฉ๋๋ค.
๋ชจ๋ ๊ธฐ๊ธฐ
rx2_data_rate_index
rx2_frequency
factory_preset_frequencies
ํด๋์ค A ํน์ (๋ชจ๋ ๋น๋ฉํฐ์บ์คํธ ์ฅ์น๋ผ๊ณ ๋ ํจ)
rx1_delay
rx1_data_rate_offset
resets_f_cnt
ํด๋์ค B ์ ์ฉ
ping_slot_periodicity
ํด๋์ค A ํน์ (๋ชจ๋ ๋น๋ฉํฐ์บ์คํธ ์ฅ์น๋ผ๊ณ ๋ ํจ)
max_duty_cycle
supports_32_bit_f_cnt
use_adr
status_time_periodicity
status_count_periodicity
ํด๋์ค B ์ ์ฉ
ping_slot_data_rate_index
ping_slot_frequency
beacon_frequency
ํด๋์ค A ํน์ (๋ชจ๋ ๋น๋ฉํฐ์บ์คํธ ์ฅ์น๋ผ๊ณ ๋ ํจ)
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
ํด๋์ค B ์ ์ฉ
class_b_timeout
desired_ping_slot_data_rate_index
desired_ping_slot_frequency
desired_beacon_frequency
ํด๋์ค C ์ ์ฉ
class_c_timeout
์ฐธ๊ณ : ์ด๋ค ์ค ์ผ๋ถ๋ ์ด๋ฏธ ๊ตฌ์ฑํ ์ ์์ต๋๋ค(์: FCnt ํญ๋ชฉ). ๊ทธ์ ๋ฐ๋ผ ํ์ธ๋์ ์ ๋ฐ์ดํธํ๊ณ ์ด๋ฌํ ์ค์ ์ด ์ฌ๋ฐ๋ฅธ ์์น์ ์๋์ง ํ์ธํ์ญ์์ค(์ฆ, ๋ฉํฐ์บ์คํธ ์ฅ์น์์๋ ์ฌ์ฉํ ์ ์์).
ํด๋์ค B ๋ฐ C ๊ด๋ จ ์ค์ ์ ๊ฐ๊ฐ์ SupportsClass{B,C}
๊ฐ false
์ฅ์น์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ์ฅ์น์์ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฐ ์์ผ๋ก ์ฌ์ฉ์๋ ํ์ํ ๋๋ง๋ค ํด๋์ค B/C ์์
์ (์ผ์์ ์ผ๋ก) ๋นํ์ฑํ/ํ์ฑํํ๊ณ ํน์ ์ค์ ์ ์ ์งํ ์ ์์ต๋๋ค.
ํด๋์ค A ๊ด๋ จ ์ค์ ์ ๋ฉํฐ์บ์คํธ๊ฐ ์๋ ์ฅ์น์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
MACSettings
https://github.com/TheThingsNetwork/lorawan-stack/blob/74c9da9a9e07a31d7103eabcd3440f9c80c24ea1/api/end_device.proto#L190 -L284์ ๋ชจ๋ ํ๋๋ฅผ ๋คํธ์ํฌ ๊ณ์ธต ๊ตฌ์ฑ์ ํ๋๋ก ์ถ๊ฐํฉ๋๋ค. ์ด๋ฌํ ํ๋๋ ์์ฑ ๋ฐ ์
๋ฐ์ดํธ ์ ๋ชจ๋ ํญ์ ๊ตฌ์ฑํ ์ ์์ด์ผ ํฉ๋๋ค.
์ค๋ช ์ ์ํด proto์ ์ฃผ์์ ์ฌ์ฉํ์ญ์์ค.
@bafonins ๊ฐ ์ฒ๋ฆฌํฉ๋๋ค.
MAC ์ค์ ๊ตฌ์ฑ์ ๋ํ ์ฐ์ ์์๊ฐ ๋์ ํ๋๋ ๋๋ถ๋ถ ์๋ฃ๋์์ต๋๋ค.
์คํฌ๋ฆฐ์ท
ABP:
ํด๋์ค B:
์คํ:
๊ทธ๋ฌ๋ ๋ชจ๋ ํญ๋ชฉ์ ์ถ๊ฐํ๊ณ ์ฌ์ฉ์๊ฐ ๋ฑ๋กํ ์ ์๋๋ก ํ๊ธฐ ์ํด ์๋ฅผ ๋ค์ด ์ฝ์์ ํตํด The Things Uno mac_state.factory_preset_frequencies
ํ๋๊ฐ ๋๋ฝ๋์์ต๋๋ค. UI์์ ์ด๊ฒ์ด ์ ํํ ์ด๋ป๊ฒ ํํ๋์ด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์์ด๋์ด๊ฐ ์์ต๋๋ค.
IMO, ์ด๋ฌํ ํ๋๋ ์ฃผํ์ ์ ํ์ ๋งค์ฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ๋ํ ์ต์ข
์ฅ์น์ ๋ํ frequency_plan_id
๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ๋น๋๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ @rvolosatovs๊ฐ ์ธ๊ธํ๋ฏ์ด ์
๋ ฅ์ ์์์ ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ ๋ฐ๋์ ์ต์ข
์ฅ์น์ ์ฃผํ์ ๊ณํ์ ์์กดํ ํ์๋ ์์ต๋๋ค.
๋ํ ์ด ์ ๊ทผ ๋ฐฉ์์ ๊ฒฝ์ฐ ๋์ญ๋น ์ฃผํ์ ์ฌ์ ์ค์ ์ ๊ฐ์ ธ์ค๋ RPC๊ฐ ์์ผ๋ฉด ์ข์ต๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ๋ ์ ์ฐํ์ง๋ง ์ฌ์ฉ์๊ฐ ํ๋๋ฅผ ์ค์ ํ๋ ๋ฐ ๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ ์ ๋ ฅ ๋น๋๊ฐ ํ์ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก 1๊ณผ 2์ ์กฐํฉ์ ๋๋ค.
@rvolosatovs @johanstokking
๋๋ ๋ชฉ๋ก (2)๋ฅผ ๊ฐ๋ ๊ฒ์ด ์์๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋ช ํํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์๊ฐ ์ค์ํฉ๋๋ค.
์ฃผํ์๋ ์ค์ ๋ก ๋ฌด์์ด๋ ๋ ์ ์์ง๋ง ๊ธฐ์กด ์ฃผํ์ ๊ณํ์ ํตํด ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
compat/api
์ถ๊ฐํ๋ฉด ์ฃผํ์ ๊ณํ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด NS rpc๊ฐ ํ์ํ ์ ์์ต๋๋ค.
๋๋ ๋ชฉ๋ก (2)๋ฅผ ๊ฐ๋ ๊ฒ์ด ์์๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋ช ํํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์๊ฐ ์ค์ํฉ๋๋ค.
์ ํ ๊ตฌ์ฑ ์์ (1) ๋ฐ (2) ๋ชจ๋ ์์๋ ์ ์งํฉ๋๋ค.
์ฃผํ์๋ ์ค์ ๋ก ๋ฌด์์ด๋ ๋ ์ ์์ต๋๋ค.
(3)์ผ๋ก ์์์ ์ฃผํ์ ๊ฐ๋ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋๋ ์๋ฃจ์
(2)๋ ๊ฐ์ฅ ๊นจ๋ํ๋ค๊ณ โโ์๊ฐํ์ง๋ง (3)์ ์ ์ ์์ ์ฃผํ์์ ๋ ์ข์ ๋ณด์ด๊ณ ์ฌ๋ฌ ๊ฐ(์: 4๊ฐ ์ด์)๊ฐ ์์ผ๋ฉด ์ด์์ ํด ๋ณด์ด๊ณ ์ถ์ ํ๊ธฐ ์ด๋ ค์ ๋ณด์
๋๋ค.
๊ฐ ํ
์คํธ ์์(์ ์๋ ๋น๋ ๊ณํ RPC์์)์ (2)์ ๋ํ ๋น๋ ์ ์์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ด๋ฏ๋ก (3)์์ ๋ณผ ์ ์์ง๋ง ํ
์คํธ ์์๋น
๊ตฌํ์ด ์ด๋ ์ ๋ ์๋ฃ๋์์ง๋ง ์ฅ์น ๋ง๋ฒ์ฌ์ ๋ํ ํ ์คํธ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด PR์ ์์ฑํ๊ธฐ ์ ์ https://github.com/TheThingsNetwork/lorawan-stack/issues/2605 ๊ฐ ๋ณํฉ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์ถ์ต๋๋ค(mac ์ค์ ์ฒ๋ฆฌ ํฌํจ)
์ฌ๊ธฐ ์ํ๋ ๋ฌด์์ ๋๊น?
@johanstokking https://github.com/TheThingsNetwork/lorawan-stack/pull/3065 ๋ฅผ ๊ฒํ ํ ์ค๋น๊ฐ ๋์์ต๋๋ค. ๋์ ๋ฐ ์ค๊ฐ ์ฐ์ ์์ ํ๋๋ฅผ ๋ชจ๋ ์ถ๊ฐํ์ต๋๋ค.
์ด ๋ฌธ์ ์ ์ด์ ํ๋ฅผ ๋ค์ ๋จ๊ณ๋ก ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ๋ชจ๋ ๋์ ์ฐ์ ์์ ํ๋์ ์ผ๋ถ ์ค๊ฐ ์ฐ์ ์์ ํ๋๊ฐ https://github.com/TheThingsNetwork/lorawan-stack/pull/3065 ์ ์ถ๊ฐ๋์์ต๋๋ค