BLE

이 모듈에는 BLE 호스트 통신을 위한 플랫폼 추상화가 포함됩니다.

요약

플랫폼은 블루투스 LE 4.2 이상을 구현해야 합니다.

Typedef

otBleRadioPacket typedef
BLE 패킷을 나타냅니다.

함수

otPlatBleDisable(otInstance *aInstance)
저전력 블루투스 무선 기능을 끕니다.
otPlatBleEnable(otInstance *aInstance)
저전력 블루투스 무선 기능을 켭니다.
otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval)
BLE 광고 절차를 시작합니다.
otPlatBleGapAdvStop(otInstance *aInstance)
BLE 광고 절차를 중지합니다.
otPlatBleGapDisconnect(otInstance *aInstance)
BLE 연결을 해제합니다.
otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId)
void
BLE 드라이버는 이 메서드를 호출하여 BLE 중앙 기기가 연결되었음을 OpenThread에 알립니다.
otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId)
void
BLE 드라이버는 이 메서드를 호출하여 BLE 중앙 기기가 연결 해제되었음을 OpenThread에 알립니다.
otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu)
읽기는 현재 ATT_MTU 값을 사용합니다.
otPlatBleGattOnMtuUpdate(otInstance *aInstance, uint16_t aMtu)
void
BLE 드라이버는 이 메서드를 호출하여 ATT_MTU가 업데이트되었음을 OpenThread에 알립니다.
otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
ATT 처리 값 표시를 전송합니다.
otPlatBleGattServerOnWriteRequest(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
void
BLE 드라이버는 이 메서드를 호출하여 ATT 쓰기 요청 패킷이 수신되었음을 OpenThread에 알립니다.

구조체

otBleRadioPacket

BLE 패킷을 나타냅니다.

Typedef

otBleRadioPacket

struct otBleRadioPacket otBleRadioPacket

BLE 패킷을 나타냅니다.

함수

otPlatBleDisable

otError otPlatBleDisable(
  otInstance *aInstance
)

저전력 블루투스 무선 기능을 끕니다.

사용 중지하면 BLE 스택이 이벤트 큐를 플러시하고 새 이벤트를 생성하지 않습니다. BLE 주변기기가 꺼져 있거나 저전력 절전 모드로 전환됩니다. 스택에서 사용하는 모든 동적 메모리는 해제되어야 하지만 정적 메모리는 예약된 상태로 유지될 수 있습니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
반환 값
OT_ERROR_NONE
사용 중지 상태로 전환되었습니다.
OT_ERROR_FAILED
BLE 라디오를 사용 중지할 수 없습니다.

otPlatBleEnable

otError otPlatBleEnable(
  otInstance *aInstance
)

저전력 블루투스 무선 기능을 켭니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
반환 값
OT_ERROR_NONE
사용 설정했습니다.
OT_ERROR_FAILED
BLE 라디오를 사용 설정할 수 없습니다.

otPlatBleGapAdvStart

otError otPlatBleGapAdvStart(
  otInstance *aInstance,
  uint16_t aInterval
)

BLE 광고 절차를 시작합니다.

BLE 기기는 필터가 적용되지 않은 방향성이 없는 광고를 사용해야 합니다. 모든 광고 채널 (37, 38, 39)에서 단일 BLE 광고 패킷을 전송해야 합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aInterval
OT_BLE_ADV_INTERVAL_UNIT 단위의 후속 광고 패킷 간 간격입니다. 컴파일 시간에 설정된 기본값의 경우 OT_BLE_ADV_INTERVAL_MIN 및 OT_BLE_ADV_INTERVAL_MAX 범위 또는 OT_BLE_ADV_INTERVAL_DEFAULT 내에 있어야 합니다.
반환 값
OT_ERROR_NONE
광고 절차가 시작되었습니다.
OT_ERROR_INVALID_STATE
BLE 기기의 상태가 잘못되었습니다.
OT_ERROR_INVALID_ARGS
잘못된 간격 값이 제공되었습니다.

otPlatBleGapAdvStop

otError otPlatBleGapAdvStop(
  otInstance *aInstance
)

BLE 광고 절차를 중지합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
반환 값
OT_ERROR_NONE
광고 절차가 중지되었습니다.
OT_ERROR_INVALID_STATE
BLE 기기의 상태가 잘못되었습니다.

otPlatBleGapDisconnect

otError otPlatBleGapDisconnect(
  otInstance *aInstance
)

BLE 연결을 해제합니다.

BLE 기기는 피어 BLE 기기에서 연결을 끊을 때 원격 사용자 종료 연결 (0x13) 이유 코드를 사용해야 합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
반환 값
OT_ERROR_NONE
연결 해제 절차가 시작되었습니다.
OT_ERROR_INVALID_STATE
BLE 기기의 상태가 잘못되었습니다.

otPlatBleGapOnConnected

void otPlatBleGapOnConnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

BLE 드라이버는 이 메서드를 호출하여 BLE 중앙 기기가 연결되었음을 OpenThread에 알립니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aConnectionId
개방형 연결의 식별자입니다.

otPlatBleGapOnDisconnected

void otPlatBleGapOnDisconnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

BLE 드라이버는 이 메서드를 호출하여 BLE 중앙 기기가 연결 해제되었음을 OpenThread에 알립니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aConnectionId
종료된 연결의 식별자입니다.

otPlatBleGattMtuGet

otError otPlatBleGattMtuGet(
  otInstance *aInstance,
  uint16_t *aMtu
)

읽기는 현재 ATT_MTU 값을 사용합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[out] aMtu
현재 ATT_MTU 값을 출력하기 위한 포인터입니다.
반환 값
OT_ERROR_NONE
ATT_MTU 값이 aMtu에 배치되었습니다.
OT_ERROR_FAILED
BLE 기기에서 ATT_MTU를 확인할 수 없습니다.

otPlatBleGattOnMtuUpdate

void otPlatBleGattOnMtuUpdate(
  otInstance *aInstance,
  uint16_t aMtu
)

BLE 드라이버는 이 메서드를 호출하여 ATT_MTU가 업데이트되었음을 OpenThread에 알립니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aMtu
업데이트된 ATT_MTU 값입니다.

otPlatBleGattServerIndicate

otError otPlatBleGattServerIndicate(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

ATT 처리 값 표시를 전송합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aHandle
표시할 속성의 핸들입니다.
[in] aPacket
패킷을 가리키는 포인터에는 표시할 값이 포함됩니다.
반환 값
OT_ERROR_NONE
ATT 처리 값 표시가 전송되었습니다.
OT_ERROR_INVALID_STATE
BLE 기기의 상태가 잘못되었습니다.
OT_ERROR_INVALID_ARGS
잘못된 핸들 값, 데이터 또는 데이터 길이가 입력되었습니다.
OT_ERROR_NO_BUFS
사용 가능한 내부 버퍼를 찾을 수 없습니다.

otPlatBleGattServerOnWriteRequest

void otPlatBleGattServerOnWriteRequest(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

BLE 드라이버는 이 메서드를 호출하여 ATT 쓰기 요청 패킷이 수신되었음을 OpenThread에 알립니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aHandle
작성할 속성의 핸들입니다.
[in] aPacket
패킷을 가리키는 포인터에는 속성에 쓸 값이 포함됩니다.

매크로

OT_BLE_ADV_INTERVAL_DEFAULT

 OT_BLE_ADV_INTERVAL_DEFAULT 100

광고 패킷의 기본 간격 (밀리초)입니다.

OT_BLE_ADV_INTERVAL_MAX

 OT_BLE_ADV_INTERVAL_MAX 0x4000

광고 패킷에 허용되는 최대 간격(OT_BLE_ADV_INTERVAL_UNIT 단위)(10.24초)입니다.

OT_BLE_ADV_INTERVAL_MIN

 OT_BLE_ADV_INTERVAL_MIN 0x0020

광고 패킷에 허용되는 최소 간격(OT_BLE_ADV_INTERVAL_UNIT 단위)(20밀리초)

OT_BLE_ADV_INTERVAL_UNIT

 OT_BLE_ADV_INTERVAL_UNIT OT_BLE_TIMESLOT_UNIT

간격 기간 (0.625ms)을 계산하는 데 사용되는 단위입니다.

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

허용되는 최대 ATT MTU 크기 (23 이상이어야 함)

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

BLE의 기본 전력 값입니다.

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

PHY 레이어의 시간 슬롯 지속 시간(마이크로초 단위(0.625ms))입니다.

자료

OpenThread API 참조 주제는 GitHub에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 알아보거나 문서에 참여하려면 리소스를 참고하세요.