我有以下代码片段通过 USB 设备(显示 Posiflex PD-2800 for POS)显示 HELLO WORLD。
我使用 GiovynetDrive 库来管理虚拟 COM 端口。
代码运行完美(假设 COM3 可用)。
SerialPort = new SerialPort();
Parameters settings = new Parameters();
settings.setPort("COM3");
settings.setBaudRate(Baud._19200);
Port = new Com(settings); //<<--Seting crash when restart
Port.sendString("HELLO WORLD");
Port.close();
我的问题是,当我关闭计算机时,它并没有关闭设备(USB 电源)。这导致下次启动,代码抛出异常:
java.lang.Exception: Error setting serial port COM3 state.
at giovynet.nativelink.SerialPort.openPortC(Native Method)
at giovynet.serial.Com.<init>(Com.java:48)
.........
这迫使我拔下并插入 USB 设备,然后它又可以正常工作了。
我认为 SO 的这种行为是可配置的,但我不知道。
更新:
当 USB 设备处于重新启动挂起状态时,我可以使用纯文本打印机(SO 的通用驱动程序)毫无问题地进行打印测试。然后我可以通过我的查看器看到打印测试,但从我的 java 代码中仍然无法工作,直到我拔掉它。
SO是Windows XP,并且USB根HUB(设备管理)无法选择“允许计算机关闭设备以节省能源”。