2013-07-15 5 views

답변

0

당신의 질문이 완전하게 명확하지 않기 때문에 나는 가능한 모든 프로토콜을 리눅스 용 블루투스 낮은 enery 스택에 액세스 할 수 있도록하려고 노력하고 있습니다. In UHID Driver "GATT는 사용자 공간에서 구현되는 Bluetooth 프로토콜입니다. 사용자 공간이 Bluetooth 장치에 대한 LE (저에너지) 연결을 열면 GATT는 장치는 GATT를 통해 HID 기능을 광고 할 수 있습니다. "
GATT이 링크에는 서비스가 올바르게 정의되어 있습니다. Low-energy devices에 액세스하려면 GATT 이외의 다른 프로토콜이있을 수 있습니다. HID Over GATT 구현은 이러한 방식으로 수행됩니다.

2

Bluez은 Linux 블루투스 용 스택입니다. 블루투스의 새로운 버전으로 코드가 변경되었지만 완전한 재 작성이나 그와 같은 획기적인 것은 아닙니다. Bluetooth의 최신 버전은 일반적으로 저전력을 제외하고는 기존 프로토콜의 확장입니다. 저에너지는 Linux의 커널 레벨에서 완벽하게 지원되지만 LE와의 높은 수준의 상호 작용을위한 편의 라이브러리는 많지 않습니다.

LE와 Bluez의 불완전 성으로 인해 LE로 기능을 구현하기 위해 커널 코드와 직접 상호 작용해야했습니다. 또한 Bluez 5.x에서 지원하지 않는 이전 커널을 사용해야하고 Bluez 4.x를 사용해야했습니다.

1

이미 Tim과 jhonnash가 귀하의 질문에 포괄적 인 정보를 제공해 왔습니다. 그러나 Android Mobile 관점에서 한 가지 더 많은 정보를 추가하고 싶습니다.

새로운 Android 버전은 블루투스를 블루투스 스택으로 사용합니다. 이것은 Bluez와는 아주 다른 것입니다.

Bluez는 사용자 공간과 커널 공간 모두에 기능이 분산되어 있습니다. RFCOMM, HCI 및 L2CAP와 같은 모든 프로토콜은 커널 수준에서 구현되며 프로필은 사용자 공간에서 구현됩니다. Tim이 언급했듯이, Low Energy를 지원하기 위해 Bluez는 사용자 수준뿐만 아니라 커널 수준에서도 지원해야합니다. 이 때가되면 추적하고 이해하기가 어려워집니다. 새로운 변경 사항 일 수 있으며 커널과 사용자 공간 코드에서 수정해야합니다.

한편, Bluedroid는 Bluez보다 몇 가지 장점이 있습니다. Bluedroid는 사용자 공간에서 완벽한 기능을 구현했습니다. 이로 인해 새로운 기능을 사용자 수준 코드에서만 추가하면됩니다. 커널 코드에 대한 의존성이 없습니다.

질문에 답변하기 위해 "새로운 블루투스 버전마다 새로운 블루투스 스택 코드가 있습니까?" 블루투스 새 버전은 의 하위 호환이므로 새 버전의 블루투스에는 완전한 다시 쓰기가 필요하지 않으므로 코드의 해당 부분 만 새로운 기존의 스택에 추가됩니다.

감사합니다.

관련 문제