Serial port WinCE与PC-USB通信

Serial port WinCE与PC-USB通信,serial-port,usb,windows-ce,activesync,serial-communication,Serial Port,Usb,Windows Ce,Activesync,Serial Communication,我们正在开发一些设备,我们需要为所需的功能之一找到好的解决方案 问题是,我们需要在PC上与WinCE 6.0(ARM)和Windows进行通信。 最简单的方法当然是COM端口,但在我们的情况下是不可能的(所有串行端口都在WinCE上使用,我们不想再添加一个)。 第二种选择是局域网,但对我们来说,它不是最好的选择,原因有几个 所以我们可以使用第三种选择。USB到USB通信,但如何做到这一点? 当然,WinCE是USB设备,PC是USB主机,所以所有硬件基础都满足要求 我们可以使用主动同步,但它几乎

我们正在开发一些设备,我们需要为所需的功能之一找到好的解决方案

问题是,我们需要在PC上与WinCE 6.0(ARM)和Windows进行通信。 最简单的方法当然是COM端口,但在我们的情况下是不可能的(所有串行端口都在WinCE上使用,我们不想再添加一个)。 第二种选择是局域网,但对我们来说,它不是最好的选择,原因有几个

所以我们可以使用第三种选择。USB到USB通信,但如何做到这一点? 当然,WinCE是USB设备,PC是USB主机,所以所有硬件基础都满足要求

我们可以使用主动同步,但它几乎没有问题: -WinCE 6.0不适用于WMDC(设备上的驱动程序在设备与PC连接后崩溃),我没有找到任何解决方案,因此在这种情况下,我们需要在PC端使用WinXP(旧的ActiveSync) -我们需要过滤与主动同步的通信,仅限于我们的应用程序,不允许使用其他未经授权的软件(我知道这是不可能获得的)

所以我们需要做的最好的方法就是通过USB进行通信,就像标准的COM(串行通信)一样。
问题是,我们需要在WinCE上编写驱动程序,也需要在Windows(PC)上编写驱动程序,还是有更好的解决方案?可能是WinCE 6.0的一些驱动程序会在PC端模拟虚拟COM(当然也允许在WinCE端对其进行标准读/写)?有人能告诉我是否存在类似的情况吗?

我们可能找到了解决问题的最佳方案。我们使用TCP/IP over ActiveSync(标准的USB WinSock连接)。这是可能的,因为ActiveSync为主机PC提供了一个IP地址。它可以通过类似的方式(在WinCE上)获取:


当然,这不是完整的示例,它只是一个示例:)

您能描述一下场景吗,WinCE设备应该做什么?传输一些文件,输出视频,传感器的数据?它与我们自己的通信协议一起使用,所以大多数情况下答案是二进制数据
std::string lIPAddress = "ppp_peer";
struct hostent * lH = gethostbyname(lIPAddress.c_str());

DEBUGMSG(ZONE_ERROR, (TEXT("Addr: %S\r\n"), lH->h_addr_list[0])); // just a debug info
lServerAddress.sin_addr.S_un.S_addr = *(u_long *)lH->h_addr_list[0];