Skip to content

Commit 92441de

Browse files
committed
save fluxo data - press button to start and press again to stop
1 parent 3070964 commit 92441de

File tree

1 file changed

+105
-33
lines changed

1 file changed

+105
-33
lines changed

processing/oscilloscope_4ch/oscilloscope_4ch.pde

Lines changed: 105 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// rogerio.bego@hotmail.com
2-
String versao="1.2.1";
2+
String versao="1.2.2";
3+
// 14/06/2017 - v1.2.2 - save data modo "fluxo" - press button to start, press again to stop
34
// 09/06/2017 - v1.2.1 - Save data in the file "datayyyymmddhhmmss.txt" - Requested by Carlos Corela
45
// 29/01/2017 - v1.2 coloquei um valor para o trigger 0-1024 (0-5v)
56
// transmitir tv512. (512=2.5v)
@@ -31,6 +32,7 @@ import processing.serial.*;
3132
2<tab>2350<tab>350
3233
*/
3334
PrintWriter output;
35+
boolean outputOpen=false;
3436
Botao save;
3537
int qSave=0;
3638

@@ -542,35 +544,68 @@ void mouseClicked() {
542544
calcFreq.mouseClicado();
543545
grafDif.mouseClicado();
544546

547+
//08-Jun-2017 write data to file
545548
if (save.mouseClicado()){
546-
//08-Jun-2017 write data to file
547-
548-
String fileName ="data"+nf(year(),4)+nf(month(),2)+nf(day(),2)+nf(hour(),2)+nf(minute(),2)+nf(second(),2)+".txt";
549-
output=createWriter(fileName);
550-
// cabeçalho
551-
output.print("dt(");output.print(dt.v.printV());output.print(dt.unidade);output.print(")");
552-
for (int k=0; k<4; k++){
553-
if (canal[k].chN.clicado){
554-
output.print('\t');output.print("ch");output.print(k);output.print("(mV)");
555-
}
556-
}
557-
output.println();
558-
// dados
559-
float f=5000.0/1023.0;
560-
for (int k2=0; k2<q.v.v;k2++){
561-
output.print(k2);
562-
for (int k=0; k<4; k++) {
563-
if (canal[k].chN.clicado){
564-
output.print('\t');output.print(int(canal[k].v[k2]*f));
549+
// 14-Jun-2017 save fluxo or save memory
550+
println("fluxoContinuo.clicado=",fluxoContinuo.clicado);
551+
if (fluxoContinuo.clicado){
552+
if (outputOpen==false){ // não está gravando, então iniciar a gravação
553+
println("outputOpen==false => ",outputOpen);
554+
String fileName ="dataf"+nf(year(),4)+nf(month(),2)+nf(day(),2)+nf(hour(),2)+nf(minute(),2)+nf(second(),2)+".txt";
555+
output=createWriter(fileName);
556+
outputOpen=true;
557+
save.tex="salvando";
558+
// cabeçalho
559+
output.println("BegOscopio v"+versao+" "+nf(year())+"-"+nf(month())+"-"+nf(day())+" "+nf(hour())+":"+nf(minute())+":"+nf(second()));
560+
output.print("dt(");output.print(dt.v.printV());output.print(dt.unidade);output.print(")");
561+
for (int k=0; k<4; k++){
562+
if (canal[k].chN.clicado){
563+
output.print('\t');output.print("ch");output.print(k);output.print("(mV)");
564+
}
565565
}
566+
output.println();
567+
qSave=0;
568+
// ao entrar cada dado no fluxo gravar em output.print()
569+
// gravar na rotina de entrada
570+
} else { // save já está gravando, então parar a gravação
571+
println("outputOpen==true => ",outputOpen);
572+
output.close();
573+
outputOpen=false;
574+
qSave=1;
575+
if (qSave>10) {qSave=1;}
576+
save.tex="salvar datax.txt" + "-"+qSave;
577+
save.clicado=false;
578+
}
579+
} else {
580+
String fileName ="data"+nf(year(),4)+nf(month(),2)+nf(day(),2)+nf(hour(),2)+nf(minute(),2)+nf(second(),2)+".txt";
581+
output=createWriter(fileName);
582+
// cabeçalho
583+
output.println("BegOscopio v"+versao+" "+nf(year())+"-"+nf(month())+"-"+nf(day())+" "+nf(hour())+":"+nf(minute())+":"+nf(second()));
584+
output.print("dt(");output.print(dt.v.printV());output.print(dt.unidade);output.print(")");
585+
for (int k=0; k<4; k++){
586+
if (canal[k].chN.clicado){
587+
output.print('\t');output.print("ch");output.print(k);output.print("(mV)");
588+
}
566589
}
567590
output.println();
591+
// dados
592+
float f=5000.0/1023.0;
593+
for (int k2=0; k2<q.v.v;k2++){
594+
output.print(k2);
595+
for (int k=0; k<4; k++) {
596+
if (canal[k].chN.clicado){
597+
output.print('\t');output.print(int(canal[k].v[k2]*f));
598+
}
599+
}
600+
output.println();
601+
}
602+
603+
output.close();
604+
qSave+=1;
605+
if (qSave>10) {qSave=1;}
606+
save.tex="salvar datax.txt" + "-"+qSave;
607+
save.clicado=false;
568608
}
569-
output.close();
570-
qSave+=1;
571-
if (qSave>10) {qSave=1;}
572-
save.tex="salvar datax.txt" + "-"+qSave;
573-
save.clicado=false;
574609
}
575610
//ruido.mouseClicado();
576611

@@ -600,6 +635,9 @@ void mouseClicked() {
600635
if (umaAmostra.mouseClicado()) { // receber apenas Uma Amostra
601636
variasAmostras.clicado=false;
602637
fluxoContinuo.clicado=false;
638+
if (outputOpen) {
639+
fecharDados();
640+
}
603641
if (com.conectado) {
604642
port.write("1");
605643
}
@@ -613,7 +651,7 @@ void mouseClicked() {
613651
break;
614652
}
615653
}
616-
println("k2=",k2);
654+
// println("k2=",k2);
617655

618656
if (k2>=0 && k2<=3){
619657
pnlAmostra.piscar=true;
@@ -627,6 +665,9 @@ void mouseClicked() {
627665
if (variasAmostras.mouseClicado()) {
628666
umaAmostra.clicado=false;
629667
fluxoContinuo.clicado=false;
668+
if (outputOpen) {
669+
fecharDados();
670+
}
630671
if (com.conectado) {
631672
if (variasAmostras.clicado) {
632673
port.write("vo");
@@ -646,6 +687,9 @@ void mouseClicked() {
646687

647688
} else {
648689
port.write("fx");
690+
if (outputOpen){
691+
fecharDados();
692+
}
649693
}
650694
} else {
651695
fluxoContinuo.clicado=false;
@@ -808,6 +852,13 @@ void mouseDragged() {
808852
//}
809853
}
810854

855+
void fecharDados(){
856+
output.close();
857+
outputOpen=false;
858+
if (qSave>10) {qSave=1;}
859+
save.tex="salvar datax.txt" + "-"+qSave;
860+
save.clicado=false;
861+
}
811862

812863
/* ==========================================
813864
Comando enviados para o Garagino
@@ -879,7 +930,28 @@ void serialEvent(Serial p) {
879930
canal[3].v[int(q.v.v-1)]=int(tex2[5]);
880931
dtReal.setV(float(tex2[1]));
881932
if (dtReal.v-dt.v.v>1.1*dt.v.v){ dtErro=true;} else {dtErro=false;}
882-
println("cmd=",cmd," val=",val," dtReal=",dtReal.printV());
933+
934+
// salvar em arquivo
935+
if (outputOpen) {
936+
float f=5000.0/1023.0;
937+
//for (int k2=0; k2<q.v.v;k2++){
938+
int k2=int(q.v.v-1);
939+
output.print(qSave);
940+
qSave+=1;
941+
for (int k=0; k<4; k++) {
942+
if (canal[k].chN.clicado){
943+
output.print('\t');output.print(int(canal[k].v[k2]*f));
944+
}
945+
}
946+
output.println();
947+
if (qSave % 100==0) { // de 100 em 100
948+
save.tex="salvando "+nf(qSave);
949+
output.flush();
950+
}
951+
//}
952+
}
953+
954+
//println("cmd=",cmd," val=",val," dtReal=",dtReal.printV());
883955
} else if (cmd.equals("v")) { // entrada de Varias Amostra
884956
int v[]=int(splitTokens(val));
885957
//println("v.length=",v.length);
@@ -896,7 +968,7 @@ void serialEvent(Serial p) {
896968
//println("atualizou");
897969
tTotalReal.setV(float(val));
898970
//text(tTotalReal,pnlAmostra.x+2,pnlAmostra.y+pnlAmostra.h);
899-
println("cmd=",cmd," val=",val," tTotalReal=",tTotalReal.printV());
971+
//println("cmd=",cmd," val=",val," tTotalReal=",tTotalReal.printV());
900972
canal[0].atualizou=true; // terminou de entrar os dados então
901973
canal[1].atualizou=true; // carregar do buffer
902974
canal[2].atualizou=true;
@@ -913,7 +985,7 @@ void serialEvent(Serial p) {
913985
dtReal.setV(float(val));
914986
if (dtReal.n>dt.v.n+10){ dtErro=true;} else {dtErro=false;}
915987
//text(dtReal,pnlAmostra.x+2,pnlAmostra.y+pnlAmostra.h-12);
916-
println("cmd=",cmd," val=",val," dtReal=",dtReal.printV());
988+
//println("cmd=",cmd," val=",val," dtReal=",dtReal.printV());
917989

918990
} else if (cmd.equals("r") || cmd.equals("c") || cmd.equals("rc")) { // valor do resistor
919991
String tex2[]=splitTokens(val, "\t\r");
@@ -928,19 +1000,19 @@ void serialEvent(Serial p) {
9281000
} else if (cmd.charAt(0)=='?') { // carregando as configurações do Garagino (ao conectar)
9291001
cmd=cmd.substring(2); // eliminar 2 caracteres iniciais "? comando"
9301002
val=val.substring(0,val.length()-2); // eliminar 2 caracteres finais: \n\r(13,10)(^M^J) (retorno de linha)
931-
println("cmd=",cmd," val=",val);
1003+
//println("cmd=",cmd," val=",val);
9321004
if (cmd.equals("q")){ // val=100
9331005
q.v.v=float(val);
9341006
} else if (cmd.equals("dt")){
9351007
char unid=val.charAt(val.length()-2);
9361008
val=val.substring(0,val.length()-2);
937-
println("unid=",unid," val=",val);
1009+
// println("unid=",unid," val=",val);
9381010
if (unid=='u'){
9391011
val=val+"e-6";
9401012
}else{
9411013
val=val+"e-3";
9421014
}
943-
println("val=",val);
1015+
//println("val=",val);
9441016
dt.setV(float(val));
9451017
ajustarFt();
9461018

@@ -973,7 +1045,7 @@ void serialEvent(Serial p) {
9731045
}else if (cmd.equals("pwmPon")){ // cmd="pwmPon", val="25%"
9741046
val=val.substring(0,val.length()-1);
9751047
tonSinal.setV(float(val));
976-
println("pwmPon=",float(val));
1048+
//println("pwmPon=",float(val));
9771049
}
9781050
}
9791051
}

0 commit comments

Comments
 (0)