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

Committer:
MaxScorda
Date:
Sun May 31 22:00:40 2015 +0000
Revision:
7:f57abb3f0d3f
Child:
8:3f1d8c55b3a0
Avanzamento parsing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MaxScorda 7:f57abb3f0d3f 1 #include <string>
MaxScorda 7:f57abb3f0d3f 2 #include "IOFuncLib.h"
MaxScorda 7:f57abb3f0d3f 3 genFunctions fnzAdd; //messa qui rende la raccolta funzioni indipendente
MaxScorda 7:f57abb3f0d3f 4
MaxScorda 7:f57abb3f0d3f 5 void callback()
MaxScorda 7:f57abb3f0d3f 6 {
MaxScorda 7:f57abb3f0d3f 7 // Note: you need to actually read from the serial to clear the RX interrupt
MaxScorda 7:f57abb3f0d3f 8 // ardser.printf("%d \n", cont++);
MaxScorda 7:f57abb3f0d3f 9 // myled2 = !myled2;
MaxScorda 7:f57abb3f0d3f 10 }
MaxScorda 7:f57abb3f0d3f 11
MaxScorda 7:f57abb3f0d3f 12
MaxScorda 7:f57abb3f0d3f 13 void parser(char stringa[])
MaxScorda 7:f57abb3f0d3f 14 {
MaxScorda 7:f57abb3f0d3f 15 /*
MaxScorda 7:f57abb3f0d3f 16 char func[4];
MaxScorda 7:f57abb3f0d3f 17 char param[4]
MaxScorda 7:f57abb3f0d3f 18
MaxScorda 7:f57abb3f0d3f 19 //assumiamo che func sia 2 e param 2
MaxScorda 7:f57abb3f0d3f 20 strncpy(func,stringa,2);
MaxScorda 7:f57abb3f0d3f 21 strcpy(param,fnz.substr(stringa, 2, 2));
MaxScorda 7:f57abb3f0d3f 22 func[2]='\n';
MaxScorda 7:f57abb3f0d3f 23 param[2]='\n';
MaxScorda 7:f57abb3f0d3f 24 sc.writeScreen(func,2,15);
MaxScorda 7:f57abb3f0d3f 25 sc.writeScreen(param,20,15);
MaxScorda 7:f57abb3f0d3f 26 sc.writeScreen((char*)str.c_str() ,10,16);
MaxScorda 7:f57abb3f0d3f 27 */
MaxScorda 7:f57abb3f0d3f 28 string func; //funzione l=led
MaxScorda 7:f57abb3f0d3f 29 string funcnum; //funzione ordinata 1,2,3 ecc
MaxScorda 7:f57abb3f0d3f 30 string param; //parametro on, off
MaxScorda 7:f57abb3f0d3f 31 string strIn = string(stringa);
MaxScorda 7:f57abb3f0d3f 32 strIn.insert(strIn.size(), 4 - strIn.size(), '.'); //pad
MaxScorda 7:f57abb3f0d3f 33 strIn=fnzAdd.addEOS(strIn);
MaxScorda 7:f57abb3f0d3f 34 //strIn=strIn+"\n";
MaxScorda 7:f57abb3f0d3f 35 func=strIn.substr(0,1);
MaxScorda 7:f57abb3f0d3f 36 funcnum=strIn.substr(1,1);
MaxScorda 7:f57abb3f0d3f 37 param=strIn.substr(2,2);
MaxScorda 7:f57abb3f0d3f 38 sc.writeScreen(fnzAdd.string2char(func),2,15);
MaxScorda 7:f57abb3f0d3f 39 sc.writeScreen(fnzAdd.string2char(param),20,15);
MaxScorda 7:f57abb3f0d3f 40 sc.writeScreen((char*)strIn.c_str() ,10,16);
MaxScorda 7:f57abb3f0d3f 41
MaxScorda 7:f57abb3f0d3f 42 //switch
MaxScorda 7:f57abb3f0d3f 43
MaxScorda 7:f57abb3f0d3f 44 bool errp=1;
MaxScorda 7:f57abb3f0d3f 45 //confronta la stringa ricevuta con le costanti accettate per il comando di accensione del led
MaxScorda 7:f57abb3f0d3f 46 //la funzione strcmp fa parte della libreria string standard del C e confronta 2 stringhe
MaxScorda 7:f57abb3f0d3f 47 //restituendo 0 se le stringhe sono uguali.
MaxScorda 7:f57abb3f0d3f 48 if ((strcmp(stringa,"on")==0) ||(strcmp(stringa,"acceso")==0) ||(strcmp(stringa,"apriti sesamo")==0)) {
MaxScorda 7:f57abb3f0d3f 49 // pc.printf("Led ACCESO \n\r");
MaxScorda 7:f57abb3f0d3f 50 sc.writeScreen("Led ACCESO \n",2,10);
MaxScorda 7:f57abb3f0d3f 51 ardser.printf("\nLed ACCESO \n\r");
MaxScorda 7:f57abb3f0d3f 52 led.onOff(1); //Accende il led
MaxScorda 7:f57abb3f0d3f 53 errp=0;
MaxScorda 7:f57abb3f0d3f 54 sc.commitScreen();
MaxScorda 7:f57abb3f0d3f 55 }
MaxScorda 7:f57abb3f0d3f 56 //Confronto per i comandi di spegnimento del led
MaxScorda 7:f57abb3f0d3f 57 if ((strcmp(stringa,"off")==0) ||(strcmp(stringa,"spento")==0) ||(strcmp(stringa,"chiuditi sesamo")==0)) {
MaxScorda 7:f57abb3f0d3f 58 // pc.printf("Led SPENTO !\n\r");
MaxScorda 7:f57abb3f0d3f 59 sc.writeScreen("Led SPENTO! \n",2,10);
MaxScorda 7:f57abb3f0d3f 60 ardser.printf("\nLed SPENTO! \n\r");
MaxScorda 7:f57abb3f0d3f 61 led.onOff(0); // spegne il led
MaxScorda 7:f57abb3f0d3f 62 errp=0;
MaxScorda 7:f57abb3f0d3f 63 sc.commitScreen();
MaxScorda 7:f57abb3f0d3f 64 }
MaxScorda 7:f57abb3f0d3f 65 if (errp==1) {
MaxScorda 7:f57abb3f0d3f 66 // pc.printf("Bad command\n\r");
MaxScorda 7:f57abb3f0d3f 67 sc.writeScreen("Bad Command\n",2,10);
MaxScorda 7:f57abb3f0d3f 68 ardser.printf("\nBad command\n\r");
MaxScorda 7:f57abb3f0d3f 69 sc.commitScreen();
MaxScorda 7:f57abb3f0d3f 70 }
MaxScorda 7:f57abb3f0d3f 71 }
MaxScorda 7:f57abb3f0d3f 72
MaxScorda 7:f57abb3f0d3f 73
MaxScorda 7:f57abb3f0d3f 74 void pressed()
MaxScorda 7:f57abb3f0d3f 75 {
MaxScorda 7:f57abb3f0d3f 76 //vedere come rimediare
MaxScorda 7:f57abb3f0d3f 77 sc.pressed();
MaxScorda 7:f57abb3f0d3f 78 }
MaxScorda 7:f57abb3f0d3f 79
MaxScorda 7:f57abb3f0d3f 80