Serial port 使用串行数据触发草图时的瑕疵

Serial port 使用串行数据触发草图时的瑕疵,serial-port,processing,Serial Port,Processing,我正在写一个小程序来显示一个速度陷阱的值和经过的时间(像一个拖带,但对于澳大利亚日的滑水器),它是通过串行总线从微控制器发出的 我已经运行了处理草图,并且已经完成了大部分开发工作,只需单击鼠标即可模拟新数据并运行程序,我还设置了硬件,并让它运行,微控制器发送串行数据,程序显示串行数据 我已经做了一些进一步的开发,现在当它运行时,我发现一些奇怪的事情发生了,方框有时会以错误的颜色出现,显示的数字中有一些瑕疵,并且只有一些图形的颜色是错误的(图形是用for循环生成的,颜色设置在它的外部) 我已经尝试

我正在写一个小程序来显示一个速度陷阱的值和经过的时间(像一个拖带,但对于澳大利亚日的滑水器),它是通过串行总线从微控制器发出的

我已经运行了处理草图,并且已经完成了大部分开发工作,只需单击鼠标即可模拟新数据并运行程序,我还设置了硬件,并让它运行,微控制器发送串行数据,程序显示串行数据

我已经做了一些进一步的开发,现在当它运行时,我发现一些奇怪的事情发生了,方框有时会以错误的颜色出现,显示的数字中有一些瑕疵,并且只有一些图形的颜色是错误的(图形是用for循环生成的,颜色设置在它的外部)

我已经尝试添加一些延迟,以确保它获得完整的数据字符串,我还尝试在子例程中移动,但没有任何效果

这些错误是在我将经过时间代码添加到串行数据之后出现的,之前它只是一个字符串,现在它是两个用冒号分隔的数字

我也把我的代码放在这里,非常简单,我只是一个编程新手,请原谅(并指出!)任何错误

import processing.serial.*;
串行端口;
浮子安装;
浮子inFloat0,inFloat1;
浮动[]列表=新浮动[0];
float[]etlist=新浮点[0];
PFont f1、f2、f3、f4、f5、f6;
整数指数;
浮动秩;
浮动百分比;
int传输距离=1000;
int-SgraphH=38//速度图刻度
int-ETgraphH=15//ET图标度
int valueX=0;
int valueY=0;
布尔图30=false,图690=false;
颜色c1,c2,c3=颜色(220,0,0),c4=颜色(220,0,0);
内盒X=295,盒Y=430,盒尺寸=15//图30方框
无效设置(){
规模(1280700);
指数=0;
//从文本文件加载列表
String loadlist[]=loadStrings(“list.txt”);
对于(int i=0;iboxX&&mouseXboxY&&mouseYboxX+100&&mouseXboxY&&mouseYsortlist[index-1]){
c1=颜色(0,240,0);
}
否则{
c1=颜色(255);
}
} 
否则{
c1=颜色(255);
}  
//ET颜色,速度最快,速度最慢
如果(索引!=0){
如果(etlist[index-1]sortetlist[index-1]){
c2=颜色(0,240,0);
}
否则{
c2=颜色(255);
}
} 
否则{
c2=颜色(255);
}
//盒子
矩形模式(拐角);
冲程(0);
填料(c1);
rect(15,15,width-30200);//速度
填充(c2);
rect(15230,宽度-30200);//ET
填充(255);
rect(15,高度-255,125,240);//左
rect(155,高度-255,125,240);//左
rect(宽-140,高-255,125,240);//右
rect(宽-280,高-255,125,240);//右
//正文
填充(0);
textFont(f3);
文本对齐(中心);
文字(“速度”,78,高度-220);
文字(“ET”,宽-78,高-220);
文本(“ET”,218,高度-220);
文字(“速度”,宽度-218,高度-220);
文本字体(f4);
文本对齐(左);
文本(“陷阱距离:”+陷阱距离+“毫米”,2,高度-2);
//大数字
文本对齐(中心);
文本字体(f2);
文本(String.format(“%.2f”,列表[index-1])+“km/h”,宽度/2200);//速度
text(String.format(“%.2f”,etlist[index-1])+“sec”,width/2415);//ET
//最后10
对于(inti=0;ii),我修正了它

当串行触发器调用子例程时,它仍然允许draw()函数中的循环代码仍然运行,wh