为了向我们的 Lego Mindstorms 机器人发送直接命令,我们使用 NXTComm 和 RXTXComm(用于 x64)库。
我们可以多次启动Processing Applet
并调用
LegoNXT robot = new LegoNXT(this, "COM6"); // this is a PApplet
robot.motorForward(1, 20); //e.g.
机器人启动时会发出 2 声清晰的声音,PApplet
关闭时会发出 1 声声音,我认为这是“机器人已连接”和“机器人已断开连接”的警报。但是,在 4-5 次成功尝试后,总是出现以下错误:
gnu.io.NoSuchPortException
at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:269)
at pt.citar.diablu.nxt.protocol.NXTCommBluetoothSerialChannel.openPort(NXTCommBluetoothSerialChannel.java:82)
at pt.citar.diablu.nxt.protocol.NXTCommBluetoothSerialChannel.<init>(NXTCommBluetoothSerialChannel.java:54)
at pt.citar.diablu.processing.nxt.LegoNXT.<init>(LegoNXT.java:148)
at project.FirstTry.setup(FirstTry.java:44)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:722)
即使出现此错误,也会出现机器人的“最终声音”。从现在起,我们只能通过重新启动计算机来解决此问题。在此之后,整个事情从新开始。
什么会导致此错误?有没有办法“清理”端口连接?