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-18
- Revision:
- 20:fc0a3050c5d1
- Parent:
- 19:8a436200d76c
- Child:
- 21:a867c9454f21
File content as of revision 20:fc0a3050c5d1:
#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' //extra serial output (output reale su arduino default true) if (func=="s") { if (funcnum=="r") { if (param=="on ") { realExtraSerial=true; sc.writeScreen("ON \n",62,14,3); errp=0; } if (param=="off") { realExtraSerial=false; sc.writeScreen("OFF\n",62,14); errp=0; } } } //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(true); //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(false); //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); if (realExtraSerial==false) 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); if (realExtraSerial==false) ardser.printf("\nVirtual SPENTO! \n\r"); printDisp(dispType,"Virtual SPENTO \n\r"); errp=0; } } } //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); 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"))); //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); if (realExtraSerial==false) ardser.printf("\nBad command\n\r"); printDisp(dispType,"** Bad command ** \n\r"); } sc.commitScreen(); } void pressed() { //vedere come rimediare sc.pressed(); }