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
Diff: main.cpp
- Revision:
- 5:4d547f4c1278
- Parent:
- 4:aa08e8d5ac27
- Child:
- 6:f8865b6d592a
diff -r aa08e8d5ac27 -r 4d547f4c1278 main.cpp --- 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); } } }