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
choiceFunctions.h@38:d88296cbb39c, 2015-12-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |