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 Jan 03 14:32:39 2016 +0000
Revision:
40:48422add4537
Parent:
39:0d7165083e7a
Child:
41:fb612a3936fb
Funzioni input quasi a posto

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MaxScorda 39:0d7165083e7a 1 // istanze di funzioni per metterle poi dove si vuole
MaxScorda 39:0d7165083e7a 2 bool funcfromMenu(int);
MaxScorda 40:48422add4537 3 int contaMenuFunc();
MaxScorda 39:0d7165083e7a 4 //-------------------------------------------------
MaxScorda 39:0d7165083e7a 5
MaxScorda 39:0d7165083e7a 6 void choiceVideoSettings()
MaxScorda 39:0d7165083e7a 7 {
MaxScorda 39:0d7165083e7a 8 string prefix;
MaxScorda 40:48422add4537 9 bool bbold;
MaxScorda 39:0d7165083e7a 10 //stampo menu
MaxScorda 39:0d7165083e7a 11 for (int i = 0; i<10 ; i++) {
MaxScorda 39:0d7165083e7a 12 if (i==menuidx) {
MaxScorda 40:48422add4537 13 bbold=1;
MaxScorda 39:0d7165083e7a 14 prefix="*";
MaxScorda 39:0d7165083e7a 15 } else {
MaxScorda 40:48422add4537 16 bbold=0;
MaxScorda 39:0d7165083e7a 17 prefix=" ";
MaxScorda 39:0d7165083e7a 18 }
MaxScorda 40:48422add4537 19 term.formatPrintf(fnzAdd.string2char(prefix+menu_main[i]),1,4+i,19,bbold);
MaxScorda 39:0d7165083e7a 20 }
MaxScorda 39:0d7165083e7a 21 //info terminale
MaxScorda 39:0d7165083e7a 22 term.formatPrintf("Menu Add \n",61,p52,19,1); //p52
MaxScorda 40:48422add4537 23
MaxScorda 39:0d7165083e7a 24 funcfromMenu(menuidx);
MaxScorda 39:0d7165083e7a 25 }
MaxScorda 39:0d7165083e7a 26
MaxScorda 39:0d7165083e7a 27 void writeLogInput(string strIn)
MaxScorda 39:0d7165083e7a 28 {
MaxScorda 39:0d7165083e7a 29 // stampa i splitta i parametri in ingesso
MaxScorda 39:0d7165083e7a 30 string func;
MaxScorda 39:0d7165083e7a 31 string funcnum;
MaxScorda 39:0d7165083e7a 32 string param;
MaxScorda 39:0d7165083e7a 33 func=strIn.substr(0,1);
MaxScorda 39:0d7165083e7a 34 funcnum=strIn.substr(1,1);
MaxScorda 39:0d7165083e7a 35 param=strIn.substr(2,3);
MaxScorda 39:0d7165083e7a 36 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(func)),11,p01,10,1); //p01
MaxScorda 39:0d7165083e7a 37 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(funcnum)),39,p02,10,1); //p02
MaxScorda 39:0d7165083e7a 38 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(param)),61,p03,10,1); //p03
MaxScorda 39:0d7165083e7a 39 //write input string
MaxScorda 39:0d7165083e7a 40 term.formatPrintf(fnzAdd.string2char(strIn.substr(0,17)),21,p51,10,1); //p51
MaxScorda 39:0d7165083e7a 41 //---------------------------------------------------------------------------------------------
MaxScorda 39:0d7165083e7a 42 }
MaxScorda 39:0d7165083e7a 43
MaxScorda 40:48422add4537 44 void writeFunctionVal(string strIn)
MaxScorda 36:9ecb98d7c2cd 45 {
MaxScorda 40:48422add4537 46 int idx=0;
MaxScorda 40:48422add4537 47 bool trovato=false;
MaxScorda 40:48422add4537 48 //cerca valore. Per ora facciamo cosi, poi si vede se indicizzarlo
MaxScorda 40:48422add4537 49 while ((trovato==false) && (idx<50)) {
MaxScorda 40:48422add4537 50 if ((strIn.substr(0,1)==fnzAdd.i2s(function_val[idx][0])) && (strIn.substr(2,1)==fnzAdd.i2s(function_val[idx][1]))) trovato=true;
MaxScorda 40:48422add4537 51 else idx++;
MaxScorda 40:48422add4537 52 }
MaxScorda 40:48422add4537 53 //stampo
MaxScorda 40:48422add4537 54 if (trovato==true) { //non dovrebbe servire
MaxScorda 40:48422add4537 55 term.formatPrintf(fnzAdd.string2char(fnzAdd.i2s(function_val[idx][2])),50,16,10); //min
MaxScorda 40:48422add4537 56 term.formatPrintf(fnzAdd.string2char(fnzAdd.i2s(function_val[idx][5])),60,16,10); //start
MaxScorda 40:48422add4537 57 term.formatPrintf(fnzAdd.string2char(fnzAdd.i2s(function_val[idx][3])),70,16,10); //max
MaxScorda 40:48422add4537 58 term.formatPrintf(fnzAdd.string2char(fnzAdd.i2s(function_val[idx][6])),70,4+funcidx,10); //valore attuale di fianco alla riga
MaxScorda 40:48422add4537 59 }
MaxScorda 40:48422add4537 60 }
MaxScorda 38:d88296cbb39c 61
MaxScorda 38:d88296cbb39c 62
MaxScorda 38:d88296cbb39c 63 //********************* Led
MaxScorda 38:d88296cbb39c 64 bool Lfunc(string func, string funcnum, string param)
MaxScorda 38:d88296cbb39c 65 {
MaxScorda 38:d88296cbb39c 66 bool errp=1;
MaxScorda 38:d88296cbb39c 67
MaxScorda 38:d88296cbb39c 68 if (funcnum=="1") {
MaxScorda 38:d88296cbb39c 69 if (param=="on ") {
MaxScorda 38:d88296cbb39c 70 term.formatPrintf("Led ACCESO \n",61,p52,99,1); //p52
MaxScorda 39:0d7165083e7a 71 ardser.printf("\nLed ACCESO \n\r");
MaxScorda 38:d88296cbb39c 72 printDisp(dispType,"Led ACCESO \n\r");
MaxScorda 38:d88296cbb39c 73 led.onOff(1); //Accende il led
MaxScorda 38:d88296cbb39c 74 errp=0;
MaxScorda 38:d88296cbb39c 75 }
MaxScorda 38:d88296cbb39c 76 if (param=="off") {
MaxScorda 38:d88296cbb39c 77 term.formatPrintf("Led SPENTO! \n",61,p52,99,1); //p52
MaxScorda 39:0d7165083e7a 78 ardser.printf("\nLed SPENTO! \n\r");
MaxScorda 38:d88296cbb39c 79 printDisp(dispType,"Led SPENTO \n\r");
MaxScorda 38:d88296cbb39c 80 led.onOff(0); //Spegne il led
MaxScorda 38:d88296cbb39c 81 errp=0;
MaxScorda 38:d88296cbb39c 82 }
MaxScorda 38:d88296cbb39c 83 }
MaxScorda 38:d88296cbb39c 84 return errp;
MaxScorda 38:d88296cbb39c 85 }
MaxScorda 38:d88296cbb39c 86
MaxScorda 38:d88296cbb39c 87
MaxScorda 38:d88296cbb39c 88 //********************** cambio menu
MaxScorda 39:0d7165083e7a 89 bool funcfromMenu(int funcnum)
MaxScorda 38:d88296cbb39c 90 {
MaxScorda 38:d88296cbb39c 91 // funzione di load funzioni da menu scelto
MaxScorda 38:d88296cbb39c 92 bool errp=1;
MaxScorda 39:0d7165083e7a 93 int tempm;
MaxScorda 39:0d7165083e7a 94 int ccmenu=0; //indice vettore funzioni selezionate
MaxScorda 39:0d7165083e7a 95 int ccfun=0; //indice vettore funzione principale
MaxScorda 40:48422add4537 96 int contoldfun, contonewfun; //conta le voci di menu prima di sostituirlo
MaxScorda 38:d88296cbb39c 97 string funzionen;
MaxScorda 40:48422add4537 98 string prefix; //prefisso asterisco per voci selezionate
MaxScorda 40:48422add4537 99 bool bbold=0; //postfisso bold per righe selezionate
MaxScorda 40:48422add4537 100 contoldfun=contaMenuFunc();
MaxScorda 38:d88296cbb39c 101 //filtro vettore funzioni in base la menu
MaxScorda 39:0d7165083e7a 102 funzionen=menu_function[ccmenu];
MaxScorda 39:0d7165083e7a 103 while ((funzionen.substr(0,1)!="Z") && (ccmenu<=99)) {
MaxScorda 38:d88296cbb39c 104 // confronto il primo carattere dell vettore funzioni col primo carattere del menu
MaxScorda 39:0d7165083e7a 105 tempm=atoi(fnzAdd.string2char(funzionen.substr(0,1)));
MaxScorda 38:d88296cbb39c 106 // se = metto il valore del vettore funzioni nel vettore funzioni scelte
MaxScorda 39:0d7165083e7a 107 if (menuidx==tempm) {
MaxScorda 38:d88296cbb39c 108 menu_funcChoice[ccfun]=menu_function[ccmenu];
MaxScorda 38:d88296cbb39c 109 ccfun++;
MaxScorda 38:d88296cbb39c 110 }
MaxScorda 38:d88296cbb39c 111 ccmenu++;
MaxScorda 39:0d7165083e7a 112 funzionen=menu_function[ccmenu]; //assegna la stringa del menu
MaxScorda 39:0d7165083e7a 113 }
MaxScorda 39:0d7165083e7a 114 menu_funcChoice[ccfun]="Z.Z"; //setto lo stop
MaxScorda 40:48422add4537 115 contonewfun=contaMenuFunc();
MaxScorda 40:48422add4537 116 // menu fatti, ora funzioni
MaxScorda 39:0d7165083e7a 117 if (ccfun>0) { //non dovrebbe avvenire diversamente perche' 1 ci deve esere ma e' da trappare
MaxScorda 39:0d7165083e7a 118 //azzero da dove sono in giu'
MaxScorda 40:48422add4537 119 for (int i = contonewfun+1; i <=contoldfun ; i++) {
MaxScorda 40:48422add4537 120 term.formatPrintf(fnzAdd.string2char(fnzAdd.padstr(" ",38,' ')),41,4+i);
MaxScorda 39:0d7165083e7a 121 }
MaxScorda 40:48422add4537 122 //scrivo dalla prima allo scelto
MaxScorda 40:48422add4537 123 funcidx=0;
MaxScorda 39:0d7165083e7a 124 for (int i = 0; i <ccfun ; i++) {
MaxScorda 40:48422add4537 125 if (i==funcidx) {
MaxScorda 40:48422add4537 126 bbold=1;
MaxScorda 40:48422add4537 127 prefix="*";
MaxScorda 40:48422add4537 128 } else {
MaxScorda 40:48422add4537 129 bbold=0;
MaxScorda 40:48422add4537 130 prefix=" ";
MaxScorda 40:48422add4537 131 }
MaxScorda 40:48422add4537 132 term.formatPrintf(fnzAdd.string2char(prefix+menu_funcChoice[i]),41,4+i,38,bbold);
MaxScorda 39:0d7165083e7a 133 }
MaxScorda 39:0d7165083e7a 134 }
MaxScorda 40:48422add4537 135
MaxScorda 40:48422add4537 136 // errp=0; //per ora non fa nulla, vedere se tenere a uso futuro
MaxScorda 38:d88296cbb39c 137 return errp;
MaxScorda 38:d88296cbb39c 138 }
MaxScorda 38:d88296cbb39c 139
MaxScorda 40:48422add4537 140 bool funcOut(string func, string sstr)
MaxScorda 38:d88296cbb39c 141 {
MaxScorda 40:48422add4537 142 //setta la funzione in uso
MaxScorda 38:d88296cbb39c 143 bool errp=1;
MaxScorda 40:48422add4537 144 string funcc;
MaxScorda 40:48422add4537 145 int contoldfun=0; //conta le voci di menu prima di sostituirlo
MaxScorda 40:48422add4537 146 contoldfun=contaMenuFunc();
MaxScorda 40:48422add4537 147 funcc=sstr.substr(1,1);
MaxScorda 40:48422add4537 148 if ((funcc>="0") && (funcc<="9")) {
MaxScorda 40:48422add4537 149 contoldfun=fnzAdd.min(contoldfun,atoi(fnzAdd.string2char(funcc))); //assegno il minimo
MaxScorda 38:d88296cbb39c 150 //azzero
MaxScorda 40:48422add4537 151 term.resetattrib();
MaxScorda 40:48422add4537 152 term.formatPrintf(fnzAdd.string2char(" "+menu_funcChoice[funcidx]),41,4+funcidx,38);
MaxScorda 40:48422add4537 153 // scrivo in console
MaxScorda 40:48422add4537 154 term.bold();
MaxScorda 40:48422add4537 155 funcidx=contoldfun;
MaxScorda 40:48422add4537 156 term.formatPrintf(fnzAdd.string2char("*"+menu_funcChoice[funcidx]),41,4+funcidx,38);
MaxScorda 40:48422add4537 157 term.resetattrib();
MaxScorda 40:48422add4537 158 // scrivo valori della funzione a video
MaxScorda 40:48422add4537 159 writeFunctionVal(menu_funcChoice[funcidx].substr(0,3));
MaxScorda 40:48422add4537 160 //display
MaxScorda 40:48422add4537 161 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS("Set Funzione "+funcc+"\n")),61,p52,99,1); //p52
MaxScorda 40:48422add4537 162 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS("Set Funzione "+funcc+"\r")));
MaxScorda 40:48422add4537 163 //errp=0;
MaxScorda 40:48422add4537 164 } else errp=0; //stampo solo all'ultimo
MaxScorda 40:48422add4537 165 return errp;
MaxScorda 40:48422add4537 166 }
MaxScorda 40:48422add4537 167
MaxScorda 40:48422add4537 168 bool menuOut(string func, string sstr)
MaxScorda 40:48422add4537 169 {
MaxScorda 40:48422add4537 170 //setta il menu in uso
MaxScorda 40:48422add4537 171 bool errp=1;
MaxScorda 40:48422add4537 172 string funcc;
MaxScorda 40:48422add4537 173 funcc=sstr.substr(1,1);
MaxScorda 40:48422add4537 174 if ((funcc>="0") && (funcc<="9")) {
MaxScorda 40:48422add4537 175 //azzero
MaxScorda 40:48422add4537 176 term.resetattrib();
MaxScorda 40:48422add4537 177 term.formatPrintf(fnzAdd.string2char(" "+menu_main[menuidx]),1,4+menuidx,19);
MaxScorda 38:d88296cbb39c 178 // scrivo
MaxScorda 40:48422add4537 179 term.bold();
MaxScorda 40:48422add4537 180 menuidx=atoi(fnzAdd.string2char(funcc));
MaxScorda 40:48422add4537 181 term.formatPrintf(fnzAdd.string2char("*"+menu_main[menuidx]),1,4+menuidx,19);
MaxScorda 40:48422add4537 182 term.resetattrib();
MaxScorda 40:48422add4537 183 //setto funzioni
MaxScorda 40:48422add4537 184 funcfromMenu(menuidx);
MaxScorda 40:48422add4537 185 //display
MaxScorda 40:48422add4537 186 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS("Set Menu "+funcc+"\n")),61,p52,99,1); //p52
MaxScorda 40:48422add4537 187 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS("Set Menu "+funcc+"\r")));
MaxScorda 40:48422add4537 188 } else errp=0; //stampo solo all'ultimo
MaxScorda 38:d88296cbb39c 189 return errp;
MaxScorda 38:d88296cbb39c 190 }
MaxScorda 38:d88296cbb39c 191
MaxScorda 36:9ecb98d7c2cd 192
MaxScorda 36:9ecb98d7c2cd 193 //************************ Random Out
MaxScorda 36:9ecb98d7c2cd 194 bool RfuncOut(string func, string funcnum, string param)
MaxScorda 36:9ecb98d7c2cd 195 {
MaxScorda 36:9ecb98d7c2cd 196 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 197 if (funcnum=="1") {
MaxScorda 36:9ecb98d7c2cd 198 if (param=="on ") {
MaxScorda 36:9ecb98d7c2cd 199 term.formatPrintf("ON \n",61,8,99,1); //p22
MaxScorda 36:9ecb98d7c2cd 200 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS("R11\r")));
MaxScorda 36:9ecb98d7c2cd 201 printDisp(dispType,"Random On \n\r");
MaxScorda 36:9ecb98d7c2cd 202 randomActivate=true;
MaxScorda 36:9ecb98d7c2cd 203 errp=0;
MaxScorda 38:d88296cbb39c 204 } else if (param=="off") {
MaxScorda 36:9ecb98d7c2cd 205 term.formatPrintf("OFF\n",61,8,99,1); //p22
MaxScorda 36:9ecb98d7c2cd 206 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS("R10\r")));
MaxScorda 36:9ecb98d7c2cd 207 printDisp(dispType,"Random OFF\n\r");
MaxScorda 36:9ecb98d7c2cd 208 randomActivate=false;
MaxScorda 36:9ecb98d7c2cd 209 errp=0;
MaxScorda 36:9ecb98d7c2cd 210 }
MaxScorda 36:9ecb98d7c2cd 211 }
MaxScorda 38:d88296cbb39c 212 term.formatPrintf("\n",61,p52,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 213 return errp;
MaxScorda 36:9ecb98d7c2cd 214 }
MaxScorda 36:9ecb98d7c2cd 215
MaxScorda 36:9ecb98d7c2cd 216 //********************* Start
MaxScorda 36:9ecb98d7c2cd 217 bool StartfuncOut()
MaxScorda 36:9ecb98d7c2cd 218 {
MaxScorda 38:d88296cbb39c 219 term.formatPrintf("Start\n",21,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 220 term.formatPrintf("Start H-Ard\n",61,p52,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 221 ardser.printf("start\r");
MaxScorda 36:9ecb98d7c2cd 222 printDisp(dispType,"Start H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 223 return 0;
MaxScorda 36:9ecb98d7c2cd 224 }
MaxScorda 36:9ecb98d7c2cd 225
MaxScorda 36:9ecb98d7c2cd 226 //********************* Stop
MaxScorda 36:9ecb98d7c2cd 227 bool StopfuncOut()
MaxScorda 36:9ecb98d7c2cd 228 {
MaxScorda 38:d88296cbb39c 229 term.formatPrintf("Stop\n",21,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 230 term.formatPrintf("Stop H-Ard\n",61,p52,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 231 ardser.printf("stop\r");
MaxScorda 36:9ecb98d7c2cd 232 printDisp(dispType,"Stop H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 233 return 0;
MaxScorda 36:9ecb98d7c2cd 234 }
MaxScorda 36:9ecb98d7c2cd 235
MaxScorda 36:9ecb98d7c2cd 236
MaxScorda 38:d88296cbb39c 237 /************************ IN Function *****************************/
MaxScorda 36:9ecb98d7c2cd 238 /******************************************************************/
MaxScorda 36:9ecb98d7c2cd 239 /******************************************************************/
MaxScorda 36:9ecb98d7c2cd 240
MaxScorda 36:9ecb98d7c2cd 241
MaxScorda 38:d88296cbb39c 242 //********************* Menu In
MaxScorda 38:d88296cbb39c 243 bool menuIn(string func, string sstr)
MaxScorda 36:9ecb98d7c2cd 244 {
MaxScorda 36:9ecb98d7c2cd 245 bool errp=1;
MaxScorda 39:0d7165083e7a 246 int funcn=0;
MaxScorda 39:0d7165083e7a 247 string funcc;
MaxScorda 39:0d7165083e7a 248 funcc=sstr.substr(3,1);
MaxScorda 39:0d7165083e7a 249
MaxScorda 39:0d7165083e7a 250 if ((funcc>="0") && (funcc<="9")) {
MaxScorda 38:d88296cbb39c 251 //trasformo in intero
MaxScorda 39:0d7165083e7a 252 funcn=atoi(fnzAdd.string2char(funcc));
MaxScorda 38:d88296cbb39c 253 //assegno menu al vettore
MaxScorda 39:0d7165083e7a 254 menu_main[funcn]=fnzAdd.addEOS(sstr.substr(3,20));
MaxScorda 39:0d7165083e7a 255 //*** tolti in attesa di regolare la sincronizzazione
MaxScorda 38:d88296cbb39c 256 //stampo in posizione
MaxScorda 39:0d7165083e7a 257 ///term.formatPrintf(fnzAdd.string2char(menu_main[funcn]),2,4+funcn,38);
MaxScorda 39:0d7165083e7a 258 //info terminale
MaxScorda 39:0d7165083e7a 259 ///term.formatPrintf("Menu Add \n",61,p52,99,1); //p52
MaxScorda 39:0d7165083e7a 260 //******
MaxScorda 38:d88296cbb39c 261 //display
MaxScorda 39:0d7165083e7a 262 printDisp(dispType,"Menu Add \n\r");
MaxScorda 38:d88296cbb39c 263 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+sstr.substr(0,3)+"\r")));
MaxScorda 40:48422add4537 264
MaxScorda 36:9ecb98d7c2cd 265 }
MaxScorda 39:0d7165083e7a 266 if (funcc=="9") {
MaxScorda 40:48422add4537 267 errp=0;
MaxScorda 39:0d7165083e7a 268 // writeLogInput( sstr); //solo al 9 stampo il log. Ha poi senso?
MaxScorda 39:0d7165083e7a 269 }
MaxScorda 36:9ecb98d7c2cd 270 return errp;
MaxScorda 36:9ecb98d7c2cd 271 }
MaxScorda 36:9ecb98d7c2cd 272
MaxScorda 38:d88296cbb39c 273 //********************* Function In
MaxScorda 38:d88296cbb39c 274 bool functionIn(string func, string sstr)
MaxScorda 36:9ecb98d7c2cd 275 {
MaxScorda 36:9ecb98d7c2cd 276 bool errp=1;
MaxScorda 39:0d7165083e7a 277 string funcc;
MaxScorda 39:0d7165083e7a 278 funcc=sstr.substr(3,1);
MaxScorda 39:0d7165083e7a 279 if (funcc!="Z") {
MaxScorda 38:d88296cbb39c 280 //assegno menu al vettore
MaxScorda 39:0d7165083e7a 281 menu_function[funccontidx]=fnzAdd.addEOS(sstr.substr(1,20));
MaxScorda 39:0d7165083e7a 282 //info terminale
MaxScorda 39:0d7165083e7a 283 term.formatPrintf("Function In \n",61,p52,99,1); //p52
MaxScorda 38:d88296cbb39c 284 //display
MaxScorda 38:d88296cbb39c 285 printDisp(dispType,"Function In \n\r");
MaxScorda 38:d88296cbb39c 286 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+sstr.substr(0,3)+"\r")));
MaxScorda 39:0d7165083e7a 287 funccontidx++; //incremento il contatore generale delle funzioni
MaxScorda 39:0d7165083e7a 288 } else {
MaxScorda 39:0d7165083e7a 289 menu_function[funccontidx]="Z.Z"; //carico lo stop
MaxScorda 39:0d7165083e7a 290 funccontidx=0; //azzero il contatore generale delle funzioni
MaxScorda 40:48422add4537 291 writeLogInput(sstr); //solo allo z stampo il log. Ha poi senso?
MaxScorda 39:0d7165083e7a 292 //set default video
MaxScorda 39:0d7165083e7a 293 choiceVideoSettings();
MaxScorda 40:48422add4537 294 errp=0;
MaxScorda 36:9ecb98d7c2cd 295 }
MaxScorda 36:9ecb98d7c2cd 296 return errp;
MaxScorda 36:9ecb98d7c2cd 297 }
MaxScorda 36:9ecb98d7c2cd 298
MaxScorda 38:d88296cbb39c 299 //********************* Start
MaxScorda 38:d88296cbb39c 300 bool StartfuncIn()
MaxScorda 38:d88296cbb39c 301 {
MaxScorda 38:d88296cbb39c 302 term.formatPrintf("*\n",26,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 303 // term.formatPrintf("Start H-Ard\n",61,p52,99,1); //p52
MaxScorda 38:d88296cbb39c 304 // printDisp(dispType,"InStart H-Ard\n\r");
MaxScorda 38:d88296cbb39c 305 return 1;
MaxScorda 38:d88296cbb39c 306 }
MaxScorda 38:d88296cbb39c 307
MaxScorda 38:d88296cbb39c 308 //********************* Start
MaxScorda 38:d88296cbb39c 309 bool StopfuncIn()
MaxScorda 38:d88296cbb39c 310 {
MaxScorda 38:d88296cbb39c 311 term.formatPrintf("*\n",26,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 312 // term.formatPrintf("Start H-Ard\n",61,p52,99,1); //p52
MaxScorda 38:d88296cbb39c 313 // printDisp(dispType,"InStop H-Ard\n\r");
MaxScorda 38:d88296cbb39c 314 return 1;
MaxScorda 38:d88296cbb39c 315 }
MaxScorda 38:d88296cbb39c 316
MaxScorda 40:48422add4537 317 //********************* Value Functions In
MaxScorda 40:48422add4537 318 bool valueIn(string sstr)
MaxScorda 40:48422add4537 319 {
MaxScorda 40:48422add4537 320 /* valore funzioni in ingresso
MaxScorda 40:48422add4537 321 Formato: viimftxxxx
MaxScorda 40:48422add4537 322 v-prefisso sempre v
MaxScorda 40:48422add4537 323 ii-indice
MaxScorda 40:48422add4537 324 m-menu
MaxScorda 40:48422add4537 325 f-funzione
MaxScorda 40:48422add4537 326 t-tipo n:min, x:max, s:step, v:valstart, a:valore attuale
MaxScorda 40:48422add4537 327 xxxx-valore
MaxScorda 40:48422add4537 328 */
MaxScorda 40:48422add4537 329 bool errp=1;
MaxScorda 40:48422add4537 330 int idx=atoi(fnzAdd.string2char(sstr.substr(1,2)));
MaxScorda 40:48422add4537 331 int vval=atoi(fnzAdd.string2char(sstr.substr(6,4)));
MaxScorda 40:48422add4537 332 // term.formatPrintf(fnzAdd.string2char("*"+fnzAdd.i2s(idx)),50,16,10);
MaxScorda 40:48422add4537 333 if (sstr.substr(0,1)=="v") {
MaxScorda 40:48422add4537 334 function_val[idx][0]=atoi(fnzAdd.string2char(sstr.substr(3,1))); //MENU
MaxScorda 40:48422add4537 335 function_val[idx][1]=atoi(fnzAdd.string2char(sstr.substr(4,1))); //FUNZIONE
MaxScorda 40:48422add4537 336 function_val[idx][2+atoi(fnzAdd.string2char(sstr.substr(5,1)))] =vval; //tipo
MaxScorda 40:48422add4537 337 //errp=0;
MaxScorda 40:48422add4537 338 }
MaxScorda 40:48422add4537 339 return errp;
MaxScorda 40:48422add4537 340 }
MaxScorda 38:d88296cbb39c 341
MaxScorda 39:0d7165083e7a 342 //********************* ?????????????????????????????
MaxScorda 36:9ecb98d7c2cd 343 bool NfuncIn(string func, string funcnum, string param, char* arr)
MaxScorda 36:9ecb98d7c2cd 344 {
MaxScorda 36:9ecb98d7c2cd 345 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 346 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 38:d88296cbb39c 347 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(param)),21,p51,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 348 // vale la pena creare una funzione di parametri da formalizzare
MaxScorda 38:d88296cbb39c 349 for (int i = 0; i < 6; i++) term.formatPrintf(" ",23+(i*4),12,1,1);
MaxScorda 36:9ecb98d7c2cd 350 term.formatPrintf(fnzAdd.string2char(param.substr(0,2)+"*"),21+(fnzAdd.c2i(arr[1])*4),12,1,1); //p11 //p12 //p21
MaxScorda 36:9ecb98d7c2cd 351 printDisp(dispType,"NFuncIn\n\r");
MaxScorda 36:9ecb98d7c2cd 352 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r")));
MaxScorda 36:9ecb98d7c2cd 353 //ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)));
MaxScorda 36:9ecb98d7c2cd 354 errp=0;
MaxScorda 36:9ecb98d7c2cd 355 // }
MaxScorda 36:9ecb98d7c2cd 356 }
MaxScorda 36:9ecb98d7c2cd 357 return errp;
MaxScorda 36:9ecb98d7c2cd 358 }
MaxScorda 36:9ecb98d7c2cd 359
MaxScorda 38:d88296cbb39c 360 //********************* Boot
MaxScorda 36:9ecb98d7c2cd 361 bool bootfuncIn()
MaxScorda 36:9ecb98d7c2cd 362 {
MaxScorda 38:d88296cbb39c 363 term.formatPrintf("*\n",26,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 364 term.formatPrintf("boot\n",21,p51,8,1); //p51
MaxScorda 38:d88296cbb39c 365 term.formatPrintf("Arduino Boot\n",61,p52,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 366 ardser.printf("rl\r");
MaxScorda 36:9ecb98d7c2cd 367 return 1;
MaxScorda 40:48422add4537 368 }
MaxScorda 40:48422add4537 369
MaxScorda 40:48422add4537 370 int contaMenuFunc()
MaxScorda 40:48422add4537 371 {
MaxScorda 40:48422add4537 372 //funzione che conta le voci di menu in essere
MaxScorda 40:48422add4537 373 int ret=0;
MaxScorda 40:48422add4537 374 //conta gli elemnti del vecchio menu per la cancellazione. Si potrebbe usare una variabile globale ricordando il conteggio precedente ma cosi' non dovrebbe perdere troppo tempo
MaxScorda 40:48422add4537 375 while (menu_funcChoice[ret].substr(0,1)!="Z") {
MaxScorda 40:48422add4537 376 ret++;
MaxScorda 40:48422add4537 377 }
MaxScorda 40:48422add4537 378 if (ret>0) ret--; //per rirportare indietro il contatore
MaxScorda 40:48422add4537 379 return ret;
MaxScorda 36:9ecb98d7c2cd 380 }