Console Serial IO con display OLED e seriale asincrona
Dependencies: mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2
Fork of SerialIO by
Console Serial IO con display OLED e seriale asincrona
Revision 28:f7a59cee5f0d, committed 2015-09-09
- Comitter:
- MaxScorda
- Date:
- Wed Sep 09 20:07:24 2015 +0000
- Parent:
- 27:b8d7f2ede945
- Child:
- 29:bfb815540de7
- Commit message:
- Sistemato feedback
Changed in this revision
--- a/AserialIOFuncLib.lib Sun Sep 06 23:06:14 2015 +0000 +++ b/AserialIOFuncLib.lib Wed Sep 09 20:07:24 2015 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/users/MaxScorda/code/AserialIOFuncLib/#7871bb60d370 +https://developer.mbed.org/users/MaxScorda/code/AserialIOFuncLib/#69aa07aec21f
--- a/Functions.h Sun Sep 06 23:06:14 2015 +0000 +++ b/Functions.h Wed Sep 09 20:07:24 2015 +0000 @@ -34,7 +34,7 @@ sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(funcnum)),22,8,15); sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(param)),42,8,15); //write input string - sc.writeScreen(fnzAdd.string2char(strIn),2,20,20); + sc.writeScreen(fnzAdd.string2char(strIn),2,16,20); //sc.writeScreen((char*)func.c_str() ,02,07); funziona anche cosi' //extra serial output (output reale su arduino default true) @@ -42,12 +42,12 @@ if (funcnum=="r") { if (param=="on ") { realExtraSerial=true; - sc.writeScreen("ON \n",62,14,3); + sc.writeScreen("ON \n",62,13,3); errp=0; } if (param=="off") { realExtraSerial=false; - sc.writeScreen("OFF\n",62,14); + sc.writeScreen("OFF\n",62,13); errp=0; } } @@ -57,16 +57,16 @@ if (func=="l") { if (funcnum=="1") { if (param=="on ") { - sc.writeScreen("ON \n",2,14,3); - sc.writeScreen("Led ACCESO \n",42,20,99); + sc.writeScreen("ON \n",2,13,3); + sc.writeScreen("Led ACCESO \n",42,16,99); if (realExtraSerial==false) ardser.printf("\nLed ACCESO \n\r"); printDisp(dispType,"Led ACCESO \n\r"); led.onOff(1); //Accende il led errp=0; } if (param=="off") { - sc.writeScreen("OFF \n",2,14); - sc.writeScreen("Led SPENTO! \n",42,20,99); + sc.writeScreen("OFF \n",2,13); + sc.writeScreen("Led SPENTO! \n",42,16,99); if (realExtraSerial==false) ardser.printf("\nLed SPENTO! \n\r"); printDisp(dispType,"Led SPENTO \n\r"); led.onOff(0); //Spegne il led @@ -78,16 +78,16 @@ if (func=="v") { if (funcnum=="1") { if (param=="on ") { - sc.writeScreen("ON \n",22,14); - sc.writeScreen("Virtual ACCESO \n",42,20,99); - if (realExtraSerial==false) ardser.printf("\nVirtual ACCESO \n\r"); + sc.writeScreen("ON \n",22,13); + sc.writeScreen("Virtual ACCESO \n",42,16,99); + if (realExtraSerial==false) ardser.printf("Virtual On\r"); printDisp(dispType,"Virtual ACCESO \n\r"); errp=0; } if (param=="off") { - sc.writeScreen("OFF \n",22,14); - sc.writeScreen("Virtual SPENTO! \n",42,20,99); - if (realExtraSerial==false) ardser.printf("\nVirtual SPENTO! \n\r"); + sc.writeScreen("OFF \n",22,13); + sc.writeScreen("Virtual SPENTO! \n",42,16,99); + if (realExtraSerial==false) ardser.printf("Virtual Off\r"); printDisp(dispType,"Virtual SPENTO \n\r"); errp=0; } @@ -97,8 +97,8 @@ //command SYNTH if ((func>="0") && (func<="9")) { if ((funcnum>="0") && (funcnum<="9")) { - sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),42,14,4); - sc.writeScreen("Arduino Command \n",42,20,99); + sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),42,13,4); + sc.writeScreen("Arduino Command \n",42,16,99); ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+funcnum+param+"\r"))); printDisp(dispType,"Arduino Command \n\r"); printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r"))); @@ -110,13 +110,21 @@ // comando fuori parsing if (errp==1) { // pc.printf("Bad command\n\r"); - sc.writeScreen("Bad Command\n",42,20,99); - if (realExtraSerial==false) ardser.printf("\nBad command\n\r"); + sc.writeScreen("Bad Command\n",42,16,99); + if (realExtraSerial==false) ardser.printf("Bad command\n\r"); printDisp(dispType,"** Bad command ** \n\r"); } sc.commitScreen(); } +void writeInput(char stringa[]) +{ + string strIn = string(stringa); + strIn=fnzAdd.addEOS(strIn); + //ardser.printf(strIn+" \n\r"); + sc.writeScreen(fnzAdd.string2char(strIn),2,20,20); + } + void pressed() {
--- a/main.cpp Sun Sep 06 23:06:14 2015 +0000 +++ b/main.cpp Wed Sep 09 20:07:24 2015 +0000 @@ -52,12 +52,10 @@ bannerDisp(dispType); while(1) { - - ardser.attach(&callback); + // ardser.attach(&callback); //seriale interna if (pc.readable()) { c[0]=pc.getc(); //legge un carattere dalla seriale - if (c[0] != 13) { buffer[0][i[0]]=c[0]; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer i[0]++; // incrementa il puntatore al buffer @@ -67,7 +65,7 @@ buffer[0][i[0]]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa //controlla di non mandare solo un CR if (i[0]>0) { - if (realExtraSerial==false) ardser.printf("\ncmd Ready\n\r"); + // if (realExtraSerial==false) ardser.printf("cmd Ready\n\r"); for(int ii=0; ii<=i[0]; ii++) bufferTemp[ii]=buffer[0][ii]; parser(bufferTemp); } else sc.commitScreen(); @@ -77,17 +75,17 @@ //seriale esterna if (ardser.readable()) { c[1]=ardser.getc(); //legge un carattere dalla seriale - if (c[1] != 13) { + if (c[1] != 13) { buffer[1][i[1]]=c[1]; // se il carattere è diverso da CarriageReturn (ASCII 13) lo memorizza nel buffer i[1]++; // incrementa il puntatore al buffer led.flash(2); } else { - ////? pc.printf("\n\r"); + //ardser.printf("\n\r"); buffer[1][i[1]]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa //controlla di non mandare solo un CR if (i[1]>0) { - ////? ardser.printf("\ncmd Ready\n\r"); - ////? parser(buffere); + for(int ii=0; ii<=i[1]; ii++) bufferTemp[ii]=buffer[1][ii]; + writeInput(bufferTemp); } else sc.commitScreen(); i[1]=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa }