change font and design
This commit is contained in:
parent
d98700dfbd
commit
749509902c
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
Binary file not shown.
|
@ -3,15 +3,21 @@ import java.io.FileWriter;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
PFont fontregular;
|
||||||
|
|
||||||
|
PImage image_line;
|
||||||
|
|
||||||
Serial myPort;
|
Serial myPort;
|
||||||
String val = "0.0";
|
String val = "0.0";
|
||||||
|
|
||||||
int speeds_show=5;
|
int speeds_show=10;
|
||||||
float[] speeds=new float[speeds_show];
|
float[] speeds=new float[speeds_show];
|
||||||
int speeds_index=0; //points to next array index
|
int speeds_index=0; //points to next array index
|
||||||
|
|
||||||
float speedfloat=0;
|
float speedfloat=0;
|
||||||
|
|
||||||
|
float triggerspeedmin=15; //current triggerspeed
|
||||||
|
|
||||||
Date d=new Date();
|
Date d=new Date();
|
||||||
|
|
||||||
PrintWriter pw;
|
PrintWriter pw;
|
||||||
|
@ -19,13 +25,36 @@ PrintWriter pw;
|
||||||
int unitdisplay=0;
|
int unitdisplay=0;
|
||||||
int unitdisplay_count=9; //how much different units available
|
int unitdisplay_count=9; //how much different units available
|
||||||
|
|
||||||
|
|
||||||
|
int xtextstart=10;
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
size(1500, 1000);
|
size(800, 600);
|
||||||
frameRate(30);
|
frameRate(30);
|
||||||
String portName = "COM5";
|
|
||||||
|
fontregular=createFont("Montserrat-Regular.ttf",32);
|
||||||
|
textFont(fontregular);
|
||||||
|
|
||||||
|
image_line= loadImage("bleeptrackline.png");
|
||||||
|
|
||||||
|
//String portName = "COM5";
|
||||||
//String portName = "/dev/ttyUSB0";
|
//String portName = "/dev/ttyUSB0";
|
||||||
|
int useportID=-1;
|
||||||
|
println("Serialports:");
|
||||||
|
for(int i=0;i<Serial.list().length;i++){
|
||||||
|
if (Serial.list()[i].contains("ttyUSB") || Serial.list()[i].contains("COM")){
|
||||||
|
println(i+" "+Serial.list()[i]);
|
||||||
|
if (useportID<0){ //no port set yet
|
||||||
|
useportID=i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String portName = Serial.list()[useportID];
|
||||||
|
println("Using Port:"+portName);
|
||||||
myPort = new Serial(this, portName, 115200);
|
myPort = new Serial(this, portName, 115200);
|
||||||
|
|
||||||
|
sendSpeedTrapValue(int(triggerspeedmin));
|
||||||
|
|
||||||
pw=createWriter("speeds.txt");
|
pw=createWriter("speeds.txt");
|
||||||
|
|
||||||
background(0);
|
background(0);
|
||||||
|
@ -36,89 +65,113 @@ void setup() {
|
||||||
|
|
||||||
void draw() {
|
void draw() {
|
||||||
if ( myPort.available() > 0) {
|
if ( myPort.available() > 0) {
|
||||||
val = myPort.readString();
|
String sread = myPort.readString();
|
||||||
print("val = " + val);
|
println("serialRead: " + sread);
|
||||||
val = val.substring(0,val.length()-1);
|
if (sread.length()>=7 && sread.substring(0,6).equals("speed=")){ //new speed measurement
|
||||||
|
val = sread.substring(6,sread.length()-1);
|
||||||
|
|
||||||
speedfloat=float(val);
|
speedfloat=float(val);
|
||||||
|
|
||||||
speeds[speeds_index]=speedfloat;
|
speeds[speeds_index]=speedfloat;
|
||||||
speeds_index++;
|
speeds_index++;
|
||||||
speeds_index%=speeds_show;
|
speeds_index%=speeds_show;
|
||||||
|
|
||||||
|
|
||||||
println(d.getTime()+";"+speedfloat);
|
println(d.getTime()+";"+speedfloat);
|
||||||
pw.println(d.getTime()+";"+speedfloat);
|
pw.println(d.getTime()+";"+speedfloat);
|
||||||
pw.flush();
|
pw.flush();
|
||||||
|
|
||||||
unitdisplay=int(random(0,unitdisplay_count));
|
unitdisplay=int(random(0,unitdisplay_count));
|
||||||
unitdisplay=1;
|
unitdisplay=1;
|
||||||
println("unitdisplay: "+unitdisplay);
|
println("unitdisplay: "+unitdisplay);
|
||||||
|
|
||||||
|
triggerspeedmin=getTimesPercentile(0.8);
|
||||||
|
//triggerspeedmin=getTimesMax();
|
||||||
|
sendSpeedTrapValue(int(triggerspeedmin));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background(0);
|
background(0);
|
||||||
fill(255);
|
fill(0,132,176);
|
||||||
|
|
||||||
textSize(150);
|
textSize(100);
|
||||||
|
|
||||||
|
|
||||||
|
int xtext=xtextstart;
|
||||||
|
int ytext=100;
|
||||||
switch(unitdisplay){
|
switch(unitdisplay){
|
||||||
case 0:
|
case 0:
|
||||||
text(nf(speedfloat,1,2) + " km/h" , 100, 200);
|
text(nf(speedfloat,1,2) + " km/h" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
text(nf(speedfloat*0.621371,1,2) + " mph" , 100, 200);
|
text(nf(speedfloat*0.621371,1,2) + " mph" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
text(nf(speedfloat*0.000809848,1,6) + " Mach" , 100, 200);
|
text(nf(speedfloat*0.000809848,1,6) + " Mach" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
text(nf(speedfloat*0.911344,1,2) + " ft/s" , 100, 200);
|
text(nf(speedfloat*0.911344,1,2) + " ft/s" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
text(nf(speedfloat*0.277778,1,2) + " m/s" , 100, 200);
|
text(nf(speedfloat*0.277778,1,2) + " m/s" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
text(nf(speedfloat*0.539957,1,2) + " knots" , 100, 200);
|
text(nf(speedfloat*0.539957,1,2) + " knots" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
text(nf(speedfloat*1079000000,1,0) + " c" , 100, 200);
|
text(nf(speedfloat*1079000000,1,0) + " c" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
text(nf(speedfloat*54.67469,1,0) + " ft/min" , 100, 200);
|
text(nf(speedfloat*54.67469,1,0) + " ft/min" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
text(nf(pow((speedfloat*0.277778/0.836), 2.0/3),1,0) + " Bft" , 100, 200);
|
text(nf(pow((speedfloat*0.277778/0.836), 2.0/3),1,0) + " Bft" , xtext, ytext);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Line
|
||||||
|
image(image_line, 10, 100);
|
||||||
|
|
||||||
textSize(80);
|
|
||||||
//println();
|
|
||||||
int ipos=1;
|
int reducesizefactor=40;
|
||||||
|
int lastytextpos=200;
|
||||||
for (int i=speeds_show;i>0;i--){
|
for (int i=speeds_show;i>0;i--){
|
||||||
ipos++;
|
float colorpercentage=i*1.0/speeds_show;
|
||||||
text( nf(speeds[(speeds_show+speeds_index-1+i)%speeds_show], 1,2) + "km/h", 100, 250+(ipos)*80);
|
fill(0,132*colorpercentage+163*(1-colorpercentage),176*colorpercentage+86*(1-colorpercentage));
|
||||||
|
textSize(50-(1-colorpercentage)*reducesizefactor);
|
||||||
|
text( nf(speeds[(speeds_show+speeds_index-1+i)%speeds_show], 1,2) + " km/h", xtextstart, lastytextpos);
|
||||||
|
lastytextpos+=50-(1-colorpercentage)*reducesizefactor;
|
||||||
|
|
||||||
//print(speeds[i]);
|
|
||||||
//print(",");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textSize(40);
|
||||||
|
text( "speed trap: "+nf(triggerspeedmin,1,1) +" km/h", 10, height-50);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float getTimesMax(){
|
||||||
|
float speedmax=0;
|
||||||
|
for (int i=0;i<speeds_show;i++){
|
||||||
|
if (speedmax<speeds[i]){
|
||||||
|
speedmax=speeds[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return speedmax;
|
||||||
|
}
|
||||||
|
float getTimesPercentile(float p){ //p==1 would be max value
|
||||||
|
float[] sortedspeeds=sort(speeds);
|
||||||
|
return sortedspeeds[int(p*sortedspeeds.length)];
|
||||||
|
}
|
||||||
|
|
||||||
|
void sendSpeedTrapValue(int v){
|
||||||
|
myPort.write(""+v+"\n");
|
||||||
|
println("Send trigger speed:"+v);
|
||||||
|
}
|
Loading…
Reference in New Issue