NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

WL18xx TI Bluetooth Stack HFPM Demo App

From Texas Instruments Wiki
Jump to: navigation, search

Return to WL18xx AM335x TI Bluetooth Stack

Demo Overview[edit]

NoteNote: : This instructions can be used to run this demo on the AM335x Platform.
This demo allows users to evaluate TI's WL18xx device by using the AM335x platform. The Hands free profile allows the user to demonstrate the use of Hands-free profile on embedded device. The hands free profile is used to connect a headset or speakerphone with a mobile device to provide remote control and voice connections. The Hands-free profile supports two roles, Hands free headset and Audio Gateway. This document demonstrates how to use the hands free headset and audio gateway roles of the profile.


It is recommended that the user visits the kit setup Getting Started Guide for AM335x pages before trying the application described on this page.


Instructions for platform audio routing[edit]

The am335x and am437x platforms can route the Audio to the Microphone and Speakers Jacks on the development board.

AM335x-EVM[edit]

The audio can be routed only on development boards with the main board version 1.5 or later, Doughter board 1.2. Two audio devices should be added to the platform configuration- AM335xEVM and WILINK8BT. For reconfiguring the platform kernel, the user should download the SDK version 3.14.43 for the AM335x. After downloading the kernel and compilation under the Linux folder: ~/ti-processor-sdk-linux-am335x-evm-01.00.00.03/ . For the kernel download and compilation instruction follow the link: TI Linux Kernel Users Guid
For the BluetopiaPM environment follow the link: Bluetopia PM Build Process
When the setup is ready go to the kernel folder: ~/ti-processor-sdk-linux-am335x-evm-01.00.00.03/board-support/linux-3.14.43+gitAUTONIC+875c69b2c3-g875c89b .
Then copy the following patch to the kernel folder and type: "git apply 0001-New-Feature-BT-PCM-integration-on-the-AM335x-EVM.PATCH".
.
NoteNote: : Currently all Sitara boards 1.5 and later needs the following patch to route the Audio in HFRM Demo App:

Description Patch type Support for board Link to patch
HFP Audio route in the AM335x Sitara Patch Bug fix All AM335x variants <patch>


The patch requires recompiling the zImage:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
cp arch/arm/boot/zImage [target-rootfs]/boot/

After the new configurations done, the devices, AM335xEVM and WILINK8BT, should appear in /proc/asound/ folder on the platform's file system. The BluetopiaPM application version should fit the Bluetooth device, cc256x or wl18xx, for the audio to work.

NoteNote: When using a CC256x controller you will need to change the init script in order to enable AVPR. You can use the following command in the AM335x device terminal

cp -f /lib/firmware/TIInit_6.7.16_avpr_on.bts /lib/firmware/TIInit_6.7.16.bts


AM437x-EVMs[edit]

The audio can be routed on AM437x-GP-EVM. Following steps need to performed to the AM437x SDK + BluetopiaPM SD card in order to enable audio routing.

1. Download and apply the patch to the ti-processor-sdk-linux-AM437x-evm-xx.xx.xx.xx


NoteNote: This patch has been tested with ti-processor-sdk-linux-am335x-evm-02.00.02.11

Description Patch type Support for board Link to patch
HFP Audio route Patch for AM437x SDK Bug fx AM437x EVMs <patch>

navigate to the AM437x SDK directory

cd [SDK install dir]/board-support/linux-......

Apply the patch

patch -p1 < [patch file dir]/0001-Enable-BT-PCM-patch-for-AM437x.patch

2. Compile linux

cd [SDK install dir]
make linux

3. After the compilation is complete, copy the changes to SD card.

  • Copy Kernal Modules
cd [SDK install dir]/
source linux-devkit/environment-setup
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_install INSTALL_MOD_PATH=/media/<username>/rootfs
  • Copy dtb file
cp [SDK install dir]/board-support/linux-..../arch/arm/boot/dts/am437x-gp-evm.dtb /media/<username>/rootfs/boot
  • Copy zImage
cp [SDK install dir]/board-support/linux-..../arch/arm/boot/zImage /media/<username>/rootfs/boot

NoteNote: : When using the LinuxHFRE_AG and LinuxHFRE_HF applications of Bluetopia on AM437x-GP-EVM platform, the gstreamer commands in the LinuxHFRM_AG.c and LinuxHFRM_HF.c need to be updated for this platform to correctly route the audio. In these two source files, replace device=plughw:AM335xEVM with device=plughw:AM437xGPEVM and replace device=plughw:WILINK8BT with device=plughw:WILINKBT. Recompile the Bluetopia PM sample applications and Copy the updated LinuxHFRM applications to the SD card.

Running the Bluetooth Code[edit]

Once the am335x is initialized on the terminal, follow the instructions;
Enter to the Sample Application folder, for this example “cd BluetopiaPM/bin”

 root@am335x-evm:~# cd BluetopiaPM/bin/
 root@am335x-evm:~/BluetopiaPM/bin#


Demo Application[edit]

This section provides a description of how to use the demo application to connect smart phone over Bluetooth HFP profile, the same for the second smart phone. Bluetooth HFP is a simple Client-Server connection process with one side, the client, operating as the Audio-Gateway role and the other, the server, operating as the Headset role. We will setup the boards- one as a Headset server and the second one as Audio gateway Client.

Hands free Profile (HFP)[edit]

HFPM Client (HFRM_AG)[edit]

To verify HFRM_AG client role functionality, first run the "LinuxHFRM_AG" executable, initialize, and power on the local device if necessary.

For initialization and power-up automatic add the -i argument (Also registers the HFP profile and starts inquiry-page scans). The user can add the device name after the arguments as a string. The example start command adds the "Sitara-BT-AG" as device name.

  • For debugging with HDK platform as WILINK8 device please add the -k option.

Start the Server and the Demo application by typing “./SS1BTPM & ./LinuxHFRM_AG -i Sitara-BT-AG_WL18XX”. For CC256X replace the WL18XX with CC256X.

root@am335x-evm:~/BluetopiaPM/bin# ./SS1BTPM & ./LinuxHFRM_AG_WL18XX -i Sitara-BT-AG
[1] 30329

Now the help screen is displayed


argc=3
ParseCmdLine:: 1) -i
ParseCmdLine:: 2) Sitara-BT-AG
BTPM_Initialize() Success: 0.
DEVM_RegisterEventCallback() Success: 5.
echo 117 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio117/direction
echo 0 > /sys/class/gpio/gpio117/value
echo 1 > /sys/class/gpio/gpio117/value
BT COMM PORT (/dev/ttyS1): 1
Changing HCI baud rate to 3000000
Status: Executing BTS Script /lib/firmware/TIInit_11.8.32.bts.
Status: BTS Script successfully executed.
DEVM_PowerOnDevice() Success: 0.
Attempting to set Device Name to: "Sitara-BT-AG".

Device Powered On.
Hands Free AG cc256x>DEVM_UpdateLocalDeviceProperties() Success: 0.
Attempting to set Class Of Device to: 0x040424.
DEVM_UpdateLocalDeviceProperties() Success: 0.
Attempting to set Discoverability Mode: Limited (0 Seconds).
DEVM_UpdateLocalDeviceProperties() Success: 0.
Attempting to set Connectability Mode: Connectable (0 Seconds).
DEVM_UpdateLocalDeviceProperties() Success: 0.
Attempting to set Pairability Mode: Pairable (0 Seconds).
DEVM_UpdateLocalDeviceProperties() Success: 0.
DEVM_RegisterAuthentication() Success: 5.
HFRM_Register_Event_Callback() Success: 1.
killall: gst-launch-1.0: no process killed
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock
******************************************************************
* Command Options: 1) Initialize                                 *
*                  2) Cleanup                                    *
*                  3) QueryDebugZoneMask                         *
*                  4) SetDebugZoneMask                           *
*                  5) ShutdownService                            *
*                  6) RegisterEventCallback,                     *
*                  7) UnRegisterEventCallback,                   *
*                  8) QueryDevicePower                           *
*                  9) SetDevicePower                             *
*                  10)QueryLocalDeviceProperties                 *
*                  11)SetLocalDeviceName                         *
*                  12)SetLocalClassOfDevice                      *
*                  13)SetDiscoverable                            *
*                  14)SetConnectable                             *
*                  15)SetPairable                                *
*                  16)StartDeviceDiscovery                       *
*                  17)StopDeviceDiscovery                        *
*                  18)QueryRemoteDeviceList                      *
*                  19)QueryRemoteDeviceProperties                *
*                  20)AddRemoteDevice                            *
*                  21)DeleteRemoteDevice                         *
*                  22)DeleteRemoteDevices                        *
*                  23)PairWithRemoteDevice                       *
*                  24)CancelPairWithRemoteDevice                 *
*                  25)UnPairRemoteDevice                         *
*                  26)QueryRemoteDeviceServices                  *
*                  27)RegisterAuthentication                     *
*                  28)UnRegisterAuthentication                   *
*                  29)PINCodeResponse                            *
*                  30)PassKeyResponse                            *
*                  31)UserConfirmationResponse                   *
*                  32)ChangeSimplePairingParameters              *
*                  33)ConnectDevice                              *
*                  34)DisconnectDevice                           *
*                  35)ConnectionRequestResponse                  *
*                  36)ManageAudio                                *
*                  37)DisableRemoteSoundEnhancement              *
*                  38)SetSpeakerGain                             *
*                  39)SetMicrophoneGain                          *
*                  40)QueryHandsFreeServices                     *
*                  41)ChangeIncomingConnectionFlags              *
*                  42)UpdateCurrentControlIndicatorStatus        *
*                  43)SendCallWaitingNotification                *
*                  44)SendCallLineIdentificationNotification     *
*                  45)RingIndication                             *
*                  46)EnableRemoteInBandRingToneSetting          *
*                  47)VoiceTagResponse                           *
*                  48)SendCurrentCallsList                       *
*                  49)SendNetworkOperatorSelection               *
*                  50)SendExtendedErrorResult                    *
*                  51)SendSubscriberNumberInformation            *
*                  52)SendIncomingCallState                      *
*                  53)SendTerminatingResponse                    *
*                  54)EnableArbitraryCommandProcessing           *
*                  55)SendArbitraryResponse                      *
*                  56)SendSelectCodec                            *
*                  57)HFRRegisterEventCallback                   *
*                  58)HFRUnRegisterEventCallback                 *
*                  59)HFRRegisterDataCallback                    *
*                  60)HFRUnRegisterDataCallback                  *
*                  61)SetSCOTestMode                             *
*                  62)EnableBluetoothDebug                       *
*                  Help, Quit.                                   *
******************************************************************
Hands Free AG wl18xx>Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock

  • If the application started with the -i option, skip to section e):
a) Initialize the profile by typing “1 1” or “Initialize 1”.
b) Powering up the Bluetooth device by typing “9 1” or "SetDevicePower 1”, if the device is already powered up you’ll receive an error that the device is already powered up
Hands Free AG wl18xx>Initialize 1
Hands Free AG wl18xx>SetDevicePower 1
c) Register Authentication
Hands Free AG wl18xx>RegisterAuthentication

DEVM_RegisterAuthentication() Success: 5.
Hands Free AG wl18xx>
d) Register HFP Event and Data Callbacks.
Usage: HFRRegisterEventCallback [(0 = Non-Control Callback, 1 = Control Callback)].
Hands Free AG wl18xx>HFRRegisterEventCallback 1

HFRM_Register_Event_Callback() Success: 3.
Hands Free AG wl18xx>
Hands Free AG wl18xx>HFRRegisterDataCallback

HFRM_Register_Data_Event_Callback() Success: 4.
Hands Free AG wl18xx>
e) Before we can make a connection, we need to check the RFCOMM ID, use QueryRemoteDeviceServices function in order to discover SDP.
Hands Free AG wl18xx>QueryRemoteDeviceServices 84DD209C58DD 1

Attempting Query Remote Device 84DD209C58DD For Services.
DEVM_QueryRemoteDeviceServices() Success: 0, Total Number Service Bytes: 0.
Hands Free AG wl18xx>
Remote Device Properties Changed.
BD_ADDR:       84DD209C58DD
Device Flags:  0x80000049
Connect State: TRUE
Hands Free AG wl18xx>
Remote Device 84DD209C58DD Services Status: BR/EDR, SUCCESS.
Hands Free AG wl18xx>
Remote Device Properties Changed.
BD_ADDR:       84DD209C58DD
Device Flags:  0x80000149
Serv. Known  : TRUE
Hands Free AG wl18xx>
Remote Device Properties Changed.
BD_ADDR:       84DD209C58DD
Device Flags:  0x80000101
Connect State: FALSE
Hands Free AG wl18xx>
Hands Free AG wl18xx>QueryRemoteDeviceServices 84DD209C58DD 0 2000

Attempting Query Remote Device 84DD209C58DD For Services.
DEVM_QueryRemoteDeviceServices() Success: 813, Total Number Service Bytes: 813.
Returned Service Data (813 Bytes):...
Service Record: 4:
    Attribute ID 0x0000
       Type: Unsigned Int = 0x00010004
    Attribute ID 0x0001
       Type: Data Element Sequence
          Type: UUID_16 = 0x111E
          Type: UUID_16 = 0x1203
    Attribute ID 0x0002
       Type: Unsigned Int = 0x00000005
    Attribute ID 0x0004
       Type: Data Element Sequence
          Type: Data Element Sequence
             Type: UUID_16 = 0x0100
          Type: Data Element Sequence
             Type: UUID_16 = 0x0003
             Type: Unsigned Int = 0x01
    Attribute ID 0x0006
       Type: Data Element Sequence
          Type: Unsigned Int = 0x656E
          Type: Unsigned Int = 0x006A
          Type: Unsigned Int = 0x0100
    Attribute ID 0x0009
       Type: Data Element Sequence
          Type: Data Element Sequence
             Type: UUID_16 = 0x111E
             Type: Unsigned Int = 0x0106
    Attribute ID 0x0100
       Type: Text String = Hands Free
    Attribute ID 0x0311
       Type: Unsigned Int = 0x003F

NoteNote: : The RFCOMM we are searching according to the spec is "UUID_16 = 0x0003", that means the port id is "Unsigned Int = 0x01"

f) Connect to the Heads free device

{{note}: You may be required to pair with the device, if so, use "UserConfirmationResponse" command

Respond with the command: UserConfirmationResponse
Hands Free AG wl18xx>UserConfirmationResponse 123

DEVM_AuthenticationResponse(), User Confirmation Response Success.
Hands Free AG wl18xx>
Usage: Connect [BD_ADDR] [Port Number (optional)] [Connection Flags (optional - 0 = No Flags, 1 = Authentication, 2 = Encryption, 3 = Authentication/Encryption)].
Hands Free AG wl18xx>ConnectDevice 84DD209C58DD 1

HFRM_Connect_Remote_Device: Function Successful.
Hands Free AG wl18xx>
Remote Device Properties Changed.
BD_ADDR:       84DD209C58DD
Device Flags:  0x800001CD
Connect State: TRUE
Hands Free AG wl18xx>
Remote Device Properties Changed.
BD_ADDR:       84DD209C58DD
Device Flags:  0x800001DD
Encrypt State: TRUE
Hands Free AG wl18xx>
hetHFRConnectionStatus, BD_ADDR: 84DD209C58DD, Type: hctAudioGateway, Status: 0.
Hands Free AG wl18xx>
hetHFRConnected, BD_ADDR: 84DD209C58DD, Type: hctAudioGateway.
Hands Free AG wl18xx>
hetHFRConnected, BD_ADDR: 84DD209C58DD, Type: hctAudioGateway.
Hands Free AG wl18xx>
hetHFRAvailableCodecListIndication, BD_ADDR: 84DD209C58DD, Num Codecs: 2:
  Codec ID: 1
  Codec ID: 2
Hands Free AG wl18xx>
hetHFRServiceLevelConnectionEstablished, BD_ADDR: 84DD209C58DD, Type: hctAudioGateway, RemoteSupportedFeaturesValid: TRUE, RemoteSupportedFeatures: 0x000000FF, RemoteCallHoldMultipartySupport: 0x00000000
Hands Free AG wl18xx>
hetHFRServiceLevelConnectionEstablished, BD_ADDR: 84DD209C58DD, Type: hctAudioGateway, RemoteSupportedFeaturesValid: TRUE, RemoteSupportedFeatures: 0x000000FF, RemoteCallHoldMultipartySupport: 0x00000000
Hands Free AG wl18xx>
At the server side (When using AM335x also as a Hands Free headset device) you will see
Hands Free wl18xx>
hetHFRConnected, BD_ADDR: 84DD209362B6, Type: hctHandsFree.
Hands Free wl18xx>
hetHFRConnected, BD_ADDR: 84DD209362B6, Type: hctHandsFree.
Hands Free wl18xx>
hetHFRControlIndicatorStatusConfirmation, BD_ADDR: 34B1F7DF7BB3, Description: SERVICE, Value: FALSE.
Hands Free wl18xx>
hetHFRControlIndicatorStatusConfirmation, BD_ADDR: 34B1F7DF7BB3, Description: CALL, Value: FALSE.
Hands Free wl18xx>
hetHFRControlIndicatorStatusConfirmation, BD_ADDR: 34B1F7DF7BB3, Description: CALLSETUP, Value: 0.
Hands Free wl18xx>
hetHFRControlIndicatorStatusConfirmation, BD_ADDR: 34B1F7DF7BB3, Description: CALLHELD, Value: 0.
Hands Free wl18xx>
hetHFRControlIndicatorStatusConfirmation, BD_ADDR: 34B1F7DF7BB3, Description: SIGNAL, Value: 0.
Hands Free wl18xx>
hetHFRControlIndicatorStatusConfirmation, BD_ADDR: 34B1F7DF7BB3, Description: ROAM, Value: FALSE.
Hands Free wl18xx>
hetHFRControlIndicatorStatusConfirmation, BD_ADDR: 34B1F7DF7BB3, Description: BATTCHG, Value: 0.
Hands Free wl18xx>
hetHFRServiceLevelConnectionEstablished, BD_ADDR: 34B1F7DF7BB3, Type: hctHandsFree, RemoteSupportedFeaturesValid: TRUE
RemoteSupportedFeatures:
   THREE_WAY_CALLING SOUND_ENHANCEMENT VOICE_RECOGNITION REJECT_CALL ENHANCED_CALL_STATUS EXTENDED_ERROR_RESULT_CODES
RemoteCallHoldMultipartySupport:
   RELEASE_ALL_HELD_CALLS RELEASE_ALL_ACTIVE_CALLS_ACCEPT_WAITING_CALL PLACE_ALL_ACTIVE_CALLS_ON_HOLD_ACCEPT_THE_OTHER ADD_A_HELD_CALL_TO_CONVERSATION CONNECT_TWO_CALLS_DISCONNECT_SUBSCRIBER
Hands Free wl18xx>
hetHFRServiceLevelConnectionEstablished, BD_ADDR: 84DD209362B6, Type: hctHandsFree, RemoteSupportedFeaturesValid: TRUE
RemoteSupportedFeatures:
   THREE_WAY_CALLING SOUND_ENHANCEMENT VOICE_RECOGNITION REJECT_CALL ENHANCED_CALL_STATUS EXTENDED_ERROR_RESULT_CODES
RemoteCallHoldMultipartySupport:
   RELEASE_ALL_HELD_CALLS RELEASE_ALL_ACTIVE_CALLS_ACCEPT_WAITING_CALL PLACE_ALL_ACTIVE_CALLS_ON_HOLD_ACCEPT_THE_OTHER ADD_A_HELD_CALL_TO_CONVERSATION CONNECT_TWO_CALLS_DISCONNECT_SUBSCRIBER
Hands Free wl18xx>
g) Sending indications - Ring indication.
Hands Free AG wl18xx>RingIndication 84DD209C58DD

HFRM_Ring_Indication: Function Successful.
Hands Free AG wl18xx>
At the server side (When using AM335x also as a Hands Free headset device) you will see
hetHFRRingIndication, BD_ADDR: 34B1F7DF7BB3.
Hands Free wl18xx>
h) Sending indications - Caller Id notification of Call Waiting.
In order to be able to send this notification, you'll need this operation to be allowed.
Hands Free AG wl18xx>
hetHFRCallWaitingNotificationActivationIndication, BD_ADDR: 84DD209C58DD, Enable: 1.
Hands Free AG wl18xx>

After this operation is allowed, use "SendCallWaitingNotification".

Usage: SendCallWaitingNotification [BD_ADDR] [PhoneNumber].
Hands Free AG wl18xx>SendCallWaitingNotification 84DD209C58DD 0505943397

HFRM_Send_Call_Waiting_Notification: Function Successful.
Hands Free AG wl18xx>
At the server side (When using AM335x also as a Hands Free headset device) you will see
Hands Free wl18xx>
hetHFRCallWaitingNotificationIndication, BD_ADDR: 34B1F7DF7BB3, Phone Number 0505943397.
Hands Free wl18xx>
i) Sending indications - Caller Id notification of Call Line.
In order to be able to send this notification, you'll need this operation to be allowed.
Hands Free AG wl18xx>
hetHFRCallLineIdentificationNotificationActivationIndication, BD_ADDR: 84DD209C58DD, Enabled: 1
Hands Free AG wl18xx>

After this operation is allowed, use "SendCallLineIdentificationNotification".

Usage: SendCallLineIdentificationNotification [BD_ADDR] [PhoneNumber].
Hands Free>SendCallLineIdentificationNotification 84DD209C58DD 0505943397

HFRM_Send_Call_Line_Identification_Notification: Function Successful.
Hands Free AG wl18xx>
At the server side (When using AM335x also as a Hands Free headset device) you will see
Hands Free wl18xx>
hetHFRCallLineIdentificationNotificationIndication, BD_ADDR: 34B1F7DF7BB3, Phone Number 0505943397.
Hands Free wl18xx>


HFPM Server (HFRM_HF)[edit]

To verify HFRM_HF server role functionality, first run the "LinuxHFRM_HF" executable, initialize, and power on the local device if necessary.

For initialization and power-up automatic add the -i argument (Also registers the HFP profile and starts inquiry-page scans). The user can add the device name after the arguments as a string. The example start command adds the "Sitara-BT-HS" as device name.

  • For debugging with HDK platform as WILINK8 device please add the -k option.

Start the Server and the Demo application by typing “./SS1BTPM & ./LinuxHFRM_HF -i Sitara-BT-HS_WL18XX”. For CC256X replace the WL18XX with CC256X.

root@am335x-evm:~/Distribution/BluetopiaPM/bin# ./SS1BTPM & ./LinuxHFRM_HF_WL18XX -i Sitara-BT-HS
[1] 31491

Now the help screen is displayed


argc=3
ParseCmdLine:: 1) -i
ParseCmdLine:: 2) Sitara-BT-HS
BTPM_Initialize() Success: 0.
DEVM_RegisterEventCallback() Success: 5.
echo 117 > /sys/class/gpio/export
sh: line 0: echo: write error: Device or resource busy
echo out > /sys/class/gpio/gpio117/direction
echo 0 > /sys/class/gpio/gpio117/value
echo 1 > /sys/class/gpio/gpio117/value
BT COMM PORT (/dev/ttyS1): 1
Changing HCI baud rate to 3000000
Status: Executing BTS Script /lib/firmware/TIInit_6.7.16.bts.
Status: BTS Script successfully executed.
DEVM_PowerOnDevice() Success: 0.
Attempting to set Device Name to: "Sitara-BT-HS".

Device Powered On.
Hands Free cc256x>DEVM_UpdateLocalDeviceProperties() Success: 0.
Attempting to set Class Of Device to: 0x040424.
DEVM_UpdateLocalDeviceProperties() Success: 0.
Attempting to set Discoverability Mode: Limited (0 Seconds).
DEVM_UpdateLocalDeviceProperties() Success: 0.
Attempting to set Connectability Mode: Connectable (0 Seconds).
DEVM_UpdateLocalDeviceProperties() Success: 0.
Attempting to set Pairability Mode: Pairable (0 Seconds).
DEVM_UpdateLocalDeviceProperties() Success: 0.
DEVM_RegisterAuthentication() Success: 5.
HFRM_Register_Event_Callback() Success: 1.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock
******************************************************************
* Command Options: 1) Initialize                                 *
*                  2) Cleanup                                    *
*                  3) QueryDebugZoneMask                         *
*                  4) SetDebugZoneMask                           *
*                  5) ShutdownService                            *
*                  6) RegisterEventCallback,                     *
*                  7) UnRegisterEventCallback,                   *
*                  8) QueryDevicePower                           *
*                  9) SetDevicePower                             *
*                  10)QueryLocalDeviceProperties                 *
*                  11)SetLocalDeviceName                         *
*                  12)SetLocalClassOfDevice                      *
*                  13)SetDiscoverable                            *
*                  14)SetConnectable                             *
*                  15)SetPairable                                *
*                  16)StartDeviceDiscovery                       *
*                  17)StopDeviceDiscovery                        *
*                  18)QueryRemoteDeviceList                      *
*                  19)QueryRemoteDeviceProperties                *
*                  20)AddRemoteDevice                            *
*                  21)DeleteRemoteDevice                         *
*                  22)DeleteRemoteDevices                        *
*                  23)PairWithRemoteDevice                       *
*                  24)CancelPairWithRemoteDevice                 *
*                  25)UnPairRemoteDevice                         *
*                  26)QueryRemoteDeviceServices                  *
*                  27)RegisterAuthentication                     *
*                  28)UnRegisterAuthentication                   *
*                  29)PINCodeResponse                            *
*                  30)PassKeyResponse                            *
*                  31)UserConfirmationResponse                   *
*                  32)ChangeSimplePairingParameters              *
*                  33)ConnectDevice                              *
*                  34)DisconnectDevice                           *
*                  35)ConnectionRequestResponse                  *
*                  36)ManageAudio                                *
*                  37)DisableRemoteSoundEnhancement              *
*                  38)SetSpeakerGain                             *
*                  39)SetMicrophoneGain                          *
*                  40)QueryHandsFreeServices                     *
*                  41)ChangeIncomingConnectionFlags              *
*                  42)EnableRemoteIndicatorNotification          *
*                  43)EnableRemoteCallWaitingNotification        *
*                  44)EnableRemoteCallerIDNotification           *
*                  45)QueryRemoteIndicatorsStatus                *
*                  46)QueryRemoteCallHoldSupport                 *
*                  47)SendCallHoldSelection                      *
*                  48)DialNumber                                 *
*                  49)MemoryDial                                 *
*                  50)ReDialLastNumber                           *
*                  51)AnswerCall                                 *
*                  52)HangupCall                                 *
*                  53)SendDTMF                                   *
*                  54)SetVoiceRecognitionActivation              *
*                  55)SendVoiceTagRequest                        *
*                  56)QueryOperator                              *
*                  57)SetOperatorFormat                          *
*                  58)EnableErrorReports                         *
*                  59)QueryPhoneNumber                           *
*                  60)QueryRespHold                              *
*                  61)SendRespHold                               *
*                  62)QueryCallList                              *
*                  63)SendArbitraryCommand                       *
*                  64)SendAvailableCodecs                        *
*                  65)HFRRegisterEventCallback                   *
*                  66)HFRUnRegisterEventCallback                 *
*                  67)HFRRegisterDataCallback                    *
*                  68)HFRUnRegisterDataCallback                  *
*                  69)SetSCOTestMode                             *
*                  70)EnableBluetoothDebug                       *
*                  Help, Quit.                                   *
******************************************************************
Hands Free cc256x>Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock

  • If the application started without the -i option:
a) Initialize the profile by typing “1 1” or “Initialize 1”.
b) Powering up the Bluetooth device by typing “9 1” or "SetDevicePower 1”, if the device is already powered up you’ll receive an error that the device is already powered up
Hands Free wl18xx>Initialize 1
Hands Free wl18xx>SetDevicePower 1

:c) Register HFP Event and Data Callbacks.
<pre>
Usage: HFRRegisterEventCallback [(0 = Non-Control Callback, 1 = Control Callback)].
Hands Free wl18xx>HFRRegisterEventCallback 1

HFRM_Register_Event_Callback() Success: 3.
Hands Free wl18xx>
Hands Free wl18xx>HFRRegisterDataCallback

HFRM_Register_Data_Event_Callback() Success: 4.
Hands Free wl18xx>
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article WL18xx TI Bluetooth Stack HFPM Demo App here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article WL18xx TI Bluetooth Stack HFPM Demo App here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article WL18xx TI Bluetooth Stack HFPM Demo App here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article WL18xx TI Bluetooth Stack HFPM Demo App here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article WL18xx TI Bluetooth Stack HFPM Demo App here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article WL18xx TI Bluetooth Stack HFPM Demo App here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article WL18xx TI Bluetooth Stack HFPM Demo App here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article WL18xx TI Bluetooth Stack HFPM Demo App here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article WL18xx TI Bluetooth Stack HFPM Demo App here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity