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:
Sat Sep 26 01:02:23 2015 +0000
Revision:
35:e9e9d518c354
Parent:
34:9f52d82995ea
Child:
36:9ecb98d7c2cd
Ridisegnata interfaccia per nuova console progetto Glass

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 23:b7bd85345617 12 void scsa()
MaxScorda 23:b7bd85345617 13 {
MaxScorda 23:b7bd85345617 14 //Funzione per screensaver
MaxScorda 23:b7bd85345617 15 inverseDisp(dispType);
MaxScorda 23:b7bd85345617 16 }
MaxScorda 7:f57abb3f0d3f 17
MaxScorda 29:bfb815540de7 18
MaxScorda 29:bfb815540de7 19 void parserVT100(char stringa[])
MaxScorda 29:bfb815540de7 20 {
MaxScorda 29:bfb815540de7 21 string func; //funzione l=led
MaxScorda 29:bfb815540de7 22 string funcnum; //funzione ordinata 1,2,3 ecc
MaxScorda 29:bfb815540de7 23 string param; //parametro on, off
MaxScorda 29:bfb815540de7 24 string strIn = string(stringa);
MaxScorda 29:bfb815540de7 25 bool errp=1;
MaxScorda 29:bfb815540de7 26 //pad a 4
MaxScorda 29:bfb815540de7 27 strIn=fnzAdd.padstr(strIn,5,' ');
MaxScorda 29:bfb815540de7 28 strIn=fnzAdd.addEOS(strIn);
MaxScorda 29:bfb815540de7 29 //split
MaxScorda 29:bfb815540de7 30 func=strIn.substr(0,1);
MaxScorda 29:bfb815540de7 31 funcnum=strIn.substr(1,1);
MaxScorda 29:bfb815540de7 32 param=strIn.substr(2,3);
MaxScorda 29:bfb815540de7 33 //write param
MaxScorda 35:e9e9d518c354 34 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(func)),11,4,10,1); //p01
MaxScorda 35:e9e9d518c354 35 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(funcnum)),39,4,10,1); //p02
MaxScorda 35:e9e9d518c354 36 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(param)),61,4,10,1); //p03
MaxScorda 29:bfb815540de7 37 //write input string
MaxScorda 35:e9e9d518c354 38 term.formatPrintf(fnzAdd.string2char(strIn),21,14,10,1); //p51
MaxScorda 29:bfb815540de7 39 //term.formatPrintf(((char*)func.c_str() ,02,07); funziona anche cosi'
MaxScorda 29:bfb815540de7 40
MaxScorda 29:bfb815540de7 41 //extra serial output (output reale su arduino default true)
MaxScorda 32:b7859f48942a 42 if (func=="r") {
MaxScorda 32:b7859f48942a 43 if (funcnum=="s") {
MaxScorda 29:bfb815540de7 44 if (param=="on ") {
MaxScorda 29:bfb815540de7 45 realExtraSerial=true;
MaxScorda 35:e9e9d518c354 46 term.formatPrintf("ON \n",62,10,3,1); //p31
MaxScorda 35:e9e9d518c354 47 term.formatPrintf("RS Attiva \n",61,14,99,1); //p52
MaxScorda 34:9f52d82995ea 48 printDisp(dispType,"RS Attiva \n\r");
MaxScorda 29:bfb815540de7 49 errp=0;
MaxScorda 29:bfb815540de7 50 }
MaxScorda 29:bfb815540de7 51 if (param=="off") {
MaxScorda 29:bfb815540de7 52 realExtraSerial=false;
MaxScorda 35:e9e9d518c354 53 term.formatPrintf("OFF\n",62,10,3,1); //p31
MaxScorda 35:e9e9d518c354 54 term.formatPrintf("RS Disattivata \n",61,14,99); //p52
MaxScorda 34:9f52d82995ea 55 if (realExtraSerial==false) ardser.printf("\nRS OFF \n\r");
MaxScorda 34:9f52d82995ea 56 printDisp(dispType,"RS Disattivata \n\r");
MaxScorda 29:bfb815540de7 57 errp=0;
MaxScorda 29:bfb815540de7 58 }
MaxScorda 29:bfb815540de7 59 }
MaxScorda 29:bfb815540de7 60 }
MaxScorda 35:e9e9d518c354 61
MaxScorda 35:e9e9d518c354 62 //led for test
MaxScorda 35:e9e9d518c354 63 if (func=="l") {
MaxScorda 35:e9e9d518c354 64 if (funcnum=="1") {
MaxScorda 35:e9e9d518c354 65 if (param=="on ") {
MaxScorda 35:e9e9d518c354 66 term.formatPrintf("Led ACCESO \n",61,14,99,1); //p52
MaxScorda 35:e9e9d518c354 67 if (realExtraSerial==false) ardser.printf("\nLed ACCESO \n\r");
MaxScorda 35:e9e9d518c354 68 printDisp(dispType,"Led ACCESO \n\r");
MaxScorda 35:e9e9d518c354 69 led.onOff(1); //Accende il led
MaxScorda 35:e9e9d518c354 70 errp=0;
MaxScorda 35:e9e9d518c354 71 }
MaxScorda 35:e9e9d518c354 72 if (param=="off") {
MaxScorda 35:e9e9d518c354 73 term.formatPrintf("Led SPENTO! \n",61,14,99); //p52
MaxScorda 35:e9e9d518c354 74 if (realExtraSerial==false) ardser.printf("\nLed SPENTO! \n\r");
MaxScorda 35:e9e9d518c354 75 printDisp(dispType,"Led SPENTO \n\r");
MaxScorda 35:e9e9d518c354 76 led.onOff(0); //Spegne il led
MaxScorda 35:e9e9d518c354 77 errp=0;
MaxScorda 35:e9e9d518c354 78 }
MaxScorda 29:bfb815540de7 79 }
MaxScorda 29:bfb815540de7 80 }
MaxScorda 35:e9e9d518c354 81
MaxScorda 29:bfb815540de7 82 //command SYNTH
MaxScorda 32:b7859f48942a 83 if (((func>="0") && (func<="9")) || (func=="n")) {
MaxScorda 29:bfb815540de7 84 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 35:e9e9d518c354 85 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),21,14,8,1); //p51
MaxScorda 35:e9e9d518c354 86 term.formatPrintf("Arduino Command \n",61,14,10,1); //p52
MaxScorda 29:bfb815540de7 87 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+funcnum+param+"\r")));
MaxScorda 29:bfb815540de7 88 printDisp(dispType,"Arduino Command \n\r");
MaxScorda 29:bfb815540de7 89 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r")));
MaxScorda 29:bfb815540de7 90 //ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)));
MaxScorda 29:bfb815540de7 91 errp=0;
MaxScorda 29:bfb815540de7 92 }
MaxScorda 29:bfb815540de7 93 }
MaxScorda 29:bfb815540de7 94
MaxScorda 29:bfb815540de7 95 // comando fuori parsing
MaxScorda 29:bfb815540de7 96 if (errp==1) {
MaxScorda 32:b7859f48942a 97 term.forgcol(1);
MaxScorda 35:e9e9d518c354 98 term.formatPrintf("Bad Command\n",61,14,10,1); //p52
MaxScorda 32:b7859f48942a 99 term.forgcol(9);
MaxScorda 29:bfb815540de7 100 if (realExtraSerial==false) ardser.printf("Bad command\n\r");
MaxScorda 29:bfb815540de7 101 printDisp(dispType,"** Bad command ** \n\r");
MaxScorda 29:bfb815540de7 102 }
MaxScorda 29:bfb815540de7 103 term.readypos();
MaxScorda 29:bfb815540de7 104 }
MaxScorda 29:bfb815540de7 105
MaxScorda 29:bfb815540de7 106
MaxScorda 28:f7a59cee5f0d 107 void writeInput(char stringa[])
MaxScorda 28:f7a59cee5f0d 108 {
MaxScorda 28:f7a59cee5f0d 109 string strIn = string(stringa);
MaxScorda 28:f7a59cee5f0d 110 strIn=fnzAdd.addEOS(strIn);
MaxScorda 28:f7a59cee5f0d 111 //ardser.printf(strIn+" \n\r");
MaxScorda 33:19d1d8bc5891 112 term.formatPrintf(fnzAdd.string2char(strIn),18,21,10,1);
MaxScorda 29:bfb815540de7 113 term.readypos();
MaxScorda 29:bfb815540de7 114 }
MaxScorda 28:f7a59cee5f0d 115
MaxScorda 7:f57abb3f0d3f 116
MaxScorda 7:f57abb3f0d3f 117 void pressed()
MaxScorda 7:f57abb3f0d3f 118 {
MaxScorda 7:f57abb3f0d3f 119 //vedere come rimediare
MaxScorda 33:19d1d8bc5891 120 term.forgcol(1);
MaxScorda 33:19d1d8bc5891 121 term.formatPrintf("Button \n",21,8,5,10);
MaxScorda 33:19d1d8bc5891 122 term.forgcol(9);
MaxScorda 33:19d1d8bc5891 123 printDisp(dispType,"Button pressed\n\r");
MaxScorda 33:19d1d8bc5891 124 term.readypos();
MaxScorda 33:19d1d8bc5891 125 led.flash(4);
MaxScorda 35:e9e9d518c354 126 }
MaxScorda 7:f57abb3f0d3f 127
MaxScorda 7:f57abb3f0d3f 128
MaxScorda 8:3f1d8c55b3a0 129
MaxScorda 9:9ad85b6bd9cf 130