0

我有以下代码片段通过 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(设备管理)无法选择“允许计算机关闭设备以节省能源”。

4

0 回答 0