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
Functions.h
- Committer:
- MaxScorda
- Date:
- 2015-08-16
- Revision:
- 17:7c8c37fbec9f
- Parent:
- 16:4c893ec05fc6
- Child:
- 18:dbe0172cca20
File content as of revision 17:7c8c37fbec9f:
#include <string> #include "IOFuncLib.h" genFunctions fnzAdd; //messa qui rende la raccolta funzioni indipendente void callback() { // Note: you need to actually read from the serial to clear the RX interrupt // ardser.printf("%d \n", cont++); // myled2 = !myled2; } void parser(char stringa[]) { string func; //funzione l=led string funcnum; //funzione ordinata 1,2,3 ecc string param; //parametro on, off string strIn = string(stringa); bool errp=1; //pad a 4 strIn=fnzAdd.padstr(strIn,5,' '); strIn=fnzAdd.addEOS(strIn); //split func=strIn.substr(0,1); funcnum=strIn.substr(1,1); param=strIn.substr(2,3); //write param sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(func)),2,8,15); 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((char*)func.c_str() ,02,07); funziona anche cosi' //led if (func=="l") { if (funcnum=="1") { if (param=="on ") { sc.writeScreen("ON \n",2,14,3); sc.writeScreen("Led ACCESO \n",42,20,99); 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); ardser.printf("\nLed SPENTO! \n\r"); printDisp(dispType,"Led SPENTO \n\r"); led.onOff(0); //Spegne il led errp=0; } } } //virtual if (func=="v") { if (funcnum=="1") { if (param=="on ") { sc.writeScreen("ON \n",22,14); sc.writeScreen("Virtual ACCESO \n",42,20,99); ardser.printf("\nVirtual ACCESO \n\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); ardser.printf("\nVirtual SPENTO! \n\r"); printDisp(dispType,"Virtual SPENTO \n\r"); errp=0; } } } //command SYNTH if ((func>="1") && (func<="9")) { if ((funcnum>="1") && (funcnum<="9")) { sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),42,14,4); sc.writeScreen("Arduino Command \n",42,20,99); ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+funcnum+param))); printDisp(dispType,"Arduino Command \n\r"); printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r"))); //ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param))); errp=0; } } // comando fuori parsing if (errp==1) { // pc.printf("Bad command\n\r"); sc.writeScreen("Bad Command\n",42,20,99); ardser.printf("\nBad command\n\r"); printDisp(dispType,"** Bad command ** \n\r"); } sc.commitScreen(); } void pressed() { //vedere come rimediare sc.pressed(); }