我有一个小问题.
我从arduino附加的3轴加速度计+ 3轴磁力计+罗盘标题传递信息.这些缩放到midi范围(0-127).
ARDUINO:这是通过串行打印传递的,格式为76a45b120c23d12e23f34g
Serial.print(shiftAx);
Serial.print("a");
Serial.print(shiftAy);
Serial.print("b");
Serial.print(shiftAz);
Serial.print("c");
Serial.print(shiftMx);
Serial.print("d");
Serial.print(shiftMy);
Serial.print("e");
Serial.print(shiftMz);
Serial.print("f");
Serial.print(shiftHead);
Serial.print("g");
Run Code Online (Sandbox Code Playgroud)
我可以看到这使用我的串行监视器.(但我不确定是否以"g"打印为println.)
处理2:
我缓冲到我的void设置中的g()
port = new Serial(this, "/dev/tty.usbmodem411", 9600);
port.bufferUntil('g');
Run Code Online (Sandbox Code Playgroud)
我有这个功能
void serialEvent (Serial port)
{
data = port.readStringUntil('g');
AxVal = data.substring(0, data.indexOf('a'));
AyVal = data.substring(data.indexOf("a") + 1, data.indexOf("b"));
AzVal = data.substring(data.indexOf("b") + 1, data.indexOf("c"));
MxVal = data.substring(data.indexOf("c") + 1, data.indexOf("d"));
MyVal = data.substring(data.indexOf("d") + 1, data.indexOf("e"));
MzVal = data.substring(data.indexOf("e") + 1, data.indexOf("f"));
HeadVal = data.substring(data.indexOf("f") + 1, data.indexOf("g"));
}
Run Code Online (Sandbox Code Playgroud)
问题所以这不起作用.没有显示文字.(它只是一个简单的fill(),text())
我不明白为什么.问题是我的协议(如果我可以称之为),我是如何解压缩字符串的?或者其他一些问题. …
processing serial-port communication arduino serial-communication