Java:与设备管理器未识别为 COM 的 3D 打印机通信

问题描述

我开发了一个 Java 工具,可以使用 Windows 10 将 G 代码发送到 3D 打印机。它适用于所有使用基于 arduino 的硬件控制器的 3D 打印机。当我将它们连接到计算机时,打印机控制器将被识别为 COM 端口并分配一个端口号。我可以使用串行通信协议 (RXTX) 轻松连接到分配 COM 端口、与 3D 打印机通信并打印我的 STL 文件

但是,最近我买了一台新的 3D 打印机,当我将它连接到计算机时,设备管理器未将其识别为 COM 端口。相反,我必须安装一个驱动程序,并且打印机现在在设备管理器中被识别为它自己的设备。它可以在类型下找到:“3D 打印机”。

我的问题是:如何与未列出且未分配 COM 端口的设备建立(串行)通信?我的猜测是,我需要更改 getPorts() 函数中的 CommPortIdentifier。但我不知道如何更改它并连接到 3D 打印机。

这是我目前使用的代码

public ArrayList<String> getPorts() {
    CommPortIdentifier serialPortId;
    ArrayList<String> portID = new ArrayList<String>();
    Enumeration enumComm = CommPortIdentifier.getPortIdentifiers();
    while (enumComm.hasMoreElements()) {
        serialPortId = (CommPortIdentifier) enumComm.nextElement();
        if (serialPortId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
            String portString= new String(serialPortId.getName());
            portID.add(portString);
        }
    }
    return portID;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)