|
# AnW_BT_SRV
|
|
# AnW_BT_SRV
|
|
|
|
AnW Bluetooth Service API, offered two sorts of releases
|
|
AnW Bluetooth Service API, offered two sorts of releases
|
|
1.[APP Release (btsrv)](#AppRelease): executable **BTDemo**, laun
|
|
|
|
cher **btsrv_client.sh**, essentails libraries (**.so**), and App configures (**.xml**)
|
|
1. [APP Release (btsrv)](#AppRelease): executable **BTDemo**, launcher **btsrv_client.sh**, essentails libraries (**.so**), and App configures (**.xml**)
|
|
2.[SDK Release (anwbtsrv_sdk)](#SDKRelease): open source with **AnWBTServiceDemo.cpp**, imported essentials libraries (**.so**), header (**anwbtservice.h**), and App configures (**.xml**)
|
|
2. [SDK Release (anwbtsrv_sdk)](#SDKRelease): open source with **AnWBTServiceDemo.cpp**, imported essentials libraries (**.so**), header (**anwbtservice.h**), and App configures (**.xml**)
|
|
|
|
|
|
# Pre-Requiremen
|
|
# RELEASE NOTE
|
|
Modify combo module init script /etc/init.d/ubloxinit.sh
|
|
|
|
```
|
|
20220128 [TAG:1.0.0.1](http://git-nas03.anwsoft.com:8088/delly.chen/anw_bt_srv/-/tags/1.0.0.1)
|
|
|
|
1.[FUNC]supports pbap downloading & data callback
|
|
|
|
2.[DEMO]update service demo
|
|
|
|
3.[DOC]update SDK API Document
|
|
|
|
|
|
|
|
20220121 [TAG:0.0.03](http://192.168.1.51:8088/delly.chen/anw_bt_srv/-/tags/0.0.0.3)
|
|
|
|
1. \[FUNC\]supports android auto connect & write data to android
|
|
|
|
2. \[FUNC\]Add some functions, For details, refer to anwbtservice.h
|
|
|
|
|
|
|
|
20220118 [TAG:TAMUL_BT_V2](http://192.168.1.51:8088/delly.chen/anw_bt_srv/-/tags/TAMUL_BT_V2)
|
|
|
|
|
|
|
|
1. \[FUNC\]supports iphone carplay connect & write carplay data to iphone
|
|
|
|
|
|
|
|
20220117 [TAG:TAMUL_BT_V1](http://192.168.1.51:8088/delly.chen/anw_bt_srv/-/tags/TAMUL_BT_V1)
|
|
|
|
|
|
|
|
1. \[FUNC\] supports basic BT pair & connect
|
|
|
|
<div style="page-break-after: always"></div>
|
|
|
|
|
|
|
|
# USAGE
|
|
|
|
1. Support HFP, A2DP, AVRCP, PBAP, .. AnW BT stack
|
|
|
|
2. Support Device Serarch & Pair, Call, Phonebook, Music, ...
|
|
|
|
|
|
|
|
## Pre-Requirement
|
|
|
|
Modify combo module init script **/etc/init.d/ubloxinit.sh**
|
|
|
|
```plaintext
|
|
|
|
echo "[DDMISO] UBLOX Driver"
|
|
echo "[DDMISO] UBLOX Driver"
|
|
modprobe jody-w2-sdiouart
|
|
modprobe jody-w2-sdiouart
|
|
ifconfig uap0 192.168.1.10
|
|
ifconfig uap0 192.168.1.10
|
... | @@ -45,18 +20,17 @@ wpa_supplicant -B -D nl80211 -i mlan0 -c /etc/ublox/wpa_supplicant.conf |
... | @@ -45,18 +20,17 @@ wpa_supplicant -B -D nl80211 -i mlan0 -c /etc/ublox/wpa_supplicant.conf |
|
#hciconfig -a hci0
|
|
#hciconfig -a hci0
|
|
udhcpc -i mlan0
|
|
udhcpc -i mlan0
|
|
```
|
|
```
|
|
|
|
# Run App on targets (tamul_btsrv-.zip)
|
|
## Run App on targets (tamul_btsrv-.zip)
|
|
1.1 unzip
|
|
1. unzip
|
|
1.2 Copy results folder /build/btsrv to target /home/btsrv
|
|
2. Copy results folder /build/btsrv to target /home/btsrv
|
|
1.3 go to target, in terminal entering /btsrv folder
|
|
3. go to target, in terminal entering /btsrv folder
|
|
1.4 run btsrv_client.sh to launch BTDemo demo app and following the menu commands
|
|
4. run btsrv_client.sh to launch BTDemo demo app and following the menu commands or
|
|
|
|
```
|
|
```
|
|
> export LD_LIBRARY_PATH="/home/btsrv"
|
|
> export LD_LIBRARY_PATH="/home/btsrv"
|
|
>./BTDemo
|
|
>./BTDemo
|
|
```
|
|
```
|
|
|
|
# bluetooth menu
|
|
### set device name
|
|
## set device name
|
|
```
|
|
```
|
|
================bluetooth menu=================
|
|
================bluetooth menu=================
|
|
1.EXIT
|
|
1.EXIT
|
... | @@ -71,8 +45,7 @@ udhcpc -i mlan0 |
... | @@ -71,8 +45,7 @@ udhcpc -i mlan0 |
|
> input name: TAMUL_MARVELL (for example)
|
|
> input name: TAMUL_MARVELL (for example)
|
|
...
|
|
...
|
|
```
|
|
```
|
|
|
|
## power on init
|
|
### power on init
|
|
|
|
```
|
|
```
|
|
================bluetooth menu=================
|
|
================bluetooth menu=================
|
|
1.EXIT
|
|
1.EXIT
|
... | @@ -84,93 +57,551 @@ udhcpc -i mlan0 |
... | @@ -84,93 +57,551 @@ udhcpc -i mlan0 |
|
BTPowerOn
|
|
BTPowerOn
|
|
...
|
|
...
|
|
```
|
|
```
|
|
Note: Looking for device name (e.g. TAMUL_MARVELL) from mobile, then pair the device with mobile When mobile shows connected succeed, turn off the BT button from mobile, then turn on the BT button from mobile again. At this time, mobile has paired storage with the device.
|
|
## power off
|
|
|
|
```
|
|
|
|
================bluetooth menu=================
|
|
|
|
1.EXIT
|
|
|
|
2.BTPowerOn
|
|
|
|
3.BTPowerOff
|
|
|
|
4.SetLocalDevAddrOrName
|
|
|
|
===============================================
|
|
|
|
> input num: 3
|
|
|
|
BTPowerOff
|
|
|
|
...
|
|
|
|
```
|
|
|
|
Note: Looking for device name (e.g. TAMUL_MARVELL) from mobile, then pair the device with mobile When mobile shows connected succeed, turn off the BT button
|
|
|
|
from mobile, then turn on the BT button from mobile again. At this time, mobile has paired storage with the device.
|
|
|
|
#common Menu
|
|
|
|
## start inquiry device
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
3.StopInquiry
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
input num: 2
|
|
|
|
...
|
|
|
|
```
|
|
|
|
Note:then you can find the new device's message from respond log,for example
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(10)
|
|
|
|
AnWBTSERVICE_NEW_DEVICE_FOUND name[CSR - bc7] devclass[2098184]
|
|
|
|
```
|
|
|
|
## stop inquiry device
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
3.StopInquiry
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
input num: 3
|
|
|
|
...
|
|
|
|
```
|
|
|
|
When StartInquiry is running, execute StopInquiry immediately and stop inquiry
|
|
|
|
## pair response
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
3.StopInquiry
|
|
|
|
4.PairResponse
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
input num: 4
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
|
### spp connect
|
|
## set pin code
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
3.StopInquiry
|
|
|
|
4.PairResponse
|
|
|
|
5.SetPinCode
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
input num: 5
|
|
|
|
input pincode:1111
|
|
|
|
```
|
|
|
|
## set local DevCoD
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
3.StopInquiry
|
|
|
|
4.PairResponse
|
|
|
|
5.SetPinCode
|
|
|
|
6.SetLocalDevCoD
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
input num:6
|
|
|
|
input devClass:7995916
|
|
|
|
```
|
|
|
|
## get local OOB data
|
|
```
|
|
```
|
|
================ BT Test Menu =================
|
|
================ common Menu ==================
|
|
1. Exit
|
|
1.Exit
|
|
2. StartInquiry
|
|
2.StartInquiry
|
|
...
|
|
3.StopInquiry
|
|
8. ConnectDevice
|
|
...
|
|
9. DisconnectDevice
|
|
6.SetLocalDevCoD
|
|
10.SPP_Write
|
|
7.GetLocalOOBData
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
input num:7
|
|
|
|
...
|
|
|
|
```
|
|
|
|
Note:then you can get the respond message from log,"status[0]" indicates success,for example
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(13)
|
|
|
|
AnWBTSERVICE_GET_LOCAL_OOB_DATA status[0] hash_c192...
|
|
|
|
```
|
|
|
|
## connect device a.k.a. spp connect
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
===============================================
|
|
===============================================
|
|
> input num: 8
|
|
> input num: 8
|
|
...
|
|
...
|
|
> input connect addr(xx:xx:xx:xx:xx:xx): 11:e8:14:da:61:d4 (for example)
|
|
> input connect addr(xx:xx:xx:xx:xx:xx): 11:e8:14:da:61:d4 (for example)
|
|
...
|
|
|
|
```
|
|
```
|
|
Note: You can find mobile BT mac from **"Setting->General->About-> Bluetooth"** (iphone)
|
|
Note: You can find mobile BT mac from "Setting->General->About-> Bluetooth" (iphone)
|
|
|
|
|
|
```
|
|
```
|
|
> input profile_mask: 0x00000040
|
|
> input profile_mask: 0x00000040
|
|
```
|
|
```
|
|
Note: Then, connected.
|
|
Note: Then, connected.Querying the mobile phone shows that the connection is successful
|
|
|
|
## spp write
|
|
### spp write
|
|
|
|
```
|
|
```
|
|
================ BT Test Menu =================
|
|
================ common Menu ==================
|
|
1. Exit
|
|
1.Exit
|
|
2. StartInquiry
|
|
2.StartInquiry
|
|
...
|
|
...
|
|
8. ConnectDevice
|
|
8.ConnectDevice
|
|
9. DisconnectDevice
|
|
9.DisconnectDevice
|
|
10.SPP_Write
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
===============================================
|
|
===============================================
|
|
> input num: 10
|
|
> input num: 10
|
|
> input connect addr(xx:xx:xx:xx:xx:xx): 11:e8:14:da:61:d4 (for example)
|
|
> input connect addr(xx:xx:xx:xx:xx:xx): 11:e8:14:da:61:d4 (for example)
|
|
```
|
|
```
|
|
Note: You can find mobile BT mac from **"Setting->General->About-> Bluetooth"** (iphone)
|
|
Note: You can find mobile BT mac from "Setting->General->About-> Bluetooth" (iphone)
|
|
|
|
### carplay spp settings
|
|
#### CarPlay spp settings
|
|
```
|
|
```
|
|
|
|
>input SPP_data:ff,55,2,0,ee,10 (for example)
|
|
>input SPP_data:ff,55,2,0,ee,10 (for example)
|
|
```
|
|
```
|
|
Note: **ff,55,2,0,ee,10** is specified for **CarPlay**, to check log printed to get successfully responded from iPhone
|
|
Note: ff,55,2,0,ee,10 is specified for CarPlay, to check log printed to get successfully responded from iPhone Note: Then, check log printed to get successfully
|
|
Note: Then, check log printed to get successfully responded
|
|
responded
|
|
```
|
|
```
|
|
AnWBTService_SPP_DATA_IND_S sppData:
|
|
AnWBTService_SPP_DATA_IND_S sppData:
|
|
[ff] [55] [2] [0] [ee] [10]
|
|
[ff] [55] [2] [0] [ee] [10]
|
|
```
|
|
```
|
|
|
|
### android auto spp settings
|
|
#### Android Auto spp settings
|
|
|
|
```
|
|
```
|
|
>input SPP_data:00, 15, 00, 04, 08, 01, 10, 00, 18, 00,20, 95, 01, 20, 99, 01, 20, 9D,01, 20, A1, 01, 20, A5, 01 (for example)
|
|
>input SPP_data:00, 15, 00, 04, 08, 01, 10, 00, 18, 00,20, 95, 01, 20, 99, 01, 20, 9D,01, 20, A1, 01, 20, A5, 01 (for example)
|
|
```
|
|
```
|
|
Note: **00, 15, 00, 04, 08, 01, 10, 00 ...** is specified for **Android Auto** or inquiry device from Android phone, upon paired, if phone is "Android Auto" supported, the connect request will automatically send to host HU.
|
|
Note: 00, 15, 00, 04, 08, 01, 10, 00 ... is specified for Android Auto or inquiry device from Android phone, upon paired, if phone is "Android Auto" supported, the connect
|
|
Note: Then, check log printed to get successfully responded
|
|
request will automatically send to host HU. Note: Then, check log printed to get successfully responded
|
|
```
|
|
```
|
|
AnWBTService_SPP_DATA_IND_S sppData:
|
|
AnWBTService_SPP_DATA_IND_S sppData:
|
|
[0][64][0][5][8][1][10][5][1a][e][39][41][32][37][31][46][46][41][5a][30][30][41][4b][34][20][0][32][4c][a][24][66][32][61][63][66][36][61][33][2d][35][64][64][64][2d][34][31][66][64][2d][62][33][62][63][2d][64][38][39][37][38][30][36][36][33][63][30][63][12][24][30][65][33][34][39][62][63][61][2d][62][30][32][61][2d][34][38][39][31][2d][39][38][38][34][2d][64][65][35][63][65][38][35][33][34][66][30][63](26213|0xB4DFF450)[BTAPI] btsdk_exec_apicb end
|
|
[0][64][0][5][8][1][10][5][1a][e][39][41][32][37][31][46][46][41][5a][30][30][41][4b][34][20][0][32][4c][a][24][66][32][61][63][66]
|
|
```
|
|
```
|
|
<div style="page-break-after: always"></div>
|
|
## disconnect device
|
|
|
|
Note: the device had been connected a.k.a. spp connected
|
|
## Customize on SDK (tamul_release-.zip)
|
|
```
|
|
1. unzip
|
|
================ common Menu ==================
|
|
2. in terminal entering ./anwbtsrv_sdk/Demo folder
|
|
1.Exit
|
|
3. setup tool-chain by command line (source ...) or edit in ./anwbtsrv_sdk/Demo/build_demo.sh
|
|
2.StartInquiry
|
|
4. run make or build_demo.sh
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
> input num: 9
|
|
|
|
> input connect addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
> input profile_mask:0x00000040
|
|
|
|
```
|
|
|
|
After execution, you can receive the answer message of disconnection and find call back message in the log
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(7)
|
|
|
|
AnWBTSERVICE_DEV_PROFILE_STATE_CHANGED profile_mask[10] devclass[7995916] isConnected[0]
|
|
|
|
```
|
|
|
|
## set scan mode
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
> input num:11
|
|
|
|
> input setPairingState:3
|
|
|
|
```
|
|
|
|
After execution, the log print the pairing state "setPairingState:state[5]"
|
|
|
|
## get scan mode
|
|
```
|
|
```
|
|
> cd ./build/anwbtsrv_sdk/Demo
|
|
================ common Menu ==================
|
|
> source /opt/poky-tamul/2.5.1/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
|
|
1.Exit
|
|
> make or ./build_demo.sh
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
> input num:12
|
|
|
|
```
|
|
|
|
After execution, you can get the state form log ,for example: PairingState[5]
|
|
|
|
## pair device
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
13.UnPairDevice
|
|
|
|
14.PairDevice
|
|
|
|
15.GetAllPairedDeviceInfo
|
|
|
|
16.GetLocalDevInfo
|
|
|
|
17.GetBTPowerStatus
|
|
|
|
18.SendHCICommand
|
|
|
|
19.DeviceIsConnected
|
|
|
|
===============================================
|
|
|
|
> input num:14
|
|
|
|
> input pair addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
> input pincode:0000
|
|
|
|
```
|
|
|
|
After execution, you can receive the answer message and find call back message in the log
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(8)
|
|
|
|
AnWBTSERVICE_PAIRED_DEVICE_ELEMENT_CHANGED isFirstPaired[1] event_type[0] support_profile_mask[2ced]
|
|
|
|
```
|
|
|
|
Note:Querying the mobile phone shows paired record
|
|
|
|
## unpair device
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
13.UnPairDevice
|
|
|
|
14.PairDevice
|
|
|
|
15.GetAllPairedDeviceInfo
|
|
|
|
16.GetLocalDevInfo
|
|
|
|
17.GetBTPowerStatus
|
|
|
|
18.SendHCICommand
|
|
|
|
19.DeviceIsConnected
|
|
|
|
===============================================
|
|
|
|
> input num:13
|
|
|
|
> input unpair addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
```
|
|
|
|
After execution, you can receive the answer message and find call back message in the log
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(9)
|
|
|
|
AnWBTService_UnpairDevice_S type[1] status[0]
|
|
|
|
```
|
|
|
|
## get all paired device Info
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
13.UnPairDevice
|
|
|
|
14.PairDevice
|
|
|
|
15.GetAllPairedDeviceInfo
|
|
|
|
16.GetLocalDevInfo
|
|
|
|
17.GetBTPowerStatus
|
|
|
|
18.SendHCICommand
|
|
|
|
19.DeviceIsConnected
|
|
|
|
===============================================
|
|
|
|
> input num:15
|
|
|
|
```
|
|
|
|
then the log print all paired device Info,for example
|
|
|
|
```
|
|
|
|
PairedDevInfo:btaddr[11:e8:14:da:61:d4] linkKey[w쳇[:µb7] devClass[7995916] nameLen[6] rdName[123asd] servicesSupported[11501] didVenderID[76] didProductID[28937] didVersion[2880] didVenderIDSource[1]
|
|
|
|
```
|
|
|
|
## get local device Info
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
13.UnPairDevice
|
|
|
|
14.PairDevice
|
|
|
|
15.GetAllPairedDeviceInfo
|
|
|
|
16.GetLocalDevInfo
|
|
|
|
17.GetBTPowerStatus
|
|
|
|
18.SendHCICommand
|
|
|
|
19.DeviceIsConnected
|
|
|
|
===============================================
|
|
|
|
> input num:16
|
|
|
|
```
|
|
|
|
then the log print local device Info, for example
|
|
|
|
```
|
|
|
|
LocalDevInfo:btaddr[a5:a5:0:5b:2:0] devClass[2098184] nameLen[6] Name[ANWBT] servicesSupported[15] pinLen[4] pinCode[0000]
|
|
|
|
```
|
|
|
|
##get BT power status
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
13.UnPairDevice
|
|
|
|
14.PairDevice
|
|
|
|
15.GetAllPairedDeviceInfo
|
|
|
|
16.GetLocalDevInfo
|
|
|
|
17.GetBTPowerStatus
|
|
|
|
18.SendHCICommand
|
|
|
|
19.DeviceIsConnected
|
|
|
|
===============================================
|
|
|
|
> input num:17
|
|
|
|
```
|
|
|
|
then the log print the power status of BT, like "power_status[0]"
|
|
|
|
## send HCI command
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
13.UnPairDevice
|
|
|
|
14.PairDevice
|
|
|
|
15.GetAllPairedDeviceInfo
|
|
|
|
16.GetLocalDevInfo
|
|
|
|
17.GetBTPowerStatus
|
|
|
|
18.SendHCICommand
|
|
|
|
19.DeviceIsConnected
|
|
|
|
===============================================
|
|
|
|
> input num:18
|
|
|
|
> input OpCode Group:
|
|
|
|
> input OpCode Command:
|
|
|
|
> input Command parameters:
|
|
|
|
```
|
|
|
|
## check device is connected
|
|
|
|
```
|
|
|
|
================ common Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
13.UnPairDevice
|
|
|
|
14.PairDevice
|
|
|
|
15.GetAllPairedDeviceInfo
|
|
|
|
16.GetLocalDevInfo
|
|
|
|
17.GetBTPowerStatus
|
|
|
|
18.SendHCICommand
|
|
|
|
19.DeviceIsConnected
|
|
|
|
===============================================
|
|
|
|
> input num:19
|
|
|
|
> input addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
```
|
|
|
|
then the log print the status that the device is connected or not connected,for example
|
|
|
|
```
|
|
|
|
connect_status[1](0-not connected 1-connected)
|
|
|
|
```
|
|
|
|
# HFP Menu
|
|
|
|
## outgoing call
|
|
|
|
```
|
|
|
|
================== HFP Menu ===================
|
|
|
|
1.Exit
|
|
|
|
2.OutgoingCall
|
|
|
|
3.AcceptCall
|
|
|
|
4.Hangup
|
|
|
|
5.GetAudioState
|
|
|
|
6.GetCallStatusList
|
|
|
|
===============================================
|
|
|
|
> input num:2
|
|
|
|
> input typeofcall:0 (0/1/2/3)
|
|
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
> input phonenum:10010
|
|
|
|
```
|
|
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(15)
|
|
|
|
AnWBTService_HFPCallChanged_S devclass[7995916] call1_number[10010] call1_state[5] call2_number[10010 ] call2_state[2] call3_number[] call3_state[1]
|
|
|
|
AnWBTService_MsgCallback(16)
|
|
|
|
AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0]
|
|
|
|
```
|
|
|
|
## accept all
|
|
|
|
```
|
|
|
|
================== HFP Menu ===================
|
|
|
|
1.Exit
|
|
|
|
2.OutgoingCall
|
|
|
|
3.AcceptCall
|
|
|
|
4.Hangup
|
|
|
|
5.GetAudioState
|
|
|
|
6.GetCallStatusList
|
|
|
|
===============================================
|
|
|
|
> input num:3
|
|
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
```
|
|
|
|
## hang up
|
|
|
|
```
|
|
|
|
================== HFP Menu ===================
|
|
|
|
1.Exit
|
|
|
|
2.OutgoingCall
|
|
|
|
3.AcceptCall
|
|
|
|
4.Hangup
|
|
|
|
5.GetAudioState
|
|
|
|
6.GetCallStatusList
|
|
|
|
===============================================
|
|
|
|
> input num:4
|
|
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
```
|
|
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(15)
|
|
|
|
AnWBTService_HFPCallChanged_S devclass[7995916] call1_number[2] call1_state[4] call2_number[10010 ] call2_state[2] call3_number[] call3_state[2]
|
|
|
|
```
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(14)
|
|
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[2]
|
|
|
|
AnWBTService_MsgCallback(14)
|
|
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[4]
|
|
|
|
AnWBTService_MsgCallback(14)
|
|
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[32]
|
|
|
|
```
|
|
|
|
## get audio state
|
|
|
|
```
|
|
|
|
================== HFP Menu ===================
|
|
|
|
1.Exit
|
|
|
|
2.OutgoingCall
|
|
|
|
3.AcceptCall
|
|
|
|
4.Hangup
|
|
|
|
5.GetAudioState
|
|
|
|
6.GetCallStatusList
|
|
|
|
===============================================
|
|
|
|
> input num:5
|
|
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
```
|
|
|
|
then the log print the audio state ,for example "audio state[0]"
|
|
|
|
## get call status list
|
|
|
|
```
|
|
|
|
================== HFP Menu ===================
|
|
|
|
1.Exit
|
|
|
|
2.OutgoingCall
|
|
|
|
3.AcceptCall
|
|
|
|
4.Hangup
|
|
|
|
5.GetAudioState
|
|
|
|
6.GetCallStatusList
|
|
|
|
===============================================
|
|
|
|
> input num:6
|
|
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
```
|
|
|
|
then logs print the respond message,for exaple
|
|
|
|
```
|
|
|
|
AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0]
|
|
|
|
```
|
|
|
|
# pbap Menu
|
|
|
|
## sync start
|
|
|
|
Note: To execute this API, pbap and HFP must be connected successfully.
|
|
|
|
so we can input profile_mask:0x00000011
|
|
```
|
|
```
|
|
then, result is collected in **./Demo/btsrv**
|
|
================ common Menu ==================
|
|
<div style="page-break-after: always"></div>
|
|
1.Exit
|
|
|
|
2.StartInquiry
|
|
|
|
...
|
|
|
|
8.ConnectDevice
|
|
|
|
9.DisconnectDevice
|
|
|
|
10.SPP_Write
|
|
|
|
11.SetScanMode
|
|
|
|
12.GetScanMode
|
|
|
|
...
|
|
|
|
===============================================
|
|
|
|
> input num: 8
|
|
|
|
...
|
|
|
|
> input connect addr(xx:xx:xx:xx:xx:xx): 11:e8:14:da:61:d4 (for example)
|
|
|
|
>input profile_mask: 0x00000011
|
|
|
|
```
|
|
|
|
Note: You can find mobile BT mac from "Setting->General->About-> Bluetooth" (iphone)
|
|
|
|
**start sync pabap**
|
|
|
|
```
|
|
|
|
================== pbap Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.SYNCSTART
|
|
|
|
3.SYNCCANCEL
|
|
|
|
===============================================
|
|
|
|
>input num:2
|
|
|
|
>input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
```
|
|
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(30)
|
|
|
|
AnWBTService_PBAP_CONTACT_DATA_S contactID[1] contactTYPE[1] fnLen[12] fn[我的编号] honorific_suffixesLen[4] honorific_suffixes[wdbh]
|
|
|
|
```
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(32)
|
|
|
|
AnWBTService_PBAP_TELEPHONE_DATA_S contactID[1] telephoneNumID[1] telephoneNumLen[14] telephoneNum[+8617621702696]
|
|
|
|
```
|
|
|
|
```
|
|
|
|
AnWBTService_MsgCallback(31)
|
|
|
|
AnWBTService_PBAP_CALLLOG_DATA_S callID[123] callTYPE[2] fnLen[0] fn[] number[055112340] timeLen[19] time[2021-12-14T15:17:12]
|
|
|
|
```
|
|
|
|
## sync cancal
|
|
|
|
```
|
|
|
|
================== pbap Menu ==================
|
|
|
|
1.Exit
|
|
|
|
2.SYNCSTART
|
|
|
|
3.SYNCCANCEL
|
|
|
|
===============================================
|
|
|
|
>input num:2
|
|
|
|
>input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
|
|
```
|
|
|
|
then the pbap SYNC will cancel and stop
|
|
|
|
|
|
|
|
<div style="page-break-after: always;"></div>
|
|
|
|
|
|
|
|
|
|
# STRUCTURE (tamul_release-.zip)
|
|
|
|
<pre>
|
|
|
|
.
|
|
|
|
└── Demo
|
|
|
|
├── AnWBTServiceDemo.cpp (examples to use anwbtservice)
|
|
|
|
├── build_demo.sh (build script, call to make)
|
|
|
|
├── makefile (makefile for BTDemo)
|
|
|
|
├── btsrv_client.sh (launcher for BTDemo)
|
|
|
|
├── \*.xml, \*.cfg (app settings)
|
|
|
|
├── import (anwbtservice)
|
|
|
|
│ ├── anwbtservice.h (service api header)
|
|
|
|
│ └── \*.so (essentials libraries)
|
|
|
|
└── btsrv (ouput for produced, e.g. BTDemo)
|
|
|
|
</pre> |
|
|
|
\ No newline at end of file |
|
|