浏览网络发现在宝岛台湾的一些网站有很多有趣而且质量高的博客,特意搬过来和大家一起分享学习下。





QCC512x 与QCC302X基于ADK6.X 的蓝牙系列设备信息修改,可以用BlueSuite3,当前安装的是BlueSuite 3.2.1 ,可以cd C:\Program Files (x86)\QTIL\BlueSuite 3.2.1 运用CMD 命令

cd C:\Program Files (x86)\QTIL\BlueSuite 3.2.1。

详见 ADK6.X  configcmd  命令。   如果量产的话需要运用BlueSuite 库来写量产工具,可以参阅BlueSuite 安装路径下的文档,此处用TestEngine 的库运用C++语言程序来修改设备信息

image.png

1、开发环境设置

开发环境: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相关库运行了。

image.png

2、开发流程

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

添加 BT_Info_Mag.cpp,代码如下:
#include "include\\testengine.h"
  • #include
  • #include
  • #include
  • #include
  • #include
  • #include
  • #include
  • #include
  • #include
  • using namespace std;
  • char _pskey_bdaddr_[]  =  "{0xff03,0x5B,0x02}";//蓝牙地址
  • char _devicename_[] = ""QCC302X-Self_Left"";//蓝牙名字
  • uint32 iHandle(0);
  • uint16 maxLen(256);
  • uint16 count(0);
  • static const char* const CFG_DB_PARAM = "hyd.sdb:QCC512X_CONFIG";
  • int main(int argc, char** argv){
  •     uint32 iHandle = 0;
  •     cout << "Trying to connect..." << endl;
  •     iHandle = openTestEngine(TRB, "1", 0, 5000, 0);
  •     //iHandle = openTestEngine(USBDBG, "1", 0, 5000, 0);
  •     if(iHandle != 0)
  •     {
  •          cout << "Connected!" << endl;
  •          // Perform all your testing here
  •          // Initialise the configuration cache
  •          int32 success = teConfigCacheInit(iHandle, CFG_DB_PARAM);
  •          // Read the configuration into the cache from the device
  •          uint16 unused = 0;
  •          if (success == TE_OK)
  •          {
  •              success = teConfigCacheRead(iHandle, NULL, unused);
  •          }
  •          else
  •          {
  •              cout << "teConfigCacheRead failed!" << endl;
  •          }
  •         
  •          // Write Bluetooth address
  •          if (success == TE_OK)
  •          {
  •              success = teConfigCacheWriteItem(iHandle, "bt15:PSKEY_BDADDR", _pskey_bdaddr_);
  •              if (success != TE_OK)
  •              {
  •                   cout << "curator15:PSKEY_BDADDR returned error" << endl;
  •              }
  •              else
  •              {
  •                   cout << "curator15:changed PSKEY_BDADDR, successful " << endl;
  •              }
  •          }
  •          // Write Friendly name
  •          {
  •              success = teConfigCacheWriteItem(iHandle, "bt15:PSKEY_DEVICE_NAME", _devicename_);
  •              if (success != TE_OK)
  •              {
  •                   cout << "curator15:PSKEY_DEVICE_NAME returned error" << endl;
  •              }
  •              else
  •              {
  •                   cout << "curator15:PSKEY_DEVICE_NAME successful " << endl;
  •              }
  •          }
  •          if (success == TE_OK)
  •          {
  •              success = teConfigCacheWrite(iHandle, NULL, unused);
  •          }
  •          {
  •              char value[1000];
  •              uint32 maxLen;
  •              success = teConfigCacheReadItem(iHandle, "bt15:PSKEY_BDADDR", value, &maxLen);
  •              if (success != TE_OK)
  •              {
  •                   cout << "curator15:PSKEY_BDADDR failed" << endl;
  •              }
  •              else
  •              {
  •                   printf("BT Add:%s",value);
  •                   cout << "curator15:PSKEY_BDADDR successful " << endl;
  •              }
  •          }     
  •          //////readout the Bluetooth Name
  •          if (success == TE_OK)
  •          {
  •              success = teConfigCacheRead(iHandle, NULL, unused);
  •          }
  •          {
  •              char value[1000];
  •              uint32 maxLen;
  •              success = teConfigCacheReadItem(iHandle, "bt15:PSKEY_DEVICE_NAME", value, &maxLen);
  •              if (success != TE_OK)
  •              {
  •                   cout << "curator15:PSKEY_DEVICE_NAME failed" << endl;
  •              }
  •              else
  •              {
  •                   printf("BT Name:%s",value);
  •                   cout << "curator15:PSKEY_DEVICE_NAME successful " << endl;
  •              }
  •          }  
  •          closeTestEngine(iHandle);
  •     }
  •     else
  •     {
  •          cout << "Failed to connect" << endl;
  •     }
  •     getch();
  • }
  • 复制代码


    然后把TestEngine.lib 添加进来,就可以编译通过
    image.png