From e11defbd88c12bcff44997ae8773cce956287f46 Mon Sep 17 00:00:00 2001 From: Fisch Date: Mon, 24 May 2021 18:40:23 +0200 Subject: [PATCH] add pause button --- .../logdata_visualization.pde | 49 ++++++++++++++----- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/logdata_visualization/logdata_visualization.pde b/logdata_visualization/logdata_visualization.pde index d167cef..0e6be05 100644 --- a/logdata_visualization/logdata_visualization.pde +++ b/logdata_visualization/logdata_visualization.pde @@ -59,14 +59,17 @@ int timeoffset=0; //for moving timeslider Table logdata; int nextID=0; //next row number to be displayed long lastTimeData=0; //last time data received -long nextTimeData=0; //time of nextID row -long lastTimeMillis=0; //local time -long nextTimeMillis=0; //local time +int nextTimeData=0; //time of nextID row +int lastTimeMillis=0; //local time +int nextTimeMillis=0; //local time boolean newdataforced=true; int dataErrorCount=0; +boolean running=true; +int timePaused=0; + //Data from log int cmd_FrontL; int cmd_FrontR; @@ -260,7 +263,12 @@ void setup() { } void draw() { - long loopmillis=millis()-timeoffset; + int loopmillis=0; + if (running) { + loopmillis=millis()-timeoffset; + }else{ //paused + loopmillis=timePaused-timeoffset; + } if (useSerial) { if (serial.available() > 0) { @@ -308,7 +316,7 @@ void draw() { TableRow row = logdata.getRow(nextID); lastTimeData=nextTimeData; - nextTimeData=(long)(logdata.getRow(nextID+1).getFloat("time")*1000); //get time and convert from seconds to ms + nextTimeData=(int)(logdata.getRow(nextID+1).getFloat("time")*1000); //get time and convert from seconds to ms lastTimeMillis=nextTimeMillis; nextTimeMillis=loopmillis; @@ -405,8 +413,14 @@ void draw() { if (!useSerial && loopmillis-lastTimeData>(nextTimeData-lastTimeData)*10) { //deviation too high when reading from file text("ff="+(loopmillis-lastTimeData)+"ms", 5+75*2,12); //show warning } - + if (!running) { + fill(color(255,100,100)); + } text("t="+(loopmillis/1000.0)+"s", 5,12); + text("nextID="+nextID, 5,12+12); + fill(color(200,200,200)); + + text(""+(dataErrorCount)+" errors", 5+70*3,12); @@ -421,12 +435,15 @@ void draw() { void keyPressed() { if (key == CODED) { - /*if (keyCode == UP) { - fillVal = 255; - } else if (keyCode == DOWN) { - fillVal = 0; - } - */ + if (!running) { //paused + if (keyCode == LEFT) { + + } else if (keyCode == RIGHT) { + timeoffset=timePaused-nextTimeData; + } + } + + } else { //println("key="+keyCode); if (keyCode==82) { //82=r @@ -435,6 +452,14 @@ void keyPressed() { nextID=0; newdataforced=true; } + if (keyCode == 32) { + if (running) { //switching from running to pause + timePaused=millis(); + }else{ //unpause + timeoffset=+millis()-timePaused+timeoffset; + } + running=!running; + } } }