Console Serial IO con display OLED e seriale asincrona

Dependencies:   mbed BufferedSerial AserialIOFuncLib SSD1306 TerminalPlusV2

Fork of SerialIO by Max Scordamaglia

Console Serial IO con display OLED e seriale asincrona

Files at this revision

API Documentation at this revision

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

AserialIOFuncLib.lib Show annotated file Show diff for this revision Revisions of this file
Functions.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- 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
             }