2010-04-18 115 views
4

我有以下设置的系统: Bluetooth connected to GSM module using the PCM lines and GSM module connected to the AC97 codec using analog lines http://www.freeimagehosting.net/uploads/4a0c9bc0b2.png
我用:音频路由到蓝牙免提设备

  • 的Windows CE 6.0 R3
  • 微软蓝牙堆栈,包括所有配置文件
  • Motorola H500
  • 音频网关服务启动并运行(通过services listcmd中检查)
  • GSM模块功能正常 - 我可以设置拨出电话和接听电话。
  • 蓝牙是功能 - A2DP规范播放音乐摩托罗拉耳机(不记得模型现在)

我想使用耳机设备保持一个对话。我已将所有蓝牙组件包含在目录中。

我使用我写的应用程序与设备配对。连接完成后,我将设备地址和耳机配置文件的GUID存储在[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\AudioGateway\Device\1]中,以便AG能够知道它已连接设备。

我也将[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\AudioGateway\MapAudioToPcmMode]设置为0,因此BTD.dll将知道不承担SCO连接的所有权。

在我的BT芯片(Wi2Wi)中,它说PCM与SCO连接一起工作,但不是常规的HCI堆栈。因此,我现在试图看看如何通过PCM接口告诉BT芯片为特定SCO连接路由音频。

所以我的问题如下:

  1. 我靠在相信我不需要BTScoSnd和AudioGateway驱动程序,但我不知道。有人能证实这一点吗?
  2. 如何在Windows CE下发送BT控制器特定命令的固件?

回答

2

终于解决了......

别的不说我做错了,我设置的蜂窝模块与错误的PCM接口(它在这些2)工作。所以现在我有一个耳机连接可以工作(嘈杂,但工作)。

最后,我有AG运行和BTScoSnd驱动程序运行。我与耳机配对,BTScoSnd驱动程序创建与设备的SCO链接。然后给蜂窝模块命令,将所有音频转移到正确的 PCM接口上,然后在耳机中同时接入音频输入和音频输出。所有链路处理都由BT控制器(基于BluetoothCore4 CSR的芯片)完成,该控制器默认配置为将SCO连接路由到PCM接口,而不通过HCI层。

AG根据耳机和Hands-free profile specifications需要。

我还需要将固件设置为正确的配置。为此,我使用了Linux的BCCMD工具。使用Windows CE驱动程序通过HCI执行此操作需要很长时间才能实现。