gpt4 book ai didi

java - 处理时重新连接串口

转载 作者:行者123 更新时间:2023-11-29 06:40:46 27 4
gpt4 key购买 nike

我正在使用 processing我正在使用串行端口从 Arduino 读取输入,但可能会发生连接中断,在这种情况下如何重新打开此连接?

最佳答案

您可以捕获 Serial.java 抛出的 RuntimeExceptions,这通常表示串口不再可用。然后,在该 catch block 中,您可以开始轮询串行端口;一旦它允许您重新实例化您的 Serial 实例,该端口将再次可用(例如,USB 电缆重新插入)并且您回到游戏中。

Serial serial;
boolean serialInited;

void setup () {
initSerial();
}

void draw () {
if (serialInited) {
// serial is up and running
try {
byte b = serial.read();
// fun with serial here...
} catch (RuntimeException e) {
// serial port closed :(
serialInited = false;
}
} else {
// serial port is not available. bang on it until it is.
initSerial();
}
}

void initSerial () {
try {
serial = new Serial(this, Serial.list()[0], BAUD_RATE);
serialInited = true;
} catch (RuntimeException e) {
if (e.getMessage().contains("<init>")) {
System.out.println("port in use, trying again later...");
serialInited = false;
}
}
}

与其尝试重新连接每个 帧,不如使用一个计数器来限制重新连接尝试的频率。 (例如,数到 10,再试一次,根据需要重复。)应该没那么重要,但不知道...由于我知之甚少,在串口上用力敲打可能会产生意想不到的副作用。

关于java - 处理时重新连接串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12571498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com