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-06-27
- Revision:
- 9:9ad85b6bd9cf
- Parent:
- 8:3f1d8c55b3a0
- Child:
- 13:92303a41947a
File content as of revision 9:9ad85b6bd9cf:
#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"); 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"); 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"); 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"); 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))); //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"); } sc.commitScreen(); } void pressed() { //vedere come rimediare sc.pressed(); }