2016-08-17 4 views
1

나는 TI 센서 태그 (cc2650)를 비 연결형으로 만들기 위해 노력하고 있습니다. (가속도계, 판독 값과 같이 지속적으로 센서를 광고합니다). 그 곳은의 경우 GAP_ADTYPE_* 목록을 찾을 수있는 올바른 접근 방식이나인지TI SensorTag cc2650의 광고 패킷에 센서 데이터를 삽입하는 방법은 무엇입니까?

는 기본 SensorTag 프로젝트의 SensorTag.c 파일에서, 나는 static uint8_t advertData[] 볼 수 있지만 잘 모르겠어요 내가 거기에 동적 센서 데이터를 넣을 수있는 경우 (또는 필요한).

답변

2

나는이 장치에 대해 아무 것도 모른다. 그래서 나의 대답은 꽤 일반적 일 것이다.

예, 센서를 통해 센서의 데이터를 브로드 캐스트 할 수 있습니다. 이렇게하면 다른 장치를 연결하여 센서의 값을 볼 필요가 없습니다.

다음은 BLE 4.2 Core Spec, Vol 3, Part C, 11.1에 나와있는 광고 데이터 형식입니다. 당신이 흥미 롭다 여기에서

BLE advertising data format

마지막 중첩 된 부분, 광고 유형 및 AD 데이터, 물론 이들의 길이입니다.

기본적으로 원하는 것은 4 바이트 값이있는 경우 5 (바이트) 길이를 설정하는 것입니다. 유형은 1이고 데이터는 4입니다.

유형 자체는 여기에 정의 된 GAP 유형 중 하나 여야합니다 : Generic Access Profile. 자신의 데이터를 광고하려면 마지막 특정 제조사 데이터 (0xFF)를 선택해야합니다.

그것은 내가 사용했던 다른 스택보다 같은 방식으로 작동하지만 경우, 소스 코드와 당신이 정말 당신을 도울 수 사용하고있는 TI 스택에 관해서는 매우 가능성이 :

  1. 당신 advertData에 데이터를 넣을 수 있습니다 []
  2. 갭 유형은 AD 구조의 길이가 어딘가에 지정해야합니다 물론 GAP_ADTYPE_MANUFACTURER_SPECIFIC

것 같습니다. 전체 패킷의 길이를 지정 하든지 아니면 스택에 데이터의 길이 (advertData)를 지정 하든지 AD 구조의 길이를 계산 (추가 1)합니다.

+0

사물을 설명하는 데 매우 유용합니다! advertData는 장치의 최대 크기 = 31 바이트입니다. 나는 실용적인 예를 함께 모을 수 있는지를 보게 될 것이다. – ayman

+0

31 바이트는 하나 또는 여러 개의 AD 구조를 가질 수있는 패킷의 전체 크기입니다.따라서 충분한 공간이 있다면 여전히 일부 서비스의 UUID, 플래그 또는 로컬 이름을 광고 할 수 있습니다. 어쨌든 스택이나 자신이 관리하는지는 알 수 없습니다. 그리고 프로토콜 데이터의 길이가 프로토콜에 존재하기 때문에 맞습니다. 따라서 advertData에서 다른 위치에 지정할 필요가 없을 것입니다. 파싱됩니다. – Tim

+1

아, Core Spec의 이미지로 작성되었지만, 광고 응답에 31 바이트를 추가 할 수 있는지 여부를 모를 경우를 대비하여. 스캐너 장치가 더 많은 데이터를 요청하면이 응답이 전송됩니다. 그러나 핵심 사양은 또한 "광고 패킷의 일부분 인 으로 전송 된 브로드 캐스트 사용자 데이터는 본질적으로 일반적으로 동적 인 반면, 검색 응답 데이터는 일반적으로 본질적으로 정적입니다. (Vol1, Part A, 4.2.2.2) – Tim

0

TI 스택을 사용 중이므로 Simple BLE Observer & 간단한 BLE Broadcaster 예제를 찾으십시오. 장치에 대한 연결을 만들고 싶지 않다면 이동해야합니다. TI 문서에 명시된 바와 같이

관찰자는 기본적으로 광고 메시지 를 검색하지만 연결을 시작할 수없는 장치입니다. 반면, Broadcaster는 광고 메시지를 보내지 만 연결할 수없는 장치 인 장치입니다.

예제 문서 및 소스 코드 주석에서 필요한 모든 것을 찾을 수 있습니다.

+0

둘 다 시도하면 장치가 센서 데이터를 패킷에 넣어 다른 장치가 센서 데이터에 연결해야하는지 알게하십시오. BLE Broadcaster 예제 소스를 찾아 보려고합니다. – ayman

+0

그러면 http://processors.wiki.ti.com/index.php/LPRF_BLE_PeripheralBroadcaster를 시작점으로 사용해야합니다. 이미 잘 문서화되어 있지만 코드 주석을 살펴보아야합니다. –

+0

GPIO를 활성화하려면 다른 장치가 센서에 연결해야하므로 Observer가 필요합니다. – ayman