112- 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*/
3334PrintWriter output;
35+ boolean outputOpen= false ;
3436Botao save;
3537int 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