... | @@ -3,26 +3,10 @@ AnW Bluetooth Service API, offered two sorts of releases |
... | @@ -3,26 +3,10 @@ AnW Bluetooth Service API, offered two sorts of releases |
|
1.[APP Release (btsrv)](#AppRelease): executable **BTDemo**, laun
|
|
1.[APP Release (btsrv)](#AppRelease): executable **BTDemo**, laun
|
|
cher **btsrv_client.sh**, essentails libraries (**.so**), and App configures (**.xml**)
|
|
cher **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**)
|
|
|
|
|
|
# RELEASE NOTE
|
|
|
|
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://git-nas03.anwsoft.com: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
|
|
|
|
|
|
|
|
# Pre-Requiremen
|
|
# Pre-Requiremen
|
|
Modify combo module init script /etc/init.d/ubloxinit.sh
|
|
Modify combo module init script /etc/init.d/ubloxinit.sh
|
|
<pre>
|
|
```
|
|
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
|
... | @@ -35,19 +19,19 @@ wpa_supplicant -B -D nl80211 -i mlan0 -c /etc/ublox/wpa_supplicant.conf |
... | @@ -35,19 +19,19 @@ wpa_supplicant -B -D nl80211 -i mlan0 -c /etc/ublox/wpa_supplicant.conf |
|
#hciconfig -a hci0 up
|
|
#hciconfig -a hci0 up
|
|
#hciconfig -a hci0
|
|
#hciconfig -a hci0
|
|
udhcpc -i mlan0
|
|
udhcpc -i mlan0
|
|
</pre>
|
|
```
|
|
# Run App on targets (tamul_btsrv-.zip)
|
|
# Run App on targets (tamul_btsrv-.zip)
|
|
1.1 unzip
|
|
1.1 unzip
|
|
1.2 Copy results folder /build/btsrv to target /home/btsrv
|
|
1.2 Copy results folder /build/btsrv to target /home/btsrv
|
|
1.3 go to target, in terminal entering /btsrv folder
|
|
1.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
|
|
1.4 run btsrv_client.sh to launch BTDemo demo app and following the menu commands
|
|
<pre>
|
|
```
|
|
> export LD_LIBRARY_PATH="/home/btsrv"
|
|
> export LD_LIBRARY_PATH="/home/btsrv"
|
|
>./BTDemo
|
|
>./BTDemo
|
|
</pre>
|
|
```
|
|
#bluetooth menu
|
|
# bluetooth menu
|
|
## set device name
|
|
## set device name
|
|
<pre>
|
|
```
|
|
================bluetooth menu=================
|
|
================bluetooth menu=================
|
|
1.EXIT
|
|
1.EXIT
|
|
2.BTPowerOn
|
|
2.BTPowerOn
|
... | @@ -60,9 +44,9 @@ udhcpc -i mlan0 |
... | @@ -60,9 +44,9 @@ udhcpc -i mlan0 |
|
> 0
|
|
> 0
|
|
> input name: TAMUL_MARVELL (for example)
|
|
> input name: TAMUL_MARVELL (for example)
|
|
...
|
|
...
|
|
</pre>
|
|
```
|
|
## power on init
|
|
## power on init
|
|
<pre>
|
|
```
|
|
================bluetooth menu=================
|
|
================bluetooth menu=================
|
|
1.EXIT
|
|
1.EXIT
|
|
2.BTPowerOn
|
|
2.BTPowerOn
|
... | @@ -72,9 +56,9 @@ udhcpc -i mlan0 |
... | @@ -72,9 +56,9 @@ udhcpc -i mlan0 |
|
> input num: 2
|
|
> input num: 2
|
|
BTPowerOn
|
|
BTPowerOn
|
|
...
|
|
...
|
|
</pre>
|
|
```
|
|
## power off
|
|
## power off
|
|
<pre>
|
|
```
|
|
================bluetooth menu=================
|
|
================bluetooth menu=================
|
|
1.EXIT
|
|
1.EXIT
|
|
2.BTPowerOn
|
|
2.BTPowerOn
|
... | @@ -84,12 +68,12 @@ BTPowerOn |
... | @@ -84,12 +68,12 @@ BTPowerOn |
|
> input num: 3
|
|
> input num: 3
|
|
BTPowerOff
|
|
BTPowerOff
|
|
...
|
|
...
|
|
</pre>
|
|
```
|
|
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
|
|
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.
|
|
from mobile, then turn on the BT button from mobile again. At this time, mobile has paired storage with the device.
|
|
#common Menu
|
|
#common Menu
|
|
## start Inquiry device
|
|
## start inquiry device
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -104,14 +88,14 @@ from mobile, then turn on the BT button from mobile again. At this time, mobile |
... | @@ -104,14 +88,14 @@ from mobile, then turn on the BT button from mobile again. At this time, mobile |
|
===============================================
|
|
===============================================
|
|
input num: 2
|
|
input num: 2
|
|
...
|
|
...
|
|
</pre>
|
|
```
|
|
Note:then you can find the new device's message from respond log,for example
|
|
Note:then you can find the new device's message from respond log,for example
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(10)
|
|
AnWBTService_MsgCallback(10)
|
|
AnWBTSERVICE_NEW_DEVICE_FOUND name[CSR - bc7] devclass[2098184]
|
|
AnWBTSERVICE_NEW_DEVICE_FOUND name[CSR - bc7] devclass[2098184]
|
|
</pre>
|
|
```
|
|
## stop inquiry device
|
|
## stop inquiry device
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -126,10 +110,10 @@ AnWBTSERVICE_NEW_DEVICE_FOUND name[CSR - bc7] devclass[2098184] |
... | @@ -126,10 +110,10 @@ AnWBTSERVICE_NEW_DEVICE_FOUND name[CSR - bc7] devclass[2098184] |
|
===============================================
|
|
===============================================
|
|
input num: 3
|
|
input num: 3
|
|
...
|
|
...
|
|
</pre>
|
|
```
|
|
When StartInquiry is running, execute StopInquiry immediately and stop inquiry
|
|
When StartInquiry is running, execute StopInquiry immediately and stop inquiry
|
|
## PairResponse
|
|
## pair response
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -145,10 +129,10 @@ When StartInquiry is running, execute StopInquiry immediately and stop inquiry |
... | @@ -145,10 +129,10 @@ When StartInquiry is running, execute StopInquiry immediately and stop inquiry |
|
===============================================
|
|
===============================================
|
|
input num: 4
|
|
input num: 4
|
|
...
|
|
...
|
|
</pre>
|
|
```
|
|
|
|
|
|
## SetPinCode
|
|
## set pin code
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -165,9 +149,9 @@ input num: 4 |
... | @@ -165,9 +149,9 @@ input num: 4 |
|
===============================================
|
|
===============================================
|
|
input num: 5
|
|
input num: 5
|
|
input pincode:1111
|
|
input pincode:1111
|
|
</pre>
|
|
```
|
|
## SetLocalDevCoD
|
|
## set local DevCoD
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -185,9 +169,9 @@ input pincode:1111 |
... | @@ -185,9 +169,9 @@ input pincode:1111 |
|
===============================================
|
|
===============================================
|
|
input num:6
|
|
input num:6
|
|
input devClass:7995916
|
|
input devClass:7995916
|
|
</pre>
|
|
```
|
|
## GetLocalOOBData
|
|
## get local OOB data
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -204,14 +188,14 @@ input devClass:7995916 |
... | @@ -204,14 +188,14 @@ input devClass:7995916 |
|
===============================================
|
|
===============================================
|
|
input num:7
|
|
input num:7
|
|
...
|
|
...
|
|
</pre>
|
|
```
|
|
Note:then you can get the respond message from log,"status[0]" indicates success,for example
|
|
Note:then you can get the respond message from log,"status[0]" indicates success,for example
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(13)
|
|
AnWBTService_MsgCallback(13)
|
|
AnWBTSERVICE_GET_LOCAL_OOB_DATA status[0] hash_c192...
|
|
AnWBTSERVICE_GET_LOCAL_OOB_DATA status[0] hash_c192...
|
|
</pre>
|
|
```
|
|
## Connect Device(for example:spp connect)
|
|
## connect device a.k.a. spp connect
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -226,14 +210,14 @@ AnWBTSERVICE_GET_LOCAL_OOB_DATA status[0] hash_c192... |
... | @@ -226,14 +210,14 @@ AnWBTSERVICE_GET_LOCAL_OOB_DATA status[0] hash_c192... |
|
> 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)
|
|
</pre>
|
|
```
|
|
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)
|
|
<pre>
|
|
```
|
|
> input profile_mask: 0x00000040
|
|
> input profile_mask: 0x00000040
|
|
</pre>
|
|
```
|
|
Note: Then, connected.Querying the mobile phone shows that the connection is successful
|
|
Note: Then, connected.Querying the mobile phone shows that the connection is successful
|
|
## spp write
|
|
## spp write
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -247,31 +231,31 @@ Note: Then, connected.Querying the mobile phone shows that the connection is suc |
... | @@ -247,31 +231,31 @@ Note: Then, connected.Querying the mobile phone shows that the connection is suc |
|
===============================================
|
|
===============================================
|
|
> 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)
|
|
</pre>
|
|
```
|
|
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
|
|
<pre>
|
|
```
|
|
>input SPP_data:ff,55,2,0,ee,10 (for example)
|
|
>input SPP_data:ff,55,2,0,ee,10 (for example)
|
|
</pre>
|
|
```
|
|
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: 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
|
|
responded
|
|
responded
|
|
<pre>
|
|
```
|
|
AnWBTService_SPP_DATA_IND_S sppData:
|
|
AnWBTService_SPP_DATA_IND_S sppData:
|
|
[ff] [55] [2] [0] [ee] [10]
|
|
[ff] [55] [2] [0] [ee] [10]
|
|
</pre>
|
|
```
|
|
###Android Auto spp settings
|
|
### android auto spp settings
|
|
<pre>
|
|
```
|
|
>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)
|
|
</pre>
|
|
```
|
|
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: 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: Then, check log printed to get successfully responded
|
|
request will automatically send to host HU. Note: Then, check log printed to get successfully responded
|
|
<pre>
|
|
```
|
|
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]
|
|
[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]
|
|
</pre>
|
|
```
|
|
## disconnect Device
|
|
## disconnect device
|
|
Note:the device had been connected,for example:spp connected
|
|
Note: the device had been connected a.k.a. spp connected
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -286,14 +270,14 @@ Note:the device had been connected,for example:spp connected |
... | @@ -286,14 +270,14 @@ Note:the device had been connected,for example:spp connected |
|
> input num: 9
|
|
> input num: 9
|
|
> input connect addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input connect addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input profile_mask:0x00000040
|
|
> input profile_mask:0x00000040
|
|
</pre>
|
|
```
|
|
After execution, you can receive the answer message of disconnection and find call back message in the log
|
|
After execution, you can receive the answer message of disconnection and find call back message in the log
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(7)
|
|
AnWBTService_MsgCallback(7)
|
|
AnWBTSERVICE_DEV_PROFILE_STATE_CHANGED profile_mask[10] devclass[7995916] isConnected[0]
|
|
AnWBTSERVICE_DEV_PROFILE_STATE_CHANGED profile_mask[10] devclass[7995916] isConnected[0]
|
|
</pre>
|
|
```
|
|
## SetScanMode
|
|
## set scan mode
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -307,10 +291,10 @@ AnWBTSERVICE_DEV_PROFILE_STATE_CHANGED profile_mask[10] devclass[7995916] isConn |
... | @@ -307,10 +291,10 @@ AnWBTSERVICE_DEV_PROFILE_STATE_CHANGED profile_mask[10] devclass[7995916] isConn |
|
===============================================
|
|
===============================================
|
|
> input num:11
|
|
> input num:11
|
|
> input setPairingState:3
|
|
> input setPairingState:3
|
|
</pre>
|
|
```
|
|
After execution, the log print the pairing state "setPairingState:state[5]"
|
|
After execution, the log print the pairing state "setPairingState:state[5]"
|
|
## GetScanMode
|
|
## get scan mode
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -323,10 +307,10 @@ After execution, the log print the pairing state "setPairingState:state[5]" |
... | @@ -323,10 +307,10 @@ After execution, the log print the pairing state "setPairingState:state[5]" |
|
...
|
|
...
|
|
===============================================
|
|
===============================================
|
|
> input num:12
|
|
> input num:12
|
|
</pre>
|
|
```
|
|
After execution,you can get the state form log ,for example: PairingState[5]
|
|
After execution, you can get the state form log ,for example: PairingState[5]
|
|
## pair Device
|
|
## pair device
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -342,15 +326,15 @@ After execution,you can get the state form log ,for example: PairingState[5] |
... | @@ -342,15 +326,15 @@ After execution,you can get the state form log ,for example: PairingState[5] |
|
> input num:14
|
|
> input num:14
|
|
> input pair addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input pair addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input pincode:0000
|
|
> input pincode:0000
|
|
</pre>
|
|
```
|
|
After execution, you can receive the answer message and find call back message in the log
|
|
After execution, you can receive the answer message and find call back message in the log
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(8)
|
|
AnWBTService_MsgCallback(8)
|
|
AnWBTSERVICE_PAIRED_DEVICE_ELEMENT_CHANGED isFirstPaired[1] event_type[0] support_profile_mask[2ced]
|
|
AnWBTSERVICE_PAIRED_DEVICE_ELEMENT_CHANGED isFirstPaired[1] event_type[0] support_profile_mask[2ced]
|
|
</pre>
|
|
```
|
|
Note:Querying the mobile phone shows paired record
|
|
Note:Querying the mobile phone shows paired record
|
|
## unpair Device
|
|
## unpair device
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -365,14 +349,14 @@ Note:Querying the mobile phone shows paired record |
... | @@ -365,14 +349,14 @@ Note:Querying the mobile phone shows paired record |
|
===============================================
|
|
===============================================
|
|
> input num:13
|
|
> input num:13
|
|
> input unpair addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input unpair addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
</pre>
|
|
```
|
|
After execution, you can receive the answer message and find call back message in the log
|
|
After execution, you can receive the answer message and find call back message in the log
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(9)
|
|
AnWBTService_MsgCallback(9)
|
|
AnWBTService_UnpairDevice_S type[1] status[0]
|
|
AnWBTService_UnpairDevice_S type[1] status[0]
|
|
</pre>
|
|
```
|
|
## get all paired device Info
|
|
## get all paired device Info
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -386,13 +370,13 @@ AnWBTService_UnpairDevice_S type[1] status[0] |
... | @@ -386,13 +370,13 @@ AnWBTService_UnpairDevice_S type[1] status[0] |
|
19.DeviceIsConnected
|
|
19.DeviceIsConnected
|
|
===============================================
|
|
===============================================
|
|
> input num:15
|
|
> input num:15
|
|
</pre>
|
|
```
|
|
then the log print all paired device Info,for example
|
|
then the log print all paired device Info,for example
|
|
<pre>
|
|
```
|
|
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]
|
|
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]
|
|
</pre>
|
|
```
|
|
## get local device Info
|
|
## get local device Info
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -406,13 +390,13 @@ PairedDevInfo:btaddr[11:e8:14:da:61:d4] linkKey[w쳇[:µb7] devClass[7995916 |
... | @@ -406,13 +390,13 @@ PairedDevInfo:btaddr[11:e8:14:da:61:d4] linkKey[w쳇[:µb7] devClass[7995916 |
|
19.DeviceIsConnected
|
|
19.DeviceIsConnected
|
|
===============================================
|
|
===============================================
|
|
> input num:16
|
|
> input num:16
|
|
</pre>
|
|
```
|
|
then the log print local device Info,for example
|
|
then the log print local device Info, for example
|
|
<pre>
|
|
```
|
|
LocalDevInfo:btaddr[a5:a5:0:5b:2:0] devClass[2098184] nameLen[6] Name[ANWBT] servicesSupported[15] pinLen[4] pinCode[0000]
|
|
LocalDevInfo:btaddr[a5:a5:0:5b:2:0] devClass[2098184] nameLen[6] Name[ANWBT] servicesSupported[15] pinLen[4] pinCode[0000]
|
|
</pre>
|
|
```
|
|
##get BT power status
|
|
##get BT power status
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -426,10 +410,10 @@ LocalDevInfo:btaddr[a5:a5:0:5b:2:0] devClass[2098184] nameLen[6] Name[ANWBT] ser |
... | @@ -426,10 +410,10 @@ LocalDevInfo:btaddr[a5:a5:0:5b:2:0] devClass[2098184] nameLen[6] Name[ANWBT] ser |
|
19.DeviceIsConnected
|
|
19.DeviceIsConnected
|
|
===============================================
|
|
===============================================
|
|
> input num:17
|
|
> input num:17
|
|
</pre>
|
|
```
|
|
then the log print the power status of BT,like "power_status[0]"
|
|
then the log print the power status of BT, like "power_status[0]"
|
|
## send HCI command
|
|
## send HCI command
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -446,9 +430,9 @@ then the log print the power status of BT,like "power_status[0]" |
... | @@ -446,9 +430,9 @@ then the log print the power status of BT,like "power_status[0]" |
|
> input OpCode Group:
|
|
> input OpCode Group:
|
|
> input OpCode Command:
|
|
> input OpCode Command:
|
|
> input Command parameters:
|
|
> input Command parameters:
|
|
</pre>
|
|
```
|
|
##judge device is connected
|
|
## check device is connected
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -463,14 +447,14 @@ then the log print the power status of BT,like "power_status[0]" |
... | @@ -463,14 +447,14 @@ then the log print the power status of BT,like "power_status[0]" |
|
===============================================
|
|
===============================================
|
|
> input num:19
|
|
> input num:19
|
|
> input addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
</pre>
|
|
```
|
|
then the log print the status that the device is connected or not connected,for example
|
|
then the log print the status that the device is connected or not connected,for example
|
|
<pre>
|
|
```
|
|
connect_status[1](0-not connected 1-connected)
|
|
connect_status[1](0-not connected 1-connected)
|
|
</pre>
|
|
```
|
|
# HFP Menu
|
|
# HFP Menu
|
|
## OutgoingCall
|
|
## outgoing call
|
|
<pre>
|
|
```
|
|
================== HFP Menu ===================
|
|
================== HFP Menu ===================
|
|
1.Exit
|
|
1.Exit
|
|
2.OutgoingCall
|
|
2.OutgoingCall
|
... | @@ -483,16 +467,16 @@ connect_status[1](0-not connected 1-connected) |
... | @@ -483,16 +467,16 @@ connect_status[1](0-not connected 1-connected) |
|
> input typeofcall:0 (0/1/2/3)
|
|
> input typeofcall:0 (0/1/2/3)
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input phonenum:10010
|
|
> input phonenum:10010
|
|
</pre>
|
|
```
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(15)
|
|
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_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_MsgCallback(16)
|
|
AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0]
|
|
AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0]
|
|
</pre>
|
|
```
|
|
##AcceptCall
|
|
## accept all
|
|
<pre>
|
|
```
|
|
================== HFP Menu ===================
|
|
================== HFP Menu ===================
|
|
1.Exit
|
|
1.Exit
|
|
2.OutgoingCall
|
|
2.OutgoingCall
|
... | @@ -503,9 +487,9 @@ AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0] |
... | @@ -503,9 +487,9 @@ AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0] |
|
===============================================
|
|
===============================================
|
|
> input num:3
|
|
> input num:3
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
</pre>
|
|
```
|
|
##Hangup
|
|
## hang up
|
|
<pre>
|
|
```
|
|
================== HFP Menu ===================
|
|
================== HFP Menu ===================
|
|
1.Exit
|
|
1.Exit
|
|
2.OutgoingCall
|
|
2.OutgoingCall
|
... | @@ -516,22 +500,22 @@ AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0] |
... | @@ -516,22 +500,22 @@ AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0] |
|
===============================================
|
|
===============================================
|
|
> input num:4
|
|
> input num:4
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
</pre>
|
|
```
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(15)
|
|
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_HFPCallChanged_S devclass[7995916] call1_number[2] call1_state[4] call2_number[10010 ] call2_state[2] call3_number[] call3_state[2]
|
|
</pre>
|
|
```
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(14)
|
|
AnWBTService_MsgCallback(14)
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[2]
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[2]
|
|
AnWBTService_MsgCallback(14)
|
|
AnWBTService_MsgCallback(14)
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[4]
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[4]
|
|
AnWBTService_MsgCallback(14)
|
|
AnWBTService_MsgCallback(14)
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[32]
|
|
AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Feature_mask[32]
|
|
</pre>
|
|
```
|
|
##GetAudioState
|
|
## get audio state
|
|
<pre>
|
|
```
|
|
================== HFP Menu ===================
|
|
================== HFP Menu ===================
|
|
1.Exit
|
|
1.Exit
|
|
2.OutgoingCall
|
|
2.OutgoingCall
|
... | @@ -542,10 +526,10 @@ AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Featu |
... | @@ -542,10 +526,10 @@ AnWBTService_HFPFeatureValueChanged_S rdName[123asd] devclass[7995916] HFP_Featu |
|
===============================================
|
|
===============================================
|
|
> input num:5
|
|
> input num:5
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
</pre>
|
|
```
|
|
then the log print the audio state ,for exaple "audio state[0]"
|
|
then the log print the audio state ,for example "audio state[0]"
|
|
##GetCallStatusList
|
|
## get call status list
|
|
<pre>
|
|
```
|
|
================== HFP Menu ===================
|
|
================== HFP Menu ===================
|
|
1.Exit
|
|
1.Exit
|
|
2.OutgoingCall
|
|
2.OutgoingCall
|
... | @@ -556,16 +540,16 @@ then the log print the audio state ,for exaple "audio state[0]" |
... | @@ -556,16 +540,16 @@ then the log print the audio state ,for exaple "audio state[0]" |
|
===============================================
|
|
===============================================
|
|
> input num:6
|
|
> input num:6
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
> input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
</pre>
|
|
```
|
|
then logs print the respond message,for exaple
|
|
then logs print the respond message,for exaple
|
|
<pre>
|
|
```
|
|
AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0]
|
|
AnWBTService_HFPClccInfoChanged_S number[10010] name[ 10010 ] dir[0] status[0]
|
|
</pre>
|
|
```
|
|
#pbap Menu
|
|
# pbap Menu
|
|
##SYNCSTART
|
|
## sync start
|
|
Note:To execute this API, pbap and HFP must be connected successfully.
|
|
Note: To execute this API, pbap and HFP must be connected successfully.
|
|
so we can input profile_mask:0x00000011
|
|
so we can input profile_mask:0x00000011
|
|
<pre>
|
|
```
|
|
================ common Menu ==================
|
|
================ common Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.StartInquiry
|
|
2.StartInquiry
|
... | @@ -581,10 +565,10 @@ so we can input profile_mask:0x00000011 |
... | @@ -581,10 +565,10 @@ so we can input profile_mask:0x00000011 |
|
...
|
|
...
|
|
> 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)
|
|
>input profile_mask: 0x00000011
|
|
>input profile_mask: 0x00000011
|
|
</pre>
|
|
```
|
|
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)
|
|
**start sync pabap**
|
|
**start sync pabap**
|
|
<pre>
|
|
```
|
|
================== pbap Menu ==================
|
|
================== pbap Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.SYNCSTART
|
|
2.SYNCSTART
|
... | @@ -592,21 +576,22 @@ Note: You can find mobile BT mac from "Setting->General->About-> Bluetooth" (iph |
... | @@ -592,21 +576,22 @@ Note: You can find mobile BT mac from "Setting->General->About-> Bluetooth" (iph |
|
===============================================
|
|
===============================================
|
|
>input num:2
|
|
>input num:2
|
|
>input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
>input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
</pre>
|
|
```
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
After execution, you can receive the answer message and find call back message in the log, for example
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(30)
|
|
AnWBTService_MsgCallback(30)
|
|
AnWBTService_PBAP_CONTACT_DATA_S contactID[1] contactTYPE[1] fnLen[12] fn[我的编号] honorific_suffixesLen[4] honorific_suffixes[wdbh]
|
|
AnWBTService_PBAP_CONTACT_DATA_S contactID[1] contactTYPE[1] fnLen[12] fn[我的编号] honorific_suffixesLen[4] honorific_suffixes[wdbh]
|
|
</pre>
|
|
```
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(32)
|
|
AnWBTService_MsgCallback(32)
|
|
AnWBTService_PBAP_TELEPHONE_DATA_S contactID[1] telephoneNumID[1] telephoneNumLen[14] telephoneNum[+8617621702696]
|
|
AnWBTService_PBAP_TELEPHONE_DATA_S contactID[1] telephoneNumID[1] telephoneNumLen[14] telephoneNum[+8617621702696]
|
|
</pre>
|
|
```
|
|
<pre>
|
|
```
|
|
AnWBTService_MsgCallback(31)
|
|
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]
|
|
AnWBTService_PBAP_CALLLOG_DATA_S callID[123] callTYPE[2] fnLen[0] fn[] number[055112340] timeLen[19] time[2021-12-14T15:17:12]
|
|
</pre>
|
|
```
|
|
##SYNCCANCEL
|
|
## sync cancal
|
|
|
|
```
|
|
================== pbap Menu ==================
|
|
================== pbap Menu ==================
|
|
1.Exit
|
|
1.Exit
|
|
2.SYNCSTART
|
|
2.SYNCSTART
|
... | @@ -614,64 +599,7 @@ AnWBTService_PBAP_CALLLOG_DATA_S callID[123] callTYPE[2] fnLen[0] fn[] number[05 |
... | @@ -614,64 +599,7 @@ AnWBTService_PBAP_CALLLOG_DATA_S callID[123] callTYPE[2] fnLen[0] fn[] number[05 |
|
===============================================
|
|
===============================================
|
|
>input num:2
|
|
>input num:2
|
|
>input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
>input target addr(xx:xx:xx:xx:xx:xx):11:e8:14:da:61:d4
|
|
</pre>
|
|
|
|
then the pbap SYNC will cancel and stop
|
|
|
|
# Customize on SDK (tamul_release-.zip)
|
|
|
|
1.unzip
|
|
|
|
2.in terminal entering ./anwbtsrv_sdk/Demo folder
|
|
|
|
3.setup tool-chain by command line (source ...) or edit in ./anwbtsrv_sdk/Demo/build_demo.sh
|
|
|
|
4.run make or build_demo.sh
|
|
|
|
<pre>
|
|
|
|
> cd ./build/anwbtsrv_sdk/Demo
|
|
|
|
> source /opt/poky-tamul/2.5.1/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
|
|
|
|
> make or ./build_demo.sh
|
|
|
|
</pre>
|
|
|
|
then, result is collected in ./Demo/btsrv
|
|
|
|
# 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>
|
|
|
|
|
|
|
|
# HOWTO
|
|
|
|
## Scrip Build for **btsrv** app release
|
|
|
|
```
|
|
|
|
> cd Build
|
|
|
|
> ./build.sh [|LINUX] [|STA5_CSR_BTSRV|TAMUL_MARVEL_BTSRV]
|
|
|
|
```
|
|
```
|
|
then, result is collected in **./build/btsrv**
|
|
then the pbap SYNC will cancel and stop
|
|
|
|
|
|
## Scrip Build for **anwbtsrv_sdk** sdk release
|
|
|
|
```
|
|
|
|
> cd Build
|
|
|
|
> ./build.sh [|LINUX] [|STA5_CSR_RELEASE|TAMUL_MARVEL_RELEASE]
|
|
|
|
```
|
|
|
|
then, result is collected in **./build/anwbtsrv_sdk**
|
|
|
|
|
|
|
|
# USAGE
|
|
|
|
1.Support HFP, A2DP, AVRCP, PBAP, .. AnW BT stack
|
|
|
|
2.Support Device Serarch & Pair, Call, Phonebook, Music, ...
|
|
|
|
|
|
|
|
# Customize on SDK (tamul_release-.zip) <a name="SDKRelease"></a>
|
|
|
|
1. unzip
|
|
|
|
2. in terminal entering ./anwbtsrv_sdk/Demo folder
|
|
|
|
3. setup tool-chain by command line (source ...) or edit in ./anwbtsrv_sdk/Demo/build_demo.sh
|
|
|
|
4. run make or build_demo.sh
|
|
|
|
```
|
|
|
|
> cd ./build/anwbtsrv_sdk/Demo
|
|
|
|
> source /opt/poky-tamul/2.5.1/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
|
|
|
|
> make or ./build_demo.sh
|
|
|
|
```
|
|
|
|
then, result is collected in **./Demo/btsrv**
|
|
|
|
<div style="page-break-after: always;"></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="page-break-after: always;"></div> |
|
|
|
\ No newline at end of file |