【问题标题】:USB communications - Windows CE host terminal to usb device (printer)USB 通信 - Windows CE 主机终端到 USB 设备(打印机)
【发布时间】:2013-07-24 18:48:55
【问题描述】:

我正在开发一些代码以从 Windows CE5 终端运行,它将数据发送到 USB 设备(在本例中为打印机)。我在获取用于打开通信的端口的值时遇到问题。我曾尝试使用驱动程序(USBport + GUID)在注册表中写入的设备路径和许多其他变体,但都没有占上风。我知道与设备通信应该只是“打开一个文件”以在给定的内存地址与设备通信。我知道有现代的 USB 库,但这些在这么旧的操作系统上没有用(我假设)。我的总体目标是使用 VC++ 编写代码并使用 JNI 包装代码以在 Java 应用程序 (SE6) 中使用。任何人都可以举例说明示例“设备路径”可能是什么?或者,如果还有什么我想念的,请随时阐明。我注意到大多数现代 USB 库都有搜索功能,但如果我有设备路径,我不相信搜索功能是必要的....

目前我正在尝试让代码在任何操作系统上运行,并且一直在使用 Windows 7 只是为了让事情正常运行。下面是一些sn-ps的代码:

const LPCTSTR 端口值 = L"441ee000-4342-11d5-a184-00c04f60524d"; // 定义端口名,即要读取/写入的设备的位置

int usbHandle = OpenUsb(端口值); //打开文件/设备进行通信

/********这里是OpenUsb功能*************/ __declspec(dllexport) int _cdecl OpenUsb(const LPCTSTR portName) {

HANDLE activeUsbFileHandle = CreateFile(portName,                   //portname built in registry? need to get a WinCE5 vm going..? i belive so
                                 GENERIC_READ|GENERIC_WRITE,
                                 FILE_SHARE_READ|FILE_SHARE_WRITE, // comm devices must be opened w/exclusive-access
                                 NULL,                             // no security attributes
                                 OPEN_EXISTING,                    // comm devices must use OPEN_EXISTING
                                 FILE_ATTRIBUTE_NORMAL,            
                                 NULL);


cout << "Portname Mem Location: " << &portName;
cout << "\nThe portname passed in as: " << portName << endl;

commTimeouts.ReadIntervalTimeout = 0;
commTimeouts.ReadTotalTimeoutConstant = 500;
commTimeouts.ReadTotalTimeoutMultiplier = 0;
commTimeouts.WriteTotalTimeoutConstant = 5000;
commTimeouts.WriteTotalTimeoutMultiplier = 0;
SetCommTimeouts(activeUsbFileHandle, &commTimeouts);

return (int)activeUsbFileHandle;

}

【问题讨论】:

    标签: windows usb windows-ce


    【解决方案1】:
    portName = "\\LPT1:"; /* i use this for printing */             
    

    【讨论】:

    • OMFG,就这么简单!我已经在网上阅读了很多内容,其中有多少可能性是荒谬的。我看到使用 GUID + USB# yada yada yada 组合的直接连接。并不是说它完全可以工作,但我现在看到返回了一个有效的句柄值,所以谢谢你! :P 我会根据我的进度继续编辑这篇文章。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多