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:
Fri Nov 06 20:15:54 2015 +0000
Revision:
36:9ecb98d7c2cd
Child:
38:d88296cbb39c
Final release. Waiting for some adds

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MaxScorda 36:9ecb98d7c2cd 1
MaxScorda 36:9ecb98d7c2cd 2 //********************* Serial 4 real
MaxScorda 36:9ecb98d7c2cd 3 bool Sfunc(string func, string funcnum, string param)
MaxScorda 36:9ecb98d7c2cd 4 {
MaxScorda 36:9ecb98d7c2cd 5 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 6 if (param=="on ") {
MaxScorda 36:9ecb98d7c2cd 7 realExtraSerial=true;
MaxScorda 36:9ecb98d7c2cd 8 term.formatPrintf("ON \n",21,10,3,1); //p31
MaxScorda 36:9ecb98d7c2cd 9 term.formatPrintf("RS Attiva \n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 10 printDisp(dispType,"RS Attiva \n\r");
MaxScorda 36:9ecb98d7c2cd 11 errp=0;
MaxScorda 36:9ecb98d7c2cd 12 }
MaxScorda 36:9ecb98d7c2cd 13 if (param=="off") {
MaxScorda 36:9ecb98d7c2cd 14 realExtraSerial=false;
MaxScorda 36:9ecb98d7c2cd 15 term.formatPrintf("OFF\n",21,10,3,1); //p31
MaxScorda 36:9ecb98d7c2cd 16 term.formatPrintf("RS Disattivata \n",61,14,99); //p52
MaxScorda 36:9ecb98d7c2cd 17 if (realExtraSerial==false) ardser.printf("\nRS OFF \n\r");
MaxScorda 36:9ecb98d7c2cd 18 printDisp(dispType,"RS Disattivata \n\r");
MaxScorda 36:9ecb98d7c2cd 19 errp=0;
MaxScorda 36:9ecb98d7c2cd 20 }
MaxScorda 36:9ecb98d7c2cd 21 return errp;
MaxScorda 36:9ecb98d7c2cd 22 }
MaxScorda 36:9ecb98d7c2cd 23
MaxScorda 36:9ecb98d7c2cd 24 //************************ Random Out
MaxScorda 36:9ecb98d7c2cd 25 bool RfuncOut(string func, string funcnum, string param)
MaxScorda 36:9ecb98d7c2cd 26 {
MaxScorda 36:9ecb98d7c2cd 27 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 28 if (funcnum=="1") {
MaxScorda 36:9ecb98d7c2cd 29 if (param=="on ") {
MaxScorda 36:9ecb98d7c2cd 30 term.formatPrintf("ON \n",61,8,99,1); //p22
MaxScorda 36:9ecb98d7c2cd 31 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS("R11\r")));
MaxScorda 36:9ecb98d7c2cd 32 printDisp(dispType,"Random On \n\r");
MaxScorda 36:9ecb98d7c2cd 33 randomActivate=true;
MaxScorda 36:9ecb98d7c2cd 34 errp=0;
MaxScorda 36:9ecb98d7c2cd 35 }
MaxScorda 36:9ecb98d7c2cd 36 if (param=="off") {
MaxScorda 36:9ecb98d7c2cd 37 term.formatPrintf("OFF\n",61,8,99,1); //p22
MaxScorda 36:9ecb98d7c2cd 38 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS("R10\r")));
MaxScorda 36:9ecb98d7c2cd 39 printDisp(dispType,"Random OFF\n\r");
MaxScorda 36:9ecb98d7c2cd 40 randomActivate=false;
MaxScorda 36:9ecb98d7c2cd 41 errp=0;
MaxScorda 36:9ecb98d7c2cd 42 }
MaxScorda 36:9ecb98d7c2cd 43 }
MaxScorda 36:9ecb98d7c2cd 44 term.formatPrintf("\n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 45 return errp;
MaxScorda 36:9ecb98d7c2cd 46 }
MaxScorda 36:9ecb98d7c2cd 47
MaxScorda 36:9ecb98d7c2cd 48 //********************* Led
MaxScorda 36:9ecb98d7c2cd 49 bool Lfunc(string func, string funcnum, string param)
MaxScorda 36:9ecb98d7c2cd 50 {
MaxScorda 36:9ecb98d7c2cd 51 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 52
MaxScorda 36:9ecb98d7c2cd 53 if (funcnum=="1") {
MaxScorda 36:9ecb98d7c2cd 54 if (param=="on ") {
MaxScorda 36:9ecb98d7c2cd 55 term.formatPrintf("Led ACCESO \n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 56 if (realExtraSerial==false) ardser.printf("\nLed ACCESO \n\r");
MaxScorda 36:9ecb98d7c2cd 57 printDisp(dispType,"Led ACCESO \n\r");
MaxScorda 36:9ecb98d7c2cd 58 led.onOff(1); //Accende il led
MaxScorda 36:9ecb98d7c2cd 59 errp=0;
MaxScorda 36:9ecb98d7c2cd 60 }
MaxScorda 36:9ecb98d7c2cd 61 if (param=="off") {
MaxScorda 36:9ecb98d7c2cd 62 term.formatPrintf("Led SPENTO! \n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 63 if (realExtraSerial==false) ardser.printf("\nLed SPENTO! \n\r");
MaxScorda 36:9ecb98d7c2cd 64 printDisp(dispType,"Led SPENTO \n\r");
MaxScorda 36:9ecb98d7c2cd 65 led.onOff(0); //Spegne il led
MaxScorda 36:9ecb98d7c2cd 66 errp=0;
MaxScorda 36:9ecb98d7c2cd 67 }
MaxScorda 36:9ecb98d7c2cd 68 }
MaxScorda 36:9ecb98d7c2cd 69 return errp;
MaxScorda 36:9ecb98d7c2cd 70 }
MaxScorda 36:9ecb98d7c2cd 71
MaxScorda 36:9ecb98d7c2cd 72 //********************* Synth Tracce
MaxScorda 36:9ecb98d7c2cd 73 bool s09funcOut(string func, string funcnum, string param, char sstr)
MaxScorda 36:9ecb98d7c2cd 74 {
MaxScorda 36:9ecb98d7c2cd 75 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 76 int funcn;
MaxScorda 36:9ecb98d7c2cd 77
MaxScorda 36:9ecb98d7c2cd 78 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 36:9ecb98d7c2cd 79 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),21,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 80 // vale la pena creare una funzione di parametri da formalizzare
MaxScorda 36:9ecb98d7c2cd 81 funcn=fnzAdd.c2i(sstr);
MaxScorda 36:9ecb98d7c2cd 82 funcn=fnzAdd.constrain(funcn,0,2);
MaxScorda 36:9ecb98d7c2cd 83 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),21+(funcn%2)*40,6+(2*(funcn/2)),8,1); //p11 //p12 //p21
MaxScorda 36:9ecb98d7c2cd 84 term.formatPrintf("Tracks Command \n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 85 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+funcnum+param+"\r")));
MaxScorda 36:9ecb98d7c2cd 86 printDisp(dispType,"Tracks Command \n\r");
MaxScorda 36:9ecb98d7c2cd 87 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r")));
MaxScorda 36:9ecb98d7c2cd 88 //ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)));
MaxScorda 36:9ecb98d7c2cd 89 errp=0;
MaxScorda 36:9ecb98d7c2cd 90 }
MaxScorda 36:9ecb98d7c2cd 91 return errp;
MaxScorda 36:9ecb98d7c2cd 92 }
MaxScorda 36:9ecb98d7c2cd 93
MaxScorda 36:9ecb98d7c2cd 94 //********************* Synth Note
MaxScorda 36:9ecb98d7c2cd 95 bool NfuncOut(string func, string funcnum, string param, char* arr)
MaxScorda 36:9ecb98d7c2cd 96 {
MaxScorda 36:9ecb98d7c2cd 97 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 98 int funcn;
MaxScorda 36:9ecb98d7c2cd 99
MaxScorda 36:9ecb98d7c2cd 100 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 36:9ecb98d7c2cd 101 if (((arr[2]>='0') && (arr[2]<='9')) || (arr[2]=='-')) {
MaxScorda 36:9ecb98d7c2cd 102 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),21,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 103 // vale la pena creare una funzione di parametri da formalizzare
MaxScorda 36:9ecb98d7c2cd 104 funcn=fnzAdd.c2i(arr[2]);
MaxScorda 36:9ecb98d7c2cd 105 //funcn=fnzAdd.constrain(funcn,0,2);
MaxScorda 36:9ecb98d7c2cd 106 term.formatPrintf("Note Command \n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 107 ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+funcnum+param+"\r")));
MaxScorda 36:9ecb98d7c2cd 108 printDisp(dispType,"Note Command \n\r");
MaxScorda 36:9ecb98d7c2cd 109 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r")));
MaxScorda 36:9ecb98d7c2cd 110 errp=0;
MaxScorda 36:9ecb98d7c2cd 111 }
MaxScorda 36:9ecb98d7c2cd 112 }
MaxScorda 36:9ecb98d7c2cd 113 return errp;
MaxScorda 36:9ecb98d7c2cd 114 }
MaxScorda 36:9ecb98d7c2cd 115
MaxScorda 36:9ecb98d7c2cd 116 //********************* Start
MaxScorda 36:9ecb98d7c2cd 117 bool StartfuncOut()
MaxScorda 36:9ecb98d7c2cd 118 {
MaxScorda 36:9ecb98d7c2cd 119 term.formatPrintf("Start\n",21,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 120 term.formatPrintf("Start H-Ard\n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 121 ardser.printf("start\r");
MaxScorda 36:9ecb98d7c2cd 122 printDisp(dispType,"Start H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 123 return 0;
MaxScorda 36:9ecb98d7c2cd 124 }
MaxScorda 36:9ecb98d7c2cd 125
MaxScorda 36:9ecb98d7c2cd 126 //********************* Stop
MaxScorda 36:9ecb98d7c2cd 127 bool StopfuncOut()
MaxScorda 36:9ecb98d7c2cd 128 {
MaxScorda 36:9ecb98d7c2cd 129 term.formatPrintf("Stop\n",21,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 130 term.formatPrintf("Stop H-Ard\n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 131 ardser.printf("stop\r");
MaxScorda 36:9ecb98d7c2cd 132 printDisp(dispType,"Stop H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 133 return 0;
MaxScorda 36:9ecb98d7c2cd 134 }
MaxScorda 36:9ecb98d7c2cd 135
MaxScorda 36:9ecb98d7c2cd 136 //********************* Delay Stop
MaxScorda 36:9ecb98d7c2cd 137 bool DelayStopfuncOut()
MaxScorda 36:9ecb98d7c2cd 138 {
MaxScorda 36:9ecb98d7c2cd 139 term.formatPrintf("DStop\n",21,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 140 term.formatPrintf("Delay Stop H-Ard\n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 141 ardser.printf("dstop\r");
MaxScorda 36:9ecb98d7c2cd 142 printDisp(dispType,"DlyStop H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 143 return 0;
MaxScorda 36:9ecb98d7c2cd 144 }
MaxScorda 36:9ecb98d7c2cd 145
MaxScorda 36:9ecb98d7c2cd 146
MaxScorda 36:9ecb98d7c2cd 147
MaxScorda 36:9ecb98d7c2cd 148 /************************ IN Function *****************************/
MaxScorda 36:9ecb98d7c2cd 149 /******************************************************************/
MaxScorda 36:9ecb98d7c2cd 150 /******************************************************************/
MaxScorda 36:9ecb98d7c2cd 151
MaxScorda 36:9ecb98d7c2cd 152
MaxScorda 36:9ecb98d7c2cd 153 //************************ Random
MaxScorda 36:9ecb98d7c2cd 154
MaxScorda 36:9ecb98d7c2cd 155
MaxScorda 36:9ecb98d7c2cd 156 bool RfuncIn(string func, string funcnum, string param)
MaxScorda 36:9ecb98d7c2cd 157 {
MaxScorda 36:9ecb98d7c2cd 158 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 159 if (funcnum=="1") {
MaxScorda 36:9ecb98d7c2cd 160 if (param=="on ") {
MaxScorda 36:9ecb98d7c2cd 161 printDisp(dispType,"Random On \n\r");
MaxScorda 36:9ecb98d7c2cd 162 term.formatPrintf("ON \n",65,8,99,1); //p22
MaxScorda 36:9ecb98d7c2cd 163 printDisp(dispType,"RfuncInOn \n\r");
MaxScorda 36:9ecb98d7c2cd 164 errp=0;
MaxScorda 36:9ecb98d7c2cd 165 }
MaxScorda 36:9ecb98d7c2cd 166 if (param=="off") {
MaxScorda 36:9ecb98d7c2cd 167 term.formatPrintf("OFF\n",65,8,99,1); //p22
MaxScorda 36:9ecb98d7c2cd 168 printDisp(dispType,"RfuncInOFF\n\r");
MaxScorda 36:9ecb98d7c2cd 169 errp=0;
MaxScorda 36:9ecb98d7c2cd 170 }
MaxScorda 36:9ecb98d7c2cd 171 }
MaxScorda 36:9ecb98d7c2cd 172 return errp;
MaxScorda 36:9ecb98d7c2cd 173 }
MaxScorda 36:9ecb98d7c2cd 174
MaxScorda 36:9ecb98d7c2cd 175 //********************* Synth Tracce
MaxScorda 36:9ecb98d7c2cd 176 bool s09funcIn(string func, string funcnum, string param, char sstr)
MaxScorda 36:9ecb98d7c2cd 177 {
MaxScorda 36:9ecb98d7c2cd 178 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 179 int funcn;
MaxScorda 36:9ecb98d7c2cd 180
MaxScorda 36:9ecb98d7c2cd 181 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 36:9ecb98d7c2cd 182 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)),21,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 183 // vale la pena creare una funzione di parametri da formalizzare
MaxScorda 36:9ecb98d7c2cd 184 funcn=fnzAdd.c2i(sstr);
MaxScorda 36:9ecb98d7c2cd 185 funcn=fnzAdd.constrain(funcn,0,2);
MaxScorda 36:9ecb98d7c2cd 186 //azzera flag di ricezione
MaxScorda 36:9ecb98d7c2cd 187 for (int i = 0; i < 3; i++) term.formatPrintf(" \n",31+(i%2)*40,6+(2*(i/2)),8,1); //p11 //p12 //p21
MaxScorda 36:9ecb98d7c2cd 188 term.formatPrintf("*\n",31+(funcn%2)*40,6+(2*(funcn/2)),8,1); //p11 //p12 //p21
MaxScorda 36:9ecb98d7c2cd 189 printDisp(dispType,"s09funcIn \n\r");
MaxScorda 36:9ecb98d7c2cd 190 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r")));
MaxScorda 36:9ecb98d7c2cd 191 errp=0;
MaxScorda 36:9ecb98d7c2cd 192 }
MaxScorda 36:9ecb98d7c2cd 193 return errp;
MaxScorda 36:9ecb98d7c2cd 194 }
MaxScorda 36:9ecb98d7c2cd 195
MaxScorda 36:9ecb98d7c2cd 196 //********************* Synth Note
MaxScorda 36:9ecb98d7c2cd 197 bool NfuncIn(string func, string funcnum, string param, char* arr)
MaxScorda 36:9ecb98d7c2cd 198 {
MaxScorda 36:9ecb98d7c2cd 199 bool errp=1;
MaxScorda 36:9ecb98d7c2cd 200 int funcn;
MaxScorda 36:9ecb98d7c2cd 201 if ((funcnum>="0") && (funcnum<="9")) {
MaxScorda 36:9ecb98d7c2cd 202 term.formatPrintf(fnzAdd.string2char(fnzAdd.addEOS(param)),21,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 203 // vale la pena creare una funzione di parametri da formalizzare
MaxScorda 36:9ecb98d7c2cd 204 funcn=fnzAdd.c2i(arr[2]+arr[3]);
MaxScorda 36:9ecb98d7c2cd 205 for (int i = 0; i < 6; i++) term.formatPrintf(" ",23+(i*4),12,1,1);
MaxScorda 36:9ecb98d7c2cd 206 term.formatPrintf(fnzAdd.string2char(param.substr(0,2)+"*"),21+(fnzAdd.c2i(arr[1])*4),12,1,1); //p11 //p12 //p21
MaxScorda 36:9ecb98d7c2cd 207 printDisp(dispType,"NFuncIn\n\r");
MaxScorda 36:9ecb98d7c2cd 208 printDisp(dispType,fnzAdd.string2char(fnzAdd.addEOS(" "+func+funcnum+param+"\r")));
MaxScorda 36:9ecb98d7c2cd 209 //ardser.printf(fnzAdd.string2char(fnzAdd.addEOS(func+"-"+funcnum+"-"+param)));
MaxScorda 36:9ecb98d7c2cd 210 errp=0;
MaxScorda 36:9ecb98d7c2cd 211 // }
MaxScorda 36:9ecb98d7c2cd 212 }
MaxScorda 36:9ecb98d7c2cd 213 return errp;
MaxScorda 36:9ecb98d7c2cd 214 }
MaxScorda 36:9ecb98d7c2cd 215
MaxScorda 36:9ecb98d7c2cd 216 //********************* Start
MaxScorda 36:9ecb98d7c2cd 217 bool StartfuncIn()
MaxScorda 36:9ecb98d7c2cd 218 {
MaxScorda 36:9ecb98d7c2cd 219 term.formatPrintf("*\n",26,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 220 // term.formatPrintf("Start H-Ard\n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 221 // printDisp(dispType,"InStart H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 222 return 1;
MaxScorda 36:9ecb98d7c2cd 223 }
MaxScorda 36:9ecb98d7c2cd 224
MaxScorda 36:9ecb98d7c2cd 225 //********************* Start
MaxScorda 36:9ecb98d7c2cd 226 bool StopfuncIn()
MaxScorda 36:9ecb98d7c2cd 227 {
MaxScorda 36:9ecb98d7c2cd 228 term.formatPrintf("*\n",26,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 229 // term.formatPrintf("Start H-Ard\n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 230 // printDisp(dispType,"InStop H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 231 return 1;
MaxScorda 36:9ecb98d7c2cd 232 }
MaxScorda 36:9ecb98d7c2cd 233
MaxScorda 36:9ecb98d7c2cd 234 //********************* Start
MaxScorda 36:9ecb98d7c2cd 235 bool DelayStopfuncIn()
MaxScorda 36:9ecb98d7c2cd 236 {
MaxScorda 36:9ecb98d7c2cd 237 term.formatPrintf("*\n",26,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 238 // term.formatPrintf("Start H-Ard\n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 239 // printDisp(dispType,"InStop H-Ard\n\r");
MaxScorda 36:9ecb98d7c2cd 240 return 1;
MaxScorda 36:9ecb98d7c2cd 241 }
MaxScorda 36:9ecb98d7c2cd 242
MaxScorda 36:9ecb98d7c2cd 243 //********************* Start
MaxScorda 36:9ecb98d7c2cd 244 bool bootfuncIn()
MaxScorda 36:9ecb98d7c2cd 245 {
MaxScorda 36:9ecb98d7c2cd 246 term.formatPrintf("*\n",26,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 247 term.formatPrintf("boot\n",21,14,8,1); //p51
MaxScorda 36:9ecb98d7c2cd 248 term.formatPrintf("Arduino Boot\n",61,14,99,1); //p52
MaxScorda 36:9ecb98d7c2cd 249 ardser.printf("rl\r");
MaxScorda 36:9ecb98d7c2cd 250 return 1;
MaxScorda 36:9ecb98d7c2cd 251 }