// Example by Tom Igoe import controlP5.*;//Display library ControlP5 cp5; ControlP5 Toggle; boolean toggleValue; String textValue = ""; import processing.serial.*;//USB Serial library PrintWriter output;//Filing library int lf = 10; // Linefeed in ASCII int cr=13; //Carriage Return in ASCII String myString1 = null;//1st Recieved data as string String myString2 = null;//2nd Recieved data as string String myString3 = null;//3rd Recieved data as string String [] splt_arry1=new String[100]; String [] splt_arry2=new String[100]; String [] splt_arry3=new String[100]; Serial myPort1; // 1st serial port Serial myPort2; //2nd serial port Serial myPort3; //2nd serial port int i,j,m,n; int elapsedTime; int startTime; int endTime; int startFlag=0; int endFlag=0; int stanbyFlag=0; String [] V1=new String[600000];//1stArray declaration Buffer memory recived 600K data String [] V2=new String[600000];//2nd Array declaration Buffer memory recived 600K data String [] V3=new String[600000];//3rd Array declaration Buffer memory recived 600K data int dummy; float stx,sty,stx_1,sty_1; void setup() { frameRate(2000); //===================Display setup=================== size(300,300); PFont font; font=createFont("CharterBT-Bold",30); textFont(font); cp5=new ControlP5(this); ControlFont cf1 = new ControlFont(createFont("CharterBT-Bold",40)); ControlFont cf2 = new ControlFont(createFont("CharterBT-Bold",30)); Toggle = new ControlP5(this); rectMode(CENTER); Toggle.addToggle("toggleValue") //.setLabel("ON") .setSize(200, 100) .setPosition(10, 100) .setValue(false) .setColorCaptionLabel(color(10)); // //.setMode(ControlP5.SWITCH); //======================================================= // ********************Serial setup=********************** //List all the available serial ports printArray(Serial.list()); // Open the port you are using at the rate you want: myPort1 = new Serial(this, Serial.list()[2], 115200); myPort1.clear(); myPort2 = new Serial(this, Serial.list()[3], 115200); myPort2.clear(); myPort3 = new Serial(this, Serial.list()[4], 115200); myPort3.clear(); // Throw out the first reading, in case we started reading // in the middle of a string from the sender. myString1 = myPort1.readStringUntil(lf); myString1 = null; myString2 = myPort2.readStringUntil(lf); myString2 = null; myString3 = myPort3.readStringUntil(lf); myString3 = null; //********************************************************** //------------------Save FIle setup-------------------------------------------------------------- String filename = nf(year(),4) + nf(month(),2) + nf(day(),2) + nf(hour(),2) + nf(minute(),2) ; output = createWriter( filename + ".csv"); i=0; j=0; stanbyFlag=1; //----------------------------------------------------------------------------------------------- } void draw() { // background(0); if (toggleValue==true && stanbyFlag==1) { //text("Logging",10,90); startFlag=1; stanbyFlag=0; endFlag=0; //------------------Save FIle setup-------------------------------------------------------------- String filename = nf(year(),4) + nf(month(),2) + nf(day(),2) + nf(hour(),2) + nf(minute(),2) ; output = createWriter( filename + ".csv"); } if (toggleValue==false ) { startFlag=0; endFlag=1; if (stanbyFlag==1){ text("Stanby",10,90); } if (stanbyFlag==0){// CSV saving text("Stanby",10,90); if (elapsedTime>0){ text("CSV save",10,90); CSV_save(); } } } while (myPort1.available() > 0 && myPort2.available() > 0 && myPort3.available()>0 && startFlag==1) { text("Logging",10,90); //--1ch--------------------------------------- myString1 = myPort1.readStringUntil(cr); //delay(200); myString1 = trim(myString1); if (myString1 != null) { i++; i=i%600000; //print("S1:[",i,"]",myString1); V1[i]=myString1; //print("V1[",i,"]",V1[i]); // timGraph(i,V1,2); } //---2ch------------------------------------------- myString2 = myPort2.readStringUntil(lf); //delay(200); myString2 = trim(myString2); if (myString2 != null) { j++; j=j%600000; //print("S2[:",j,"]",myString2); V2[j]=myString2; //println("V2[",j,"]",V2[j]); //timGraph(j,V2,3); } //---3ch------------------------------------------- myString3 = myPort3.readStringUntil(lf); //delay(200); myString3 = trim(myString3); if (myString3 != null) { m++; m=m%600000; //print("S3[:",k,"]",myString3); V3[m]=myString3; //println("V3[",m,"]",V3[m]); //timGraph(m,V2,3); } } fill(0); if (n<1){ startTime=millis(); } if (n%500==0){ background(255); elapsedTime=(millis()-startTime)/60000; text(elapsedTime,60,60); text("min",100,60); text("LoggingTime",10,30); //text("Stop:Input Key 'q'",10,90); } n++; } //void keyPressed(){ void CSV_save(){ text("CSV save",10,90); int k; String matome; if( endFlag == 1 && startFlag==0 ){ for(k=0;k