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

Revision:
5:4d547f4c1278
Parent:
4:aa08e8d5ac27
Child:
6:f8865b6d592a
--- a/main.cpp	Sat May 23 00:41:25 2015 +0000
+++ b/main.cpp	Sun May 24 18:38:44 2015 +0000
@@ -8,6 +8,7 @@
 Serial ardser(PA_11, PA_12); //Apertura della seriale 1 *opzionale vedi sotto
 //init funzioni personal lib
 Flasher led(LED1);
+Screen sc(&pc);
 //var
 int cont=0;
 
@@ -15,16 +16,9 @@
 
 void pressed()
 {
-    pc.printf("\f");
-    pc.printf("*** Reset Screen ***\n\r\n");
+    sc.pressed();
 }
 
-void banner()
-{
-    pc.printf("\f");
-    pc.printf("----- Boot screen -----\n\r");
-    pc.printf("--- Nucleo Scorda IO Test ---\n\r\n");
-}
 
 void callback()
 {
@@ -34,10 +28,30 @@
 }
 
 
-void parser(char stringa[]) {
-    
-    
+void parser(char stringa[])
+{
+    bool errp=1;
+//confronta la stringa ricevuta con le costanti accettate per il comando di accensione del led
+//la funzione strcmp fa parte della libreria string standard del C e confronta 2 stringhe
+//restituendo 0 se le stringhe sono uguali.
+    if ((strcmp(stringa,"on")==0) ||(strcmp(stringa,"acceso")==0) ||(strcmp(stringa,"apriti sesamo")==0)) {
+        pc.printf("Led ACCESO \n\r");
+        ardser.printf("\nLed ACCESO \n\r");
+        led.onOff(1); //Accende il led
+        errp=0;
     }
+    //Confronto per i comandi di spegnimento del led
+    if ((strcmp(stringa,"off")==0) ||(strcmp(stringa,"spento")==0) ||(strcmp(stringa,"chiuditi sesamo")==0)) {
+        pc.printf("Led SPENTO !\n\r");
+        ardser.printf("\nLed SPENTO! \n\r");
+        led.onOff(0); // spegne il led
+        errp=0;
+    }
+    if (errp==1) {
+        pc.printf("Bad command\n\r");
+        ardser.printf("\nBad command\n\r");
+    }
+}
 //-------------- fine funzioni
 
 int main()
@@ -51,7 +65,7 @@
     //pc.format(int bits=8, Parity parity=SerialBase::None, int stop_bits=1)
 
     mybutton.fall(&pressed);
-    banner();
+    sc.banner();
 
     while(1) {
         ardser.attach(&callback);
@@ -64,20 +78,8 @@
             pc.printf("\n\r");
             buffer[i]=0; //se è un CR inserisci un carattere nullo nel buffer per delimitare la stringa
             i=0; //azzera la posizione del puntatore del buffer pronto per la ricezione di una nuova stringa
-            if ((strcmp(buffer,"on")==0) // confronta la stringa ricevuta con le costanti accettate per il comando di accensione del led
-                    ||(strcmp(buffer,"acceso")==0) //la funzione strcmp fa parte della libreria string standard del C e confronta 2 stringhe
-                    ||(strcmp(buffer,"apriti sesamo")==0)) { //restituendo 0 se le stringhe sono uguali.
-                pc.printf("Led ACCESO \n\r");
-                ardser.printf("\nLed ACCESO \n\r");
-                led.onOff(1); //Accende il led
-            }
-            if ((strcmp(buffer,"off")==0) //Confronto per i comandi di spegnimento del led
-                    ||(strcmp(buffer,"spento")==0)
-                    ||(strcmp(buffer,"chiuditi sesamo")==0)) {
-                pc.printf("Led SPENTO !\n\r");
-                ardser.printf("\nLed SPENTO! \n\r");
-                led.onOff(0); // spegne il led
-            }
+            ardser.printf("\nxx\n\r");
+            parser(buffer);
         }
     }
 }