我正在开发一些代码从Windows CE5terminal,将数据发送到USB设备(在这种情况下的打印机)运行。 我有问题获得用于打开通信的端口的价值。 我曾尝试使用由驱动程序(USBport + GUID)在registry中写入的设备path以及其他许多变体。 我知道与设备通信应该只是“打开一个文件”来与设备在给定的内存地址进行通信。 我知道有现代的usb库,但这些将是没有用的这样一个旧的操作系统(我假设)。 我的总体目标是编写代码是VC ++,并使用JNI来包装用于Java应用程序(SE6)的代码。 有没有人可以举一个例子来说明“设备path”是什么样的? 或者如果还有其他东西我可以随意摆脱光线。 我注意到大多数现代USB库都有searchfunction,但如果我有设备path,我不相信searchfunction是必要的….
目前我正在尝试让代码在任何操作系统上运行,并且一直在使用Windows 7才能正常工作。 以下是一些代码片段:
const LPCTSTR portvalue = L“441ee000-4342-11d5-a184-00c04f60524d”; //定义了端口名称,即设备的读/写位置
int usbHandle = OpenUsb(portvalue); //打开文件/设备进行通信
C ++ USB通信
Archer T4UH USB无线适配器是否提供Linux驱动程序?
用Qt编程的USB编程
黑客窃取USB设备:在那里的任何程序?
如何在VCP模式下使用FDTI芯片?
/ * ** * ** * * 这里是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;
}
这可能知道在Ubuntu的设备安装和卸载时间?
libusb和poll / select
USB编程与Windows
用C#popupUSB驱动器
Prolific PL2303串口为250000bps
portName = "\LPT1:"; /* i use this for printing */
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。