3.5. BLE 연결 과정
Last updated
Last updated
BLE 연결 과정은 그림과 같은 순서로 진행된다.
위 연결과정에 대한 설명은 다음과 같다:
Advertising: Peripheral 디바이스가 advertising 동작을 수행한다. 이 단계에서 개발자는 Peripheral 디바이스에서 advertise 패킷을 구성하고 브로드캐스트하도록 프로그래밍해야 한다. 패킷에는 디바이스 이름, UUID, 제조사 데이터 등이 포함될 수 있다.
Scanning: Central 디바이스가 BLE 연결을 위해 주변의 Peripheral 디바이스를 스캔한다. 개발자는 Central 디바이스에서 스캔 파라미터(스캔 간격, 윈도우 등)를 설정하고 스캔 결과를 처리하는 콜백 함수를 구현해야 한다.
Connecting: Central이 선택한 Peripheral로 연결 요청을 보낸다. 개발자는 Central 측에서 연결 파라미터를 설정하고 연결 요청을 보내는 함수를 호출한다. Peripheral 측에서는 연결 요청을 수락하는 로직을 구현해야 한다.
Request Service: 연결이 성립되면 Central이 Peripheral의 서비스 목록을 요청한다. 개발자는 Central 측에서 서비스 디스커버리 프로세스를 시작하는 함수를 호출한다.
Receive Service Data: Peripheral이 자신의 서비스 정보를 Central에게 전송한다. 개발자는 Peripheral 측에서 서비스 정보를 구성하고, Central 측에서는 수신한 서비스 정보를 파싱하고 저장하는 로직을 구현해야 한다.
Request Characteristic: Central이 특정 서비스의 Characteristic 정보를 요청한다. 개발자는 Central 측에서 Characteristic 디스커버리 프로세스를 시작하는 함수를 호출한다.
Receive Characteristic Data: Peripheral이 요청받은 Characteristic 정보를 Central에게 전송한다. 개발자는 Peripheral 측에서 Characteristic 정보를 구성하고, Central 측에서는 수신한 Characteristic 정보를 파싱하고 저장하는 로직을 구현해야 한다.
Request: Central이 특정 Characteristic에 대해 read, write, notify, indicate 등의 작업을 요청한다. 개발자는 Central 측에서 원하는 작업을 수행하는 함수를 호출하고, Peripheral 측에서는 해당 요청을 처리하는 콜백 함수를 구현해야 한다.
각 단계에서 개발자는 BLE 스택이 제공하는 API를 사용하여 필요한 기능을 구현하고, 에러 처리 및 타임아웃 관리 등을 고려해야 한다.