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:
Thu Dec 24 01:38:56 2015 +0000
Revision:
38:d88296cbb39c
Parent:
36:9ecb98d7c2cd
Child:
39:0d7165083e7a
Sistemazione Output, pre passaggio dati

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MaxScorda 38:d88296cbb39c 1 bool funcOut(string func, string funcnum, string param, string sstr)
MaxScorda 36:9ecb98d7c2cd 2 {
MaxScorda 38:d88296cbb39c 3 //fare
MaxScorda 36:9ecb98d7c2cd 4 bool errp=1;
MaxScorda 38:d88296cbb39c 5 char funcc;
MaxScorda 38:d88296cbb39c 6 int tempcc=0;
MaxScorda 38:d88296cbb39c 7 funcc=*fnzAdd.string2char(fnzAdd.addEOS(funcnum));
MaxScorda 38:d88296cbb39c 8
MaxScorda 38:d88296cbb39c 9 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 38:d88296cbb39c 10 while (menu_funcChoice[tempcc]!="z") {
MaxScorda 38:d88296cbb39c 11 tempcc++;
MaxScorda 38:d88296cbb39c 12 }
MaxScorda 38:d88296cbb39c 13 if (menu_funcChoice[tempcc]=="z") tempcc--;
MaxScorda 38:d88296cbb39c 14 funcidx=tempcc;
MaxScorda 38:d88296cbb39c 15
MaxScorda 36:9ecb98d7c2cd 16 errp=0;
MaxScorda 36:9ecb98d7c2cd 17 }
MaxScorda 36:9ecb98d7c2cd 18 return errp;
MaxScorda 36:9ecb98d7c2cd 19 }
MaxScorda 38:d88296cbb39c 20 //********************* Init: chiama Arduino al boot e chiama i paramtri
MaxScorda 38:d88296cbb39c 21 bool initFunc(string func, string funcnum, string param)
MaxScorda 38:d88296cbb39c 22 {
MaxScorda 38:d88296cbb39c 23 bool errp=1;
MaxScorda 38:d88296cbb39c 24
MaxScorda 38:d88296cbb39c 25 if (funcnum=="1") {
MaxScorda 38:d88296cbb39c 26 // errp=menuIn("0", param);
MaxScorda 38:d88296cbb39c 27
MaxScorda 38:d88296cbb39c 28 }
MaxScorda 38:d88296cbb39c 29 return errp;
MaxScorda 38:d88296cbb39c 30 }
MaxScorda 38:d88296cbb39c 31
MaxScorda 38:d88296cbb39c 32
MaxScorda 38:d88296cbb39c 33 //********************* Led
MaxScorda 38:d88296cbb39c 34 bool Lfunc(string func, string funcnum, string param)
MaxScorda 38:d88296cbb39c 35 {
MaxScorda 38:d88296cbb39c 36 bool errp=1;
MaxScorda 38:d88296cbb39c 37
MaxScorda 38:d88296cbb39c 38 if (funcnum=="1") {
MaxScorda 38:d88296cbb39c 39 if (param=="on ") {
MaxScorda 38:d88296cbb39c 40 term.formatPrintf("Led ACCESO \n",61,p52,99,1); //p52
MaxScorda 38:d88296cbb39c 41 if (realExtraSerial==false) ardser.printf("\nLed ACCESO \n\r");
MaxScorda 38:d88296cbb39c 42 printDisp(dispType,"Led ACCESO \n\r");
MaxScorda 38:d88296cbb39c 43 led.onOff(1); //Accende il led
MaxScorda 38:d88296cbb39c 44 errp=0;
MaxScorda 38:d88296cbb39c 45 }
MaxScorda 38:d88296cbb39c 46 if (param=="off") {
MaxScorda 38:d88296cbb39c 47 term.formatPrintf("Led SPENTO! \n",61,p52,99,1); //p52
MaxScorda 38:d88296cbb39c 48 if (realExtraSerial==false) ardser.printf("\nLed SPENTO! \n\r");
MaxScorda 38:d88296cbb39c 49 printDisp(dispType,"Led SPENTO \n\r");
MaxScorda 38:d88296cbb39c 50 led.onOff(0); //Spegne il led
MaxScorda 38:d88296cbb39c 51 errp=0;
MaxScorda 38:d88296cbb39c 52 }
MaxScorda 38:d88296cbb39c 53 }
MaxScorda 38:d88296cbb39c 54 return errp;
MaxScorda 38:d88296cbb39c 55 }
MaxScorda 38:d88296cbb39c 56
MaxScorda 38:d88296cbb39c 57
MaxScorda 38:d88296cbb39c 58 //********************** cambio menu
MaxScorda 38:d88296cbb39c 59
MaxScorda 38:d88296cbb39c 60 bool funcfromMenu(string func, string funcnum, string param, string sstr)
MaxScorda 38:d88296cbb39c 61 {
MaxScorda 38:d88296cbb39c 62 // funzione di load funzioni da menu scelto
MaxScorda 38:d88296cbb39c 63 bool errp=1;
MaxScorda 38:d88296cbb39c 64 char funcc;
MaxScorda 38:d88296cbb39c 65 char tempm;
MaxScorda 38:d88296cbb39c 66 int ccmenu=0;
MaxScorda 38:d88296cbb39c 67 int ccfun=0;
MaxScorda 38:d88296cbb39c 68 string funzionen;
MaxScorda 38:d88296cbb39c 69 funcc=*fnzAdd.string2char(fnzAdd.addEOS(funcnum));
MaxScorda 38:d88296cbb39c 70
MaxScorda 38:d88296cbb39c 71 //filtro vettore funzioni in base la menu
MaxScorda 38:d88296cbb39c 72 do {
MaxScorda 38:d88296cbb39c 73 // confronto il primo carattere dell vettore funzioni col primo carattere del menu
MaxScorda 38:d88296cbb39c 74 funzionen=menu_function[ccmenu];
MaxScorda 38:d88296cbb39c 75 tempm=*fnzAdd.string2char(funzionen.substr(0,1));
MaxScorda 38:d88296cbb39c 76 // se = metto il valore del vettore funzioni nel vettore funzioni scelte
MaxScorda 38:d88296cbb39c 77 if (tempm==funcc) {
MaxScorda 38:d88296cbb39c 78 menu_funcChoice[ccfun]=menu_function[ccmenu];
MaxScorda 38:d88296cbb39c 79 ccfun++;
MaxScorda 38:d88296cbb39c 80 }
MaxScorda 38:d88296cbb39c 81 ccmenu++;
MaxScorda 38:d88296cbb39c 82 } while ((ccmenu<10) && (funcc!='z')) ;
MaxScorda 38:d88296cbb39c 83 funcidx=0;
MaxScorda 38:d88296cbb39c 84 //azzero da dove sono in giu'
MaxScorda 38:d88296cbb39c 85 for (int i = fnzAdd.c2i(funcc)+1; i <=funcidx ; i++) {
MaxScorda 38:d88296cbb39c 86 term.formatPrintf("\n",42,4+i,38);
MaxScorda 38:d88296cbb39c 87 }
MaxScorda 38:d88296cbb39c 88 //scrico dalla prima allo scelto
MaxScorda 38:d88296cbb39c 89 for (int i = 0; i <=fnzAdd.c2i(funcc) ; i++) {
MaxScorda 38:d88296cbb39c 90 term.formatPrintf(fnzAdd.string2char(menu_funcChoice[i]),42,4+i,38);
MaxScorda 38:d88296cbb39c 91 }
MaxScorda 38:d88296cbb39c 92 errp=0; //per ora non fa nulla, vedere se tenere a uso futuro
MaxScorda 38:d88296cbb39c 93 return errp;
MaxScorda 38:d88296cbb39c 94 }
MaxScorda 38:d88296cbb39c 95
MaxScorda 38:d88296cbb39c 96
MaxScorda 38:d88296cbb39c 97 bool menuOut(string func, string funcnum, string param, string sstr)
MaxScorda 38:d88296cbb39c 98 {
MaxScorda 38:d88296cbb39c 99 bool errp=1;
MaxScorda 38:d88296cbb39c 100 char funcc;
MaxScorda 38:d88296cbb39c 101 funcc=*fnzAdd.string2char(fnzAdd.addEOS(funcnum));
MaxScorda 38:d88296cbb39c 102 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 38:d88296cbb39c 103 //azzero
MaxScorda 38:d88296cbb39c 104 term.formatPrintf(" \n",2,4+menuidx,1);
MaxScorda 38:d88296cbb39c 105 // scrivo
MaxScorda 38:d88296cbb39c 106 menuidx= fnzAdd.c2i(funcc);
MaxScorda 38:d88296cbb39c 107 term.formatPrintf("*\n",2,4+menuidx,1);
MaxScorda 38:d88296cbb39c 108 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS("Menu "+funcnum+"\r")));
MaxScorda 38:d88296cbb39c 109 //chiama la cernita delle funzioni
MaxScorda 38:d88296cbb39c 110 errp=funcfromMenu(func, funcnum, param, sstr); //ritorna sempre 0 (e va bene cosi)
MaxScorda 38:d88296cbb39c 111 }
MaxScorda 38:d88296cbb39c 112 return errp;
MaxScorda 38:d88296cbb39c 113 }
MaxScorda 38:d88296cbb39c 114
MaxScorda 36:9ecb98d7c2cd 115
MaxScorda 36:9ecb98d7c2cd 116 //************************ Random Out
MaxScorda 36:9ecb98d7c2cd 117 bool RfuncOut(string func, string funcnum, string param)
MaxScorda 36:9ecb98d7c2cd 118 {
MaxScorda 36:9ecb98d7c2cd 119 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 120 if (funcnum=="1") {
MaxScorda 36:9ecb98d7c2cd 121 if (param=="on ") {
MaxScorda 36:9ecb98d7c2cd 122 term.formatPrintf("ON \n",61,8,99,1); //p22
MaxScorda 36:9ecb98d7c2cd 123 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS("R11\r")));
MaxScorda 36:9ecb98d7c2cd 124 printDisp(dispType,"Random On \n\r");
MaxScorda 36:9ecb98d7c2cd 125 randomActivate=true;
MaxScorda 36:9ecb98d7c2cd 126 errp=0;
MaxScorda 38:d88296cbb39c 127 } else if (param=="off") {
MaxScorda 36:9ecb98d7c2cd 128 term.formatPrintf("OFF\n",61,8,99,1); //p22
MaxScorda 36:9ecb98d7c2cd 129 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS("R10\r")));
MaxScorda 36:9ecb98d7c2cd 130 printDisp(dispType,"Random OFF\n\r");
MaxScorda 36:9ecb98d7c2cd 131 randomActivate=false;
MaxScorda 36:9ecb98d7c2cd 132 errp=0;
MaxScorda 36:9ecb98d7c2cd 133 }
MaxScorda 36:9ecb98d7c2cd 134 }
MaxScorda 38:d88296cbb39c 135 term.formatPrintf("\n",61,p52,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 136 return errp;
MaxScorda 36:9ecb98d7c2cd 137 }
MaxScorda 36:9ecb98d7c2cd 138
MaxScorda 36:9ecb98d7c2cd 139
MaxScorda 36:9ecb98d7c2cd 140
MaxScorda 36:9ecb98d7c2cd 141 //********************* Start
MaxScorda 36:9ecb98d7c2cd 142 bool StartfuncOut()
MaxScorda 36:9ecb98d7c2cd 143 {
MaxScorda 38:d88296cbb39c 144 term.formatPrintf("Start\n",21,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 145 term.formatPrintf("Start H-Ard\n",61,p52,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 146 ardser.printf("start\r");
MaxScorda 36:9ecb98d7c2cd 147 printDisp(dispType,"Start H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 148 return 0;
MaxScorda 36:9ecb98d7c2cd 149 }
MaxScorda 36:9ecb98d7c2cd 150
MaxScorda 36:9ecb98d7c2cd 151 //********************* Stop
MaxScorda 36:9ecb98d7c2cd 152 bool StopfuncOut()
MaxScorda 36:9ecb98d7c2cd 153 {
MaxScorda 38:d88296cbb39c 154 term.formatPrintf("Stop\n",21,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 155 term.formatPrintf("Stop H-Ard\n",61,p52,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 156 ardser.printf("stop\r");
MaxScorda 36:9ecb98d7c2cd 157 printDisp(dispType,"Stop H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 158 return 0;
MaxScorda 36:9ecb98d7c2cd 159 }
MaxScorda 36:9ecb98d7c2cd 160
MaxScorda 36:9ecb98d7c2cd 161
MaxScorda 38:d88296cbb39c 162 /************************ IN Function *****************************/
MaxScorda 36:9ecb98d7c2cd 163 /******************************************************************/
MaxScorda 36:9ecb98d7c2cd 164 /******************************************************************/
MaxScorda 36:9ecb98d7c2cd 165
MaxScorda 36:9ecb98d7c2cd 166
MaxScorda 38:d88296cbb39c 167 //********************* Menu In
MaxScorda 38:d88296cbb39c 168 bool menuIn(string func, string sstr)
MaxScorda 36:9ecb98d7c2cd 169 {
MaxScorda 36:9ecb98d7c2cd 170 bool errp=1;
MaxScorda 38:d88296cbb39c 171 int funcn;
MaxScorda 38:d88296cbb39c 172 // char funcc=fnzAdd.string2char(sstr.substr(2,1));
MaxScorda 38:d88296cbb39c 173 char funcc;
MaxScorda 38:d88296cbb39c 174 funcc=*fnzAdd.string2char(fnzAdd.addEOS(sstr.substr(2,1)));
MaxScorda 38:d88296cbb39c 175 if (funcc!='z') {
MaxScorda 38:d88296cbb39c 176 //trasformo in intero
MaxScorda 38:d88296cbb39c 177 funcn=fnzAdd.c2i(funcc);
MaxScorda 38:d88296cbb39c 178 //assegno menu al vettore
MaxScorda 38:d88296cbb39c 179 menu_main[funcn]=fnzAdd.addEOS(sstr);
MaxScorda 38:d88296cbb39c 180 //stampo in posizione
MaxScorda 38:d88296cbb39c 181 term.formatPrintf(fnzAdd.string2char(menu_main[funcn]),2,4+funcn,38);
MaxScorda 38:d88296cbb39c 182 //display
MaxScorda 38:d88296cbb39c 183 printDisp(dispType,"Menu In \n\r");
MaxScorda 38:d88296cbb39c 184 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+sstr.substr(0,3)+"\r")));
MaxScorda 38:d88296cbb39c 185 errp=0;
MaxScorda 36:9ecb98d7c2cd 186 }
MaxScorda 36:9ecb98d7c2cd 187 return errp;
MaxScorda 36:9ecb98d7c2cd 188 }
MaxScorda 36:9ecb98d7c2cd 189
MaxScorda 38:d88296cbb39c 190 //********************* Function In
MaxScorda 38:d88296cbb39c 191 bool functionIn(string func, string sstr)
MaxScorda 36:9ecb98d7c2cd 192 {
MaxScorda 36:9ecb98d7c2cd 193 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 194 int funcn;
MaxScorda 38:d88296cbb39c 195 char funcc= *fnzAdd.string2char(sstr.substr(2,1));
MaxScorda 36:9ecb98d7c2cd 196
MaxScorda 38:d88296cbb39c 197 if (funcc!='z') {
MaxScorda 38:d88296cbb39c 198 //trasformo in intero
MaxScorda 38:d88296cbb39c 199 funcn=fnzAdd.c2i(funcc);
MaxScorda 38:d88296cbb39c 200 //assegno menu al vettore
MaxScorda 38:d88296cbb39c 201 menu_function[funcn]=fnzAdd.addEOS(sstr.substr(2,1)); //??? sicuri?
MaxScorda 38:d88296cbb39c 202 //display
MaxScorda 38:d88296cbb39c 203 printDisp(dispType,"Function In \n\r");
MaxScorda 38:d88296cbb39c 204 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+sstr.substr(0,3)+"\r")));
MaxScorda 36:9ecb98d7c2cd 205 errp=0;
MaxScorda 36:9ecb98d7c2cd 206 }
MaxScorda 36:9ecb98d7c2cd 207 return errp;
MaxScorda 36:9ecb98d7c2cd 208 }
MaxScorda 36:9ecb98d7c2cd 209
MaxScorda 38:d88296cbb39c 210 //********************* Start
MaxScorda 38:d88296cbb39c 211 bool StartfuncIn()
MaxScorda 38:d88296cbb39c 212 {
MaxScorda 38:d88296cbb39c 213 term.formatPrintf("*\n",26,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 214 // term.formatPrintf("Start H-Ard\n",61,p52,99,1); //p52
MaxScorda 38:d88296cbb39c 215 // printDisp(dispType,"InStart H-Ard\n\r");
MaxScorda 38:d88296cbb39c 216 return 1;
MaxScorda 38:d88296cbb39c 217 }
MaxScorda 38:d88296cbb39c 218
MaxScorda 38:d88296cbb39c 219 //********************* Start
MaxScorda 38:d88296cbb39c 220 bool StopfuncIn()
MaxScorda 38:d88296cbb39c 221 {
MaxScorda 38:d88296cbb39c 222 term.formatPrintf("*\n",26,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 223 // term.formatPrintf("Start H-Ard\n",61,p52,99,1); //p52
MaxScorda 38:d88296cbb39c 224 // printDisp(dispType,"InStop H-Ard\n\r");
MaxScorda 38:d88296cbb39c 225 return 1;
MaxScorda 38:d88296cbb39c 226 }
MaxScorda 38:d88296cbb39c 227
MaxScorda 38:d88296cbb39c 228
MaxScorda 36:9ecb98d7c2cd 229 //********************* Synth Note
MaxScorda 36:9ecb98d7c2cd 230 bool NfuncIn(string func, string funcnum, string param, char* arr)
MaxScorda 36:9ecb98d7c2cd 231 {
MaxScorda 36:9ecb98d7c2cd 232 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 233 int funcn;
MaxScorda 36:9ecb98d7c2cd 234 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 38:d88296cbb39c 235 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(param)),21,p51,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 236 // vale la pena creare una funzione di parametri da formalizzare
MaxScorda 36:9ecb98d7c2cd 237 funcn=fnzAdd.c2i(arr[2]+arr[3]);
MaxScorda 38:d88296cbb39c 238 for (int i = 0; i < 6; i++) term.formatPrintf(" ",23+(i*4),12,1,1);
MaxScorda 36:9ecb98d7c2cd 239 term.formatPrintf(fnzAdd.string2char(param.substr(0,2)+"*"),21+(fnzAdd.c2i(arr[1])*4),12,1,1); //p11 //p12 //p21
MaxScorda 36:9ecb98d7c2cd 240 printDisp(dispType,"NFuncIn\n\r");
MaxScorda 36:9ecb98d7c2cd 241 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r")));
MaxScorda 36:9ecb98d7c2cd 242 //ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)));
MaxScorda 36:9ecb98d7c2cd 243 errp=0;
MaxScorda 36:9ecb98d7c2cd 244 // }
MaxScorda 36:9ecb98d7c2cd 245 }
MaxScorda 36:9ecb98d7c2cd 246 return errp;
MaxScorda 36:9ecb98d7c2cd 247 }
MaxScorda 36:9ecb98d7c2cd 248
MaxScorda 38:d88296cbb39c 249 //********************* Boot
MaxScorda 36:9ecb98d7c2cd 250 bool bootfuncIn()
MaxScorda 36:9ecb98d7c2cd 251 {
MaxScorda 38:d88296cbb39c 252 term.formatPrintf("*\n",26,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 253 term.formatPrintf("boot\n",21,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 254 term.formatPrintf("Arduino Boot\n",61,p52,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 255 ardser.printf("rl\r");
MaxScorda 36:9ecb98d7c2cd 256 return 1;
MaxScorda 36:9ecb98d7c2cd 257 }