2018-12-26 23:56:32 +00:00
|
|
|
import processing.serial.*;
|
|
|
|
import java.io.FileWriter;
|
|
|
|
import java.io.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
Serial myPort;
|
|
|
|
String val = "0.0";
|
|
|
|
|
|
|
|
int speeds_show=5;
|
|
|
|
float[] speeds=new float[speeds_show];
|
|
|
|
int speeds_index=0; //points to next array index
|
|
|
|
|
|
|
|
float speedfloat=0;
|
|
|
|
|
|
|
|
Date d=new Date();
|
|
|
|
|
|
|
|
PrintWriter pw;
|
|
|
|
|
|
|
|
int unitdisplay=0;
|
2018-12-27 01:13:11 +00:00
|
|
|
int unitdisplay_count=9; //how much different units available
|
2018-12-26 23:56:32 +00:00
|
|
|
|
|
|
|
void setup() {
|
|
|
|
size(1500, 1000);
|
|
|
|
frameRate(30);
|
2018-12-27 01:13:11 +00:00
|
|
|
String portName = "COM5";
|
|
|
|
//String portName = "/dev/ttyUSB0";
|
2018-12-26 23:56:32 +00:00
|
|
|
myPort = new Serial(this, portName, 115200);
|
|
|
|
|
|
|
|
pw=createWriter("speeds.txt");
|
|
|
|
|
|
|
|
background(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// speed wird sein "20.08" oder
|
|
|
|
|
|
|
|
void draw() {
|
|
|
|
if ( myPort.available() > 0) {
|
|
|
|
val = myPort.readString();
|
|
|
|
print("val = " + val);
|
|
|
|
val = val.substring(0,val.length()-1);
|
|
|
|
|
|
|
|
speedfloat=float(val);
|
|
|
|
|
|
|
|
speeds[speeds_index]=speedfloat;
|
|
|
|
speeds_index++;
|
|
|
|
speeds_index%=speeds_show;
|
|
|
|
|
|
|
|
|
|
|
|
println(d.getTime()+";"+speedfloat);
|
|
|
|
pw.println(d.getTime()+";"+speedfloat);
|
|
|
|
pw.flush();
|
|
|
|
|
|
|
|
unitdisplay=int(random(0,unitdisplay_count));
|
|
|
|
unitdisplay=1;
|
|
|
|
println("unitdisplay: "+unitdisplay);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
background(0);
|
|
|
|
fill(255);
|
|
|
|
|
|
|
|
textSize(150);
|
|
|
|
|
|
|
|
switch(unitdisplay){
|
|
|
|
case 0:
|
|
|
|
text(nf(speedfloat,1,2) + " km/h" , 100, 200);
|
|
|
|
break;
|
|
|
|
case 1:
|
2018-12-27 01:13:11 +00:00
|
|
|
text(nf(speedfloat*0.621371,1,2) + " mph" , 100, 200);
|
|
|
|
break;
|
|
|
|
case 2:
|
2018-12-26 23:56:32 +00:00
|
|
|
text(nf(speedfloat*0.000809848,1,6) + " Mach" , 100, 200);
|
|
|
|
break;
|
2018-12-27 01:13:11 +00:00
|
|
|
case 3:
|
|
|
|
text(nf(speedfloat*0.911344,1,2) + " ft/s" , 100, 200);
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
text(nf(speedfloat*0.277778,1,2) + " m/s" , 100, 200);
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
text(nf(speedfloat*0.539957,1,2) + " knots" , 100, 200);
|
|
|
|
break;
|
|
|
|
case 6:
|
|
|
|
text(nf(speedfloat*1079000000,1,0) + " c" , 100, 200);
|
|
|
|
break;
|
|
|
|
case 7:
|
|
|
|
text(nf(speedfloat*54.67469,1,0) + " ft/min" , 100, 200);
|
|
|
|
break;
|
|
|
|
case 8:
|
|
|
|
text(nf(pow((speedfloat*0.277778/0.836), 2.0/3),1,0) + " Bft" , 100, 200);
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-26 23:56:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
textSize(80);
|
|
|
|
//println();
|
|
|
|
int ipos=1;
|
|
|
|
for (int i=speeds_show;i>0;i--){
|
|
|
|
ipos++;
|
2018-12-27 01:13:11 +00:00
|
|
|
text( nf(speeds[(speeds_show+speeds_index-1+i)%speeds_show], 1,2) + "km/h", 100, 250+(ipos)*80);
|
2018-12-26 23:56:32 +00:00
|
|
|
|
|
|
|
//print(speeds[i]);
|
|
|
|
//print(",");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|