2017-04-21 9 views
1

또는 더 구체적으로 "플랫폼 관리자"수준에서 작업 할 때 MTU 변경을 요청하려면 어떻게해야합니까?Stonestreet One 's Bluetopia 어떻게 MTU 변경을 요청합니까?

자세한 내용

  • 나는 GATT 클라이언트 역할을하는 샘플 프로그램 LinuxGATM_CLT을 사용하고 있는데이 Bluetopia 플랫폼 관리자 프레임 워크를 사용합니다.

  • 나는 이전에 Stonestreet One이 소유 한 Bluetopia를 사용하는 TI의 WL183xMOD WiLink 하드웨어를 사용하고 있습니다.

API 호출은 함수가 존재

존재하지만, PM보다 낮은 스택 계층에서 보인다 :

~/src/ti_bluetopia/ $ grep GATT_Exchange_MTU_Request ./BluetopiaPM/Bluetopia/include/GATTAPI.h 

BTPSAPI_DECLARATION int BTPSAPI GATT_Exchange_MTU_Request(unsigned int BluetoothStackID, unsigned int ConnectionID, Word_t RequestedMTU, GATT_Client_Event_Callback_t ClientEventCallback, unsigned long CallbackParameter); 

그러나 "플랫폼 관리자"수준

로부터 호출하지

BluetopiaPM/sample/LinuxGATM/LinuxGATM_CLT.c 내의 모든 내용은 GATM 기능을 사용합니다. BluetopiaPM/include/client/GATMAPI.h

GATT_Exchange_MTU_Request() 기능이 PM 수준에서 노출되지 않은 것 같습니다. 그것들은 바이너리 만 제공하기 때문에 PM이 어떻게 작동하는지 깊이 파헤 치기가 어렵습니다 (오픈 소스가 아닌 것 같습니다).

내가 솔루션 같은 느낌
~/src/ti_bluetopia/ $ grep -ri GATT_Initialize ./ 
Binary file ./BluetopiaPM/Bluetopia/lib/libSS1BTGAT.a matches 

내 현재의 플랫폼 관리자 BluetoothStackID, ConnectionID보고하는 방법을 찾기 위해, 그리고 콜백 매개 변수 내가 전화를 할 수 있도록 예를 들어 유일한 경기는 GATTAPI.h 헤더 파일과 바이너리 라이브러리 파일입니다 GATT_Exchange_MTU_Request()은 직접 작동합니다.

답변

1

즉, 해결 방법은 "플랫폼 관리자"를 만들기 전에 Stonestreet One의 Bluetopia의 이전 버전을 얻는 것입니다. 이러한 이전 버전 (시다 제와 같은 4.012와 4.013)는 플랫폼 관리자의 장점을 가지고 있지 않지만, 그들은 당신이 호출 할 수있는 낮은 수준에서 작동, 당신은 더 제어 할 수 있습니다 않습니다

GATT_Initialize()

GATT_Exchange_MTU_Request()

좋은 예는 위의 방법을 호출하는 4.013의 SPPLEDemo.c입니다.