๐ 1. BLE Packet
BLE์ ํจํท ํ์ ์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- Advertising channl PDUs : ๊ธฐ๊ธฐ ๊ฐ์ง ๋ฐ ๋ธ๋ก๋์บ์คํ
- Data channel PDUs : ๋ฐ์ดํฐ ์ ์ก์ฉ
โ์ค๋ด ์ธก์์์๋ ๋ฐ์ดํฐ ์ ์ก์ด ๋ฐ๋ก ํ์ ์์ผ๋ฏ๋ก Advertising channel PDUs์ ๋ํด์๋ง ์ธ๊ธํ๋ค.
โ
Packet types์ ์๋ ํ ์ด๋ธ๊ณผ ๊ฐ๋ค.
๋ณดํต ๋น์ฝ์ ํ์ ์ ADV_IND๊ฐ ์ผ๋ฐ์ ์ด๋ค. ํน์ ์ค์ ์ฅ์น๋ฅผ ํน์ ํ์ง ์๊ณ ๋ชจ๋ ์ฃผ๋ณ ๊ธฐ๊ธฐ์ ์ฐ๊ฒฐํ ์ ์๋ค.
Payload๋ ์ต๋ 37๋ฐ์ดํธ ์ค์์ 6๋ฐ์ดํธ๋ Advertisement Address, ๋๋จธ์ง 0 ~ 31๋ฐ์ดํธ๋ Advertisement Data์ด๋ค.
BLE ๋น์ฝ์๋ ๊ฐ ์ ์กฐ์ฌ์ ๋ฐ๋ผ ๋ค์ํ ํจํท ํฌ๋งท์ ๊ฐ์ง๋ค. ๊ทธ์ค ๊ฐ์ฅ ์ ๋ช ํ ๊ฒ์ด ์ ํ์ iBeacon, ๊ตฌ๊ธ์ EddyStone์ด๋ค.
์ด ๊ธ์ iBeacon์ ํจํท์ ๋ํด ์ด์ผ๊ธฐํ๋ค.
๐ 2. iBeacon - Apple
iBeacon ๋น์ฝ packet format (๋ชจ๋ BLE ๋น์ฝ์ด ์ ํจํท ํฌ๋งท์ ๋ฐ๋ผ๊ฐ์ง ์๋๋ค.)
iBeacon์ ํจํท์์๋ ๋ค์ํ ๊ฐ์ ์ ์ ์๋ค.
๋์ฌ๊ฒจ๋ด์ผ ํ๋ ๊ฒ์ Manufacturer data์ TX power์ด๋ค. ํ๋๊ทธ, ๋ฐ์ดํฐ ๊ธธ์ด๋ฅผ ์ ์ธํ๊ณ ๋๋ถ๋ถ์ ๋น์ฝ์ ๊ณ ์ ์ฃผ์๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค. (์ ์กฐ์ฌ, ๊ธฐ๊ธฐ ๋ฒํธ ๋ฑ๋ฑ)
Manufacturer data๋ ๊ฐ๋ฐ์๋ค์ด ์์๋ก ๋ฃ์ ์ ์๋ ํจํท ๊ณต๊ฐ์ด๋ค. iBeacon์ด ์๋ ์์ ๋ง์ BLE ๋น์ฝ์ ๋ง๋ค์ด๋ ๋์ง๋ง, ๋๋ RSSI๋ง ํ์ํ๋ฏ๋ก ๊ธฐ์กด์ ๋น์ฝ์ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ TX Power๋ ๋น์ฝ์ ์ก์ ์ธ๊ธฐ์ด๋ค. ์ด๋ ์ค๋ด ์ธก์ ๋ถ์์ ์์ด ์ค์ํ ํ๋ผ๋ฏธํฐ๊ฐ ๋ ์ ์๋ค.
์ด ์ ์ฝ๋์์๋ ๊ธฐ๊ธฐ ID, Mac address, RSSI ์ ๋๋ง ๋ณผ ์ ์์๋ค๋ฉด ์ด ๋ฒ ์ฝ๋๋ Payload์์ manufacturer data, UUID, TX Power๋ฅผ ํ์ธํ ์ ์๋ค.
ํ๋ฌํฐ๋ฅผ ๊ณต๋ถํ ์ง ์ผ์ฃผ์ผ์ด ๋์ด๊ฐ๋๋ฐ, ์ฌ๋ฌ ๊ฐ์ง ์ ๋ก์ฌํญ์ด ์์๋ค. ํจํท ๊ตฌ์กฐ๋ฅผ C์ Struct ๊ตฌ์กฐ์ ๊ฐ์ด ๋ง๋ค๊ณ ์ถ์๋๋ฐ, Dart์์๋ struct์ด ์๋ค๊ณ ํ๋ค. ๊ทธ๋ฅ class๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ํ๋๋ฐ, ๊ทธ๋ฅ ๋ฐฐ์ด ์ ์ธํด์ ๋ฌด์ํ๊ฒ ์ ๊ทผํ๋ค. ๋๊ฐ ์ด ๊ธ์ ๋ณด๊ณ ์กฐ์ธํด์ฃผ๋ฉด ์ข๊ฒ ๋ค.
์๋กญ๊ฒ ์ถ๊ฐํ ๊ฒ์ provider์ด๋ค. flutter์์ ๊ด๋ฆฌ ์ฉ์ด์ฑ์ ์ํด ์ ์ญ ๊ณต๊ฐ์ ํ๋ ๋ง๋ค์ด ์ค ๊ฒ์ด๋ค.