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 Aug 16 23:20:44 2015 +0000
Revision:
13:92303a41947a
Parent:
9:9ad85b6bd9cf
Child:
15:7d756492af23
1ok

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 string func; //funzione l=led
MaxScorda 7:f57abb3f0d3f 16 string funcnum; //funzione ordinata 1,2,3 ecc
MaxScorda 7:f57abb3f0d3f 17 string param; //parametro on, off
MaxScorda 7:f57abb3f0d3f 18 string strIn = string(stringa);
MaxScorda 8:3f1d8c55b3a0 19 bool errp=1;
MaxScorda 8:3f1d8c55b3a0 20 //pad a 4
MaxScorda 8:3f1d8c55b3a0 21 strIn=fnzAdd.padstr(strIn,5,' ');
MaxScorda 7:f57abb3f0d3f 22 strIn=fnzAdd.addEOS(strIn);
MaxScorda 8:3f1d8c55b3a0 23 //split
MaxScorda 7:f57abb3f0d3f 24 func=strIn.substr(0,1);
MaxScorda 7:f57abb3f0d3f 25 funcnum=strIn.substr(1,1);
MaxScorda 8:3f1d8c55b3a0 26 param=strIn.substr(2,3);
MaxScorda 8:3f1d8c55b3a0 27 //write param
MaxScorda 8:3f1d8c55b3a0 28 sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(func)),2,8,15);
MaxScorda 8:3f1d8c55b3a0 29 sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(funcnum)),22,8,15);
MaxScorda 8:3f1d8c55b3a0 30 sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(param)),42,8,15);
MaxScorda 8:3f1d8c55b3a0 31 //write input string
MaxScorda 8:3f1d8c55b3a0 32 sc.writeScreen(fnzAdd.string2char(strIn),2,20,20);
MaxScorda 8:3f1d8c55b3a0 33 //sc.writeScreen((char*)func.c_str() ,02,07); funziona anche cosi'
MaxScorda 7:f57abb3f0d3f 34
MaxScorda 13:92303a41947a 35 //led
MaxScorda 8:3f1d8c55b3a0 36 if (func=="l") {
MaxScorda 8:3f1d8c55b3a0 37 if (funcnum=="1") {
MaxScorda 8:3f1d8c55b3a0 38 if (param=="on ") {
MaxScorda 8:3f1d8c55b3a0 39 sc.writeScreen("ON \n",2,14,3);
MaxScorda 8:3f1d8c55b3a0 40 sc.writeScreen("Led ACCESO \n",42,20,99);
MaxScorda 8:3f1d8c55b3a0 41 ardser.printf("\nLed ACCESO \n\r");
MaxScorda 13:92303a41947a 42 printDisp(0,"Led ACCESO \n\r");
MaxScorda 8:3f1d8c55b3a0 43 led.onOff(1); //Accende il led
MaxScorda 8:3f1d8c55b3a0 44 errp=0;
MaxScorda 8:3f1d8c55b3a0 45 }
MaxScorda 8:3f1d8c55b3a0 46 if (param=="off") {
MaxScorda 8:3f1d8c55b3a0 47 sc.writeScreen("OFF \n",2,14);
MaxScorda 8:3f1d8c55b3a0 48 sc.writeScreen("Led SPENTO! \n",42,20,99);
MaxScorda 8:3f1d8c55b3a0 49 ardser.printf("\nLed SPENTO! \n\r");
MaxScorda 13:92303a41947a 50 printDisp(0,"Led SPENTO \n\r");
MaxScorda 8:3f1d8c55b3a0 51 led.onOff(0); //Spegne il led
MaxScorda 8:3f1d8c55b3a0 52 errp=0;
MaxScorda 8:3f1d8c55b3a0 53 }
MaxScorda 8:3f1d8c55b3a0 54 }
MaxScorda 7:f57abb3f0d3f 55 }
MaxScorda 8:3f1d8c55b3a0 56 //virtual
MaxScorda 8:3f1d8c55b3a0 57 if (func=="v") {
MaxScorda 8:3f1d8c55b3a0 58 if (funcnum=="1") {
MaxScorda 8:3f1d8c55b3a0 59 if (param=="on ") {
MaxScorda 8:3f1d8c55b3a0 60 sc.writeScreen("ON \n",22,14);
MaxScorda 8:3f1d8c55b3a0 61 sc.writeScreen("Virtual ACCESO \n",42,20,99);
MaxScorda 8:3f1d8c55b3a0 62 ardser.printf("\nVirtual ACCESO \n\r");
MaxScorda 8:3f1d8c55b3a0 63 errp=0;
MaxScorda 8:3f1d8c55b3a0 64 }
MaxScorda 8:3f1d8c55b3a0 65 if (param=="off") {
MaxScorda 8:3f1d8c55b3a0 66 sc.writeScreen("OFF \n",22,14);
MaxScorda 8:3f1d8c55b3a0 67 sc.writeScreen("Virtual SPENTO! \n",42,20,99);
MaxScorda 8:3f1d8c55b3a0 68 ardser.printf("\nVirtual SPENTO! \n\r");
MaxScorda 8:3f1d8c55b3a0 69 errp=0;
MaxScorda 8:3f1d8c55b3a0 70 }
MaxScorda 8:3f1d8c55b3a0 71 }
MaxScorda 7:f57abb3f0d3f 72 }
MaxScorda 13:92303a41947a 73
MaxScorda 9:9ad85b6bd9cf 74 //command SYNTH
MaxScorda 9:9ad85b6bd9cf 75 if ((func>="1") && (func<="9")) {
MaxScorda 9:9ad85b6bd9cf 76 if ((funcnum>="1") && (funcnum<="9")) {
MaxScorda 9:9ad85b6bd9cf 77 sc.writeScreen(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),42,14,4);
MaxScorda 9:9ad85b6bd9cf 78 sc.writeScreen("Arduino Command \n",42,20,99);
MaxScorda 9:9ad85b6bd9cf 79 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+funcnum+param)));
MaxScorda 9:9ad85b6bd9cf 80 //ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)));
MaxScorda 9:9ad85b6bd9cf 81 errp=0;
MaxScorda 9:9ad85b6bd9cf 82 }
MaxScorda 13:92303a41947a 83 }
MaxScorda 8:3f1d8c55b3a0 84
MaxScorda 8:3f1d8c55b3a0 85 // comando fuori parsing
MaxScorda 7:f57abb3f0d3f 86 if (errp==1) {
MaxScorda 7:f57abb3f0d3f 87 // pc.printf("Bad command\n\r");
MaxScorda 8:3f1d8c55b3a0 88 sc.writeScreen("Bad Command\n",42,20,99);
MaxScorda 7:f57abb3f0d3f 89 ardser.printf("\nBad command\n\r");
MaxScorda 7:f57abb3f0d3f 90 }
MaxScorda 13:92303a41947a 91 sc.commitScreen();
MaxScorda 7:f57abb3f0d3f 92 }
MaxScorda 7:f57abb3f0d3f 93
MaxScorda 7:f57abb3f0d3f 94
MaxScorda 7:f57abb3f0d3f 95 void pressed()
MaxScorda 7:f57abb3f0d3f 96 {
MaxScorda 7:f57abb3f0d3f 97 //vedere come rimediare
MaxScorda 7:f57abb3f0d3f 98 sc.pressed();
MaxScorda 7:f57abb3f0d3f 99 }
MaxScorda 7:f57abb3f0d3f 100
MaxScorda 7:f57abb3f0d3f 101
MaxScorda 8:3f1d8c55b3a0 102
MaxScorda 9:9ad85b6bd9cf 103