星期日, 20 12月 2020 12:24

高通QCC514x 蓝牙系列量产必备: ANC双声道PSKey升级工具的实现

给大家讲解“ANC双声道PSKey升级工具的实现”通过C++程序语言实现这个工具。
1、PSkey插曲 

QCC514x 蓝牙系列量与QCC512x,QCC302x 系列的PSKey 结构基本是一样的,
可以参阅 ADK 路径下\adk\docs\mib_keys\qcc514x_qcc304x。PSKey呢,何止千千万,在ADK 中也有相应展现!
在此小编把用到的主要 PSK 分为三类,虽然没有全部包含,但是大部分需要用的已经包含进来啦!
且看

往期回顾:

  • 一、设备信息类

" QUALCOMM QCC512x 与QCC302X 蓝牙系列量产必备:设备信息修改"

  • 二、通用MID类

" QUALCOMM QCC蓝牙系列量产必备:PSkey 在ADK 中的存储与访问"
" QUALCOMM QCC蓝牙系列量产必备:PSkey 在应用中的存储与访问"

  • 三、Audio ID 类

 “QCC514x 蓝牙系列量产必备:升级ANC双声道的 PSKey 结构”

 大家是不是很熟悉Audio ID 类,上一回刚讲的就是这一类啊,紧接着我们把这类PSKey 读写工具程序实现下,
那就闲言少叙,言归正传

 2、开发环境设置

 
2.1 BlueSuite 

QCC514x 与QCC302X一样基于ADK 的蓝牙系列在应用层,可以用BlueSuite3,当前安装的是BlueSuite 3.3.4 ,可以cd C:\Program Files (x86)\QTIL\BlueSuite 3.3.4 运用CMD 命令

cd C:\Program Files (x86)\QTIL\BlueSuite 3.3.4,可以通过里面的可执行程序执行一些命令。

如果量产的话需要运用BlueSuite 库来写量产工具,可以参阅BlueSuite 安装路径下的文档,此处用TestEngine 的库运用C语言程序来修改ANC PSKey 信息

在我们的 Bluesuite 接口中,

要以如下方式:

写人:tePsAudioWrite (iHandle, 0x204100, maxLen, value);

读取:tePsAudioRead(iHandle, 0x204100, valueLen,    

                               value, &readLen);

其中传入的 value 数组,是16位 无符号整型数组,需要由QACT 获取的8位无符号整型数组,
转换成16位 无符号整型数组,当作tePsAudioWrite的参数,就可以在量产的耳机上生效了。

 
图一BlueSuite 3 中TestEngine 接口

2.2 C++开发环境

开发环境:C++(Microsoft Visual Studio)

头文件:TestEngine.h

库文件:TestEngine.lib

运行环境:Windows 系统,TestEngine.dll 相关DLL,为了使得工具能够运行,
可以把TestEngine.dll 相关DLL所在文件夹路径:
C:\Program Files (x86)\QTIL\BlueSuite 3.2.1,设置成Path环境变量,
这样工具程序就可以动态调用DLL相关库运行了。

 
图二 设置成Path环境变量

3、开发流程

3.1 代码展示

打开
Microsoft Visual Studio 集成开发环境,新建 Win32-> console application,输入Project名BT_Info_Mag,选择console application—>Empty project->Finish 确认。

#include "include\\testengine.h"

#include “iostream”
#include“conio.h”

//#include

using namespace std;

 #define _ANC_PSK_READ_    //需要读取的宏定义

#define _ANC_PSK_WRITE_   //需要写入的宏定义

 

#define _LINE_TEMP_  2600

 uint16 StringX_to_UINT8(char* chavalueString,uint8*value);

uint16 OnAddHTFFile(uint8*value,uint32*psid);

 uint16 OnAddHTFFile(uint8*value,uint32*psid)

{

    uint16 len=0;

    FILE * fileHTF_IN=NULL;//fileHTF_IN  区

    fileHTF_IN = fopen("F:\\All_BT\\ANC\\parameters.htf" , "rt");

    if(fileHTF_IN==NULL){

         return 0;

    }

    char arZe[https://edit.wpgdadawant.com/uploads/news_file/blog/2020/2843/tinymce/03________________.jpg" alt="" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; max-width: 100%; height: auto;" />
图三 把TestEngine.lib 添加进来


3.2  运行结果

QCC514x 系列的板子,通过 TRBI200/USB连上PC, 运行应用工具,

蓝牙 ANC PSKey项就可以读写

#define _ANC_PSK_READ_ //需要读取的宏定义打开,可以得到如下运行结果,
读取板子中的 ANC PSKey

 #define _ANC_PSK_WRITE_打开,可以得到如下运行结果,
读取板子中的 ANC PSKey

查看 4146
麻喆

专栏编辑