1
0
mirror of https://github.com/ArduinoHannover/Maiskolben.git synced 2025-09-03 10:03:07 +02:00

Version 2.0

This commit is contained in:
Luca Zimmermann
2016-05-30 16:09:47 +02:00
parent 1a792734f2
commit e1d34c9aee
5 changed files with 940 additions and 64 deletions

View File

@@ -0,0 +1,89 @@
import processing.serial.*;
import java.lang.reflect.Array;
import javax.swing.*;
static int gWidth = 400;
static int gHeight = 450;
static int frequency = 10; // receive data every 1/f seconds
Serial Maiskolben;
java.util.LinkedList<Integer> temperature = new java.util.LinkedList<Integer>();
float pidValue;
int setPoint;
int secs;
boolean off, standby, standby_layoff;
int[] stored = new int[3];
PGraphics history;
JToggleButton on = new JToggleButton();
JToggleButton stby = new JToggleButton();
void setup() {
size(50,1);
surface.setResizable(true);
surface.setSize(gWidth+200,gHeight);
Object[] list = Serial.list();
JComboBox serialPort = new JComboBox(list);
Object[] params = {"Select serial Port:",serialPort};
Object[] opts = {"Select","Exit"};
int opt = JOptionPane.showOptionDialog(null, params, "Select Maiskolben", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, opts, opts[0]);
if (opt == JOptionPane.CANCEL_OPTION) System.exit(0);
else {
Maiskolben = new Serial(this, (String)serialPort.getSelectedItem(), 115200);
Maiskolben.bufferUntil(10);
}
history = createGraphics(gWidth,gHeight);
}
void draw() {
if (Maiskolben != null && Maiskolben.available() > 0) {
//println("Received something!");
String line = Maiskolben.readStringUntil(10);
if (line != null) {
String values[] = line.split(";");
if (values.length < 9) println("zu wenig!");
else {
try {
secs = (secs+1)%frequency;
for (int i = 0; i < 3; stored[i] = Integer.parseInt(values[i++]));
off = values[3].equals("1");
standby = values[4].equals("1");
standby_layoff = values[5].equals("1");
setPoint = Integer.parseInt(values[6]);
temperature.add(Integer.parseInt(values[7]));
if (temperature.size() > gWidth) temperature.remove(0);
pidValue = Float.parseFloat(values[8]);
history.beginDraw();
history.background(50);
history.stroke(150);
for (int i = 50; i < gHeight; i+=50) {
history.line(0,i,gWidth,i);
}
for (int i = (temperature.size() == gWidth)?secs:0; i < gWidth; i+=frequency) {
history.line(gWidth-i,0,gWidth-i,gHeight);
}
history.stroke(255);
int lastV = temperature.getFirst();
int x = 0;
for (int temp : temperature) {
history.line(x,gHeight-lastV,++x,gHeight-(lastV = temp));
}
history.endDraw();
} catch (Exception e) {
}
}
println(line);
}
}
background(0);
image(history,0,0);
text(off?"Off":"On",gWidth+10,10);
text(standby?"Standby":"Active",gWidth+10,30);
text(standby_layoff?"In Holder":"",gWidth+10,50);
text("Set Temperature "+setPoint,gWidth+10,70);
if (temperature.size() != 0)
text("Current Temperature "+temperature.getLast(),gWidth+10,90);
}