WinCE:无法打开创建的蓝牙虚拟COM端口

时间:2018-04-15 00:43:26

标签: bluetooth windows-ce ctypes python-2.5 pythonce

我正在尝试让蓝牙打印机在WinCE手持设备上运行。该设备已在Control Panel\Bluetooth Device Property中设置为受信任,已通过身份验证。

RegisterDevice调用返回设备句柄,没有错误,但是当我尝试使用OPEN_EXISTING通过CreateFileW打开端口时,我得到INVALID_HANDLE_VALUE,系统错误代码为55 {{ 1}}。

我是WinCE API的新手,也是C ++的新手。我无法确定问题所在。

我的设置有什么问题?在通过此bt-vcom与打印机通信之前,还有其他额外步骤吗?

我的设备是WM5 HTC Diamond手机。在ERROR_DEV_NOT_EXIST> Communication Manager> Bluetooth部分中,我无法看到我创建的任何端口(但它们似乎确实已创建:在第三方应用中列出,例如{ {1}},并在尝试使用这些端口在系统GUI中创建虚拟COM端口时报告为已占用。)。如果我在这里在系统GUI中创建了不同的COM Port,Python可以通过新端口以编程方式与打印机通信。 毕竟我不是在使用相同的API ...为什么我的工作不起作用?

我的代码改编自https://msdn.microsoft.com/en-us/library/ms881004.aspx,如下所示:

TerminalCE

1 个答案:

答案 0 :(得分:0)

  

在Windows Mobile上,库中存在两种创建端口的方法,   第一个是类BluetoothSerialPort,这会创建一个连接   立即 _但它使用的底层API相当不可靠,并且   它似乎根本不适用于各种设备类型._ 第二个是   BluetoothDeviceInfo.SetServiceState和Win32一样,这是手动的   配置必要的注册表设置,但可靠   在端口可用之前需要重新启动,并再次使用名称   不返回新端口。

https://github.com/inthehand/32feet/wiki/Bluetooth-Serial-Ports

完全浪费时间......

PS:要控制蓝牙打印机,将winsock功能包装在ctypes中,并通过蓝牙套接字与打印机通信,经过一些试验和错误后可以正常工作。