Test CBS-GPIO

Dependencies:   mbed

Fork of Amplificatore_bomboni_rev2 by Giuseppe Falagario

Committer:
pinofal
Date:
Fri Jul 27 12:43:16 2018 +0000
Revision:
8:a7257fd80953
Test CBS-GPIO

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pinofal 8:a7257fd80953 1 // Tested : NUCLEO-F401RE NUCLEO-L476LG
pinofal 8:a7257fd80953 2 #include "mbed.h"
pinofal 8:a7257fd80953 3 #include<stdlib.h>
pinofal 8:a7257fd80953 4
pinofal 8:a7257fd80953 5 // dimensione del pacchetto di comunicazione tra PC e uC
pinofal 8:a7257fd80953 6 #define PACKETDIM 64
pinofal 8:a7257fd80953 7
pinofal 8:a7257fd80953 8 // comando di Read GPIO
pinofal 8:a7257fd80953 9 #define READGPIO "Read-GPIO"
pinofal 8:a7257fd80953 10 // Definizione periferiche
pinofal 8:a7257fd80953 11 Serial pc(USBTX, USBRX);
pinofal 8:a7257fd80953 12
pinofal 8:a7257fd80953 13 // User Button, LED
pinofal 8:a7257fd80953 14 DigitalIn myButton(USER_BUTTON);
pinofal 8:a7257fd80953 15 // Output di servizio sul LED2 della scheda NUCLEO
pinofal 8:a7257fd80953 16 DigitalOut myLed(LED2);
pinofal 8:a7257fd80953 17
pinofal 8:a7257fd80953 18 // Output della NUCLEO e Input del DUT. Saranno inviati dal PC alla NUCLEO, nell'ordine in cui si trovano dichiarati di seguito
pinofal 8:a7257fd80953 19 DigitalOut myOut1(PA_13);
pinofal 8:a7257fd80953 20 DigitalOut myOut2(PA_14);
pinofal 8:a7257fd80953 21 DigitalOut myOut3(PA_15);
pinofal 8:a7257fd80953 22
pinofal 8:a7257fd80953 23 // Input della NUCLEO e Output del DUT. Saranno inviati dalla NUCLEO al PC, nell'ordine in cui si trovano dichiarati di seguito
pinofal 8:a7257fd80953 24 DigitalIn myIn1(PA_8); //PA_8 PC_14
pinofal 8:a7257fd80953 25 DigitalIn myIn2(PB_10); //PB_10 PC_15
pinofal 8:a7257fd80953 26 DigitalIn myIn3(PB_4); //PB_4 PH_0
pinofal 8:a7257fd80953 27 DigitalIn myIn4(PB_5); //PB_5 PH_1
pinofal 8:a7257fd80953 28 DigitalIn myIn5(PB_3); //PB_3 PD_2
pinofal 8:a7257fd80953 29 //DigitalIn myService(PB_3);
pinofal 8:a7257fd80953 30
pinofal 8:a7257fd80953 31
pinofal 8:a7257fd80953 32 // indice per i cicli
pinofal 8:a7257fd80953 33 int nIndex;
pinofal 8:a7257fd80953 34
pinofal 8:a7257fd80953 35
pinofal 8:a7257fd80953 36 // comando ricevuto dal PC attraverso la routine di gestione interrupt Rx
pinofal 8:a7257fd80953 37 // 1: read all GPIO
pinofal 8:a7257fd80953 38 // 2: write all GPIO
pinofal 8:a7257fd80953 39 volatile int nReadCmd=0;
pinofal 8:a7257fd80953 40
pinofal 8:a7257fd80953 41 // stato degli input
pinofal 8:a7257fd80953 42 volatile int myIn1Status;
pinofal 8:a7257fd80953 43 volatile int myIn2Status;
pinofal 8:a7257fd80953 44 volatile int myIn3Status;
pinofal 8:a7257fd80953 45 volatile int myIn4Status;
pinofal 8:a7257fd80953 46 volatile int myIn5Status;
pinofal 8:a7257fd80953 47
pinofal 8:a7257fd80953 48
pinofal 8:a7257fd80953 49
pinofal 8:a7257fd80953 50 //**********************************************
pinofal 8:a7257fd80953 51 // IRQ per la Rx su seriale
pinofal 8:a7257fd80953 52 //**********************************************
pinofal 8:a7257fd80953 53 void RxInterrupt(void)
pinofal 8:a7257fd80953 54 {
pinofal 8:a7257fd80953 55 // array per la ricezione dei messaggi da seriale
pinofal 8:a7257fd80953 56 char caRxPacket[PACKETDIM];
pinofal 8:a7257fd80953 57 int nRxPacketSize;
pinofal 8:a7257fd80953 58
pinofal 8:a7257fd80953 59
pinofal 8:a7257fd80953 60
pinofal 8:a7257fd80953 61 // pntatore al comando, nella stringa ricevuta sulla seriale
pinofal 8:a7257fd80953 62 char* cCmdPosition;
pinofal 8:a7257fd80953 63
pinofal 8:a7257fd80953 64 // reset array contenente pacchetto ricevuto
pinofal 8:a7257fd80953 65 nIndex=0;
pinofal 8:a7257fd80953 66 for(nIndex=0;nIndex<PACKETDIM;nIndex++)
pinofal 8:a7257fd80953 67 {
pinofal 8:a7257fd80953 68 caRxPacket[nIndex]='\0';
pinofal 8:a7257fd80953 69 }
pinofal 8:a7257fd80953 70
pinofal 8:a7257fd80953 71 // ricevi caratteri su seriale, se disponibili
pinofal 8:a7257fd80953 72 nRxPacketSize =0;
pinofal 8:a7257fd80953 73 while((pc.readable()))
pinofal 8:a7257fd80953 74 {
pinofal 8:a7257fd80953 75 // acquisice stringa in input e relativa dimensione
pinofal 8:a7257fd80953 76 pc.scanf("%s", &caRxPacket);
pinofal 8:a7257fd80953 77 nRxPacketSize = strlen(caRxPacket);
pinofal 8:a7257fd80953 78 }
pinofal 8:a7257fd80953 79 // restituisce il comando ricevuto e la dimensione
pinofal 8:a7257fd80953 80 pc.printf("Command: %s\n\r",caRxPacket);
pinofal 8:a7257fd80953 81 pc.printf("PacketSize: %d\n\r",nRxPacketSize);
pinofal 8:a7257fd80953 82
pinofal 8:a7257fd80953 83 // confronta il comando ricevuto con quello di Read GPIO
pinofal 8:a7257fd80953 84 nReadCmd = strcmp(caRxPacket, "ReadGPIO");
pinofal 8:a7257fd80953 85 if(nReadCmd==0)
pinofal 8:a7257fd80953 86 {
pinofal 8:a7257fd80953 87 // rileva lo stato degli input e trasmettili al PC-HOST
pinofal 8:a7257fd80953 88 pc.printf("USER-BUTTON: %d\n\r",myButton.read()); // il primo input è lo User-Button per scopi di diagnostica
pinofal 8:a7257fd80953 89 // myIn1: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 90 if(myIn1==1)
pinofal 8:a7257fd80953 91 {
pinofal 8:a7257fd80953 92 pc.printf("In1: 1\n\r");
pinofal 8:a7257fd80953 93 }
pinofal 8:a7257fd80953 94 else
pinofal 8:a7257fd80953 95 {
pinofal 8:a7257fd80953 96 pc.printf("In1: 0\n\r");
pinofal 8:a7257fd80953 97 }
pinofal 8:a7257fd80953 98
pinofal 8:a7257fd80953 99 // myIn2: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 100 if(myIn2==1)
pinofal 8:a7257fd80953 101 {
pinofal 8:a7257fd80953 102 pc.printf("In2: 1\n\r");
pinofal 8:a7257fd80953 103 }
pinofal 8:a7257fd80953 104 else
pinofal 8:a7257fd80953 105 {
pinofal 8:a7257fd80953 106 pc.printf("In2: 0\n\r");
pinofal 8:a7257fd80953 107 }
pinofal 8:a7257fd80953 108 // myIn3: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 109 if(myIn3==1)
pinofal 8:a7257fd80953 110 {
pinofal 8:a7257fd80953 111 pc.printf("In3: 1\n\r");
pinofal 8:a7257fd80953 112 }
pinofal 8:a7257fd80953 113 else
pinofal 8:a7257fd80953 114 {
pinofal 8:a7257fd80953 115 pc.printf("In3: 0\n\r");
pinofal 8:a7257fd80953 116 }
pinofal 8:a7257fd80953 117 // myIn4: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 118 if(myIn4==1)
pinofal 8:a7257fd80953 119 {
pinofal 8:a7257fd80953 120 pc.printf("In4: 1\n\r");
pinofal 8:a7257fd80953 121 }
pinofal 8:a7257fd80953 122 else
pinofal 8:a7257fd80953 123 {
pinofal 8:a7257fd80953 124 pc.printf("In4: 0\n\r");
pinofal 8:a7257fd80953 125 }
pinofal 8:a7257fd80953 126
pinofal 8:a7257fd80953 127 // myIn5: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 128 if(myIn5==1)
pinofal 8:a7257fd80953 129 {
pinofal 8:a7257fd80953 130 pc.printf("In5: 1\n\r");
pinofal 8:a7257fd80953 131 }
pinofal 8:a7257fd80953 132 else
pinofal 8:a7257fd80953 133 {
pinofal 8:a7257fd80953 134 pc.printf("In5: 0\n\r");
pinofal 8:a7257fd80953 135 }
pinofal 8:a7257fd80953 136 }
pinofal 8:a7257fd80953 137 else
pinofal 8:a7257fd80953 138 {
pinofal 8:a7257fd80953 139 // verifica se nel comando ricevuto si trova la stringa WriteGPIO
pinofal 8:a7257fd80953 140 cCmdPosition=strstr(caRxPacket, "WriteGPIO");
pinofal 8:a7257fd80953 141 if(cCmdPosition != NULL) // se il comando ricevuto contiene WriteGPIO, procedi con l'analisi dei dati
pinofal 8:a7257fd80953 142 {
pinofal 8:a7257fd80953 143 // si posiziona sul delimitatore '-' , tra il comando e i dati ed estrae la stringa contenente lo stato da inviare sugli Output
pinofal 8:a7257fd80953 144 cCmdPosition = strtok(caRxPacket,"-");
pinofal 8:a7257fd80953 145 cCmdPosition = strtok(NULL,"-");
pinofal 8:a7257fd80953 146 pc.printf("Data: %s\n\r", cCmdPosition);
pinofal 8:a7257fd80953 147
pinofal 8:a7257fd80953 148 // USER_LED LED2 se il dato ricevto è '0/1' spegni/accendi il LED
pinofal 8:a7257fd80953 149 if(cCmdPosition[0]=='1')
pinofal 8:a7257fd80953 150 {
pinofal 8:a7257fd80953 151 // accendi LED e comunica al PC
pinofal 8:a7257fd80953 152 pc.printf("Led2: ON\n\r");
pinofal 8:a7257fd80953 153 myLed = 1;
pinofal 8:a7257fd80953 154 }
pinofal 8:a7257fd80953 155 else
pinofal 8:a7257fd80953 156 {
pinofal 8:a7257fd80953 157 // spegni LED e comunica al PC
pinofal 8:a7257fd80953 158 pc.printf("Led2: OFF\n\r");
pinofal 8:a7257fd80953 159 myLed = 0;
pinofal 8:a7257fd80953 160 }
pinofal 8:a7257fd80953 161
pinofal 8:a7257fd80953 162 // Out1: se il dato ricevto è '0/1' spegni/accendi l'output
pinofal 8:a7257fd80953 163 if(cCmdPosition[1]=='1')
pinofal 8:a7257fd80953 164 {
pinofal 8:a7257fd80953 165 // accendi Out1 e comunica al PC
pinofal 8:a7257fd80953 166 pc.printf("Out1: ON\n\r");
pinofal 8:a7257fd80953 167 myOut1 = 1;
pinofal 8:a7257fd80953 168 }
pinofal 8:a7257fd80953 169 else
pinofal 8:a7257fd80953 170 {
pinofal 8:a7257fd80953 171 // spegni Out1 e comunica al PC
pinofal 8:a7257fd80953 172 pc.printf("Out1: OFF\n\r");
pinofal 8:a7257fd80953 173 myOut1 = 0;
pinofal 8:a7257fd80953 174 }
pinofal 8:a7257fd80953 175
pinofal 8:a7257fd80953 176 // Out2: se il dato ricevto è '0/1' spegni/accendi l'output
pinofal 8:a7257fd80953 177 if(cCmdPosition[2]=='1')
pinofal 8:a7257fd80953 178 {
pinofal 8:a7257fd80953 179 // accendi Out2 e comunica al PC
pinofal 8:a7257fd80953 180 pc.printf("Out2: ON\n\r");
pinofal 8:a7257fd80953 181 myOut2 = 1;
pinofal 8:a7257fd80953 182 }
pinofal 8:a7257fd80953 183 else
pinofal 8:a7257fd80953 184 {
pinofal 8:a7257fd80953 185 // spegni Out2 e comunica al PC
pinofal 8:a7257fd80953 186 pc.printf("Out2: OFF\n\r");
pinofal 8:a7257fd80953 187 myOut2 = 0;
pinofal 8:a7257fd80953 188 }
pinofal 8:a7257fd80953 189
pinofal 8:a7257fd80953 190 // Out3: se il dato ricevto è '0/1' spegni/accendi l'output
pinofal 8:a7257fd80953 191 if(cCmdPosition[3]=='1')
pinofal 8:a7257fd80953 192 {
pinofal 8:a7257fd80953 193 // accendi Out3 e comunica al PC
pinofal 8:a7257fd80953 194 pc.printf("Out3: ON\n\r");
pinofal 8:a7257fd80953 195 myOut3 = 1;
pinofal 8:a7257fd80953 196 }
pinofal 8:a7257fd80953 197 else
pinofal 8:a7257fd80953 198 {
pinofal 8:a7257fd80953 199 // spegni Out3 e comunica al PC
pinofal 8:a7257fd80953 200 pc.printf("Out3: OFF\n\r");
pinofal 8:a7257fd80953 201 myOut3 = 0;
pinofal 8:a7257fd80953 202 }
pinofal 8:a7257fd80953 203 }
pinofal 8:a7257fd80953 204 }
pinofal 8:a7257fd80953 205 }
pinofal 8:a7257fd80953 206
pinofal 8:a7257fd80953 207 //**********************************************
pinofal 8:a7257fd80953 208 // IRQ per la Rx su seriale
pinofal 8:a7257fd80953 209 //**********************************************
pinofal 8:a7257fd80953 210 int main()
pinofal 8:a7257fd80953 211 {
pinofal 8:a7257fd80953 212 // array per la ricezione dei messaggi da seriale
pinofal 8:a7257fd80953 213 char caRxPacket[PACKETDIM];
pinofal 8:a7257fd80953 214 int nRxPacketSize;
pinofal 8:a7257fd80953 215
pinofal 8:a7257fd80953 216
pinofal 8:a7257fd80953 217
pinofal 8:a7257fd80953 218 // pntatore al comando, nella stringa ricevuta sulla seriale
pinofal 8:a7257fd80953 219 char* cCmdPosition;
pinofal 8:a7257fd80953 220
pinofal 8:a7257fd80953 221
pinofal 8:a7257fd80953 222 // configura velocità della comunicazione seriale su USB-VirtualCom e invia messaggio di benvenuto
pinofal 8:a7257fd80953 223 //pc.baud(56000); // 57600 bps
pinofal 8:a7257fd80953 224 pc.baud(9600); // 9600 bps
pinofal 8:a7257fd80953 225 //pc.baud(19200); // 19200 bps
pinofal 8:a7257fd80953 226 //pc.baud(57600); // a questa velocità CVI sulla USB del PC perde dei dati
pinofal 8:a7257fd80953 227 //pc.baud(921600); // a questa velocità CVI sulla USB del PC perde dei dati
pinofal 8:a7257fd80953 228
pinofal 8:a7257fd80953 229 // inizializza il LED
pinofal 8:a7257fd80953 230 myLed = 1;
pinofal 8:a7257fd80953 231 wait(1);
pinofal 8:a7257fd80953 232 myLed = 0;
pinofal 8:a7257fd80953 233
pinofal 8:a7257fd80953 234 // configura il Button come input PullUp. Non premuto = 1, Premuto = 0;
pinofal 8:a7257fd80953 235 myButton.mode(PullUp);
pinofal 8:a7257fd80953 236
pinofal 8:a7257fd80953 237 // configura gli input come PullUp. Aperto = 1;
pinofal 8:a7257fd80953 238
pinofal 8:a7257fd80953 239 myIn1.mode(PullUp);
pinofal 8:a7257fd80953 240 myIn2.mode(PullUp);
pinofal 8:a7257fd80953 241 myIn3.mode(PullUp);
pinofal 8:a7257fd80953 242 myIn4.mode(PullUp);
pinofal 8:a7257fd80953 243 myIn5.mode(PullUp);
pinofal 8:a7257fd80953 244
pinofal 8:a7257fd80953 245 //myService.mode(PullUp);
pinofal 8:a7257fd80953 246
pinofal 8:a7257fd80953 247 // Attiva la IRQ per la RX su seriale
pinofal 8:a7257fd80953 248 pc.attach(&RxInterrupt,Serial::RxIrq);
pinofal 8:a7257fd80953 249 /*
pinofal 8:a7257fd80953 250 while (true)
pinofal 8:a7257fd80953 251 {
pinofal 8:a7257fd80953 252 if( (myIn1 == 1) && (myIn2 == 1) && (myIn3 == 1) && (myIn4 == 1) && (myIn5 == 1) )
pinofal 8:a7257fd80953 253 {
pinofal 8:a7257fd80953 254 myLed = 1;
pinofal 8:a7257fd80953 255 }
pinofal 8:a7257fd80953 256 else
pinofal 8:a7257fd80953 257 {
pinofal 8:a7257fd80953 258 myLed = 0;
pinofal 8:a7257fd80953 259 }
pinofal 8:a7257fd80953 260 pc.printf("Status: %d %d %d %d %d\n\r",myIn1.read(), myIn2.read(), myIn3.read(), myIn4.read(), myIn5.read());
pinofal 8:a7257fd80953 261 }
pinofal 8:a7257fd80953 262 */
pinofal 8:a7257fd80953 263
pinofal 8:a7257fd80953 264 // ciclo in cui attende interrupt
pinofal 8:a7257fd80953 265 while(true)
pinofal 8:a7257fd80953 266 {
pinofal 8:a7257fd80953 267 /*
pinofal 8:a7257fd80953 268 if(pc.readable())
pinofal 8:a7257fd80953 269 {
pinofal 8:a7257fd80953 270 // reset array contenente pacchetto ricevuto
pinofal 8:a7257fd80953 271 nIndex=0;
pinofal 8:a7257fd80953 272 for(nIndex=0;nIndex<PACKETDIM;nIndex++)
pinofal 8:a7257fd80953 273 {
pinofal 8:a7257fd80953 274 caRxPacket[nIndex]='\0';
pinofal 8:a7257fd80953 275 }
pinofal 8:a7257fd80953 276
pinofal 8:a7257fd80953 277 // ricevi caratteri su seriale, se disponibili
pinofal 8:a7257fd80953 278 nRxPacketSize =0;
pinofal 8:a7257fd80953 279 while((pc.readable()))
pinofal 8:a7257fd80953 280 {
pinofal 8:a7257fd80953 281 // acquisice stringa in input e relativa dimensione
pinofal 8:a7257fd80953 282 pc.scanf("%s", &caRxPacket);
pinofal 8:a7257fd80953 283 nRxPacketSize = strlen(caRxPacket);
pinofal 8:a7257fd80953 284 }
pinofal 8:a7257fd80953 285 // restituisce il comando ricevuto e la dimensione
pinofal 8:a7257fd80953 286 pc.printf("Command: %s\n\r",caRxPacket);
pinofal 8:a7257fd80953 287 pc.printf("PacketSize: %d\n\r",nRxPacketSize);
pinofal 8:a7257fd80953 288
pinofal 8:a7257fd80953 289 // confronta il comando ricevuto con quello di Read GPIO
pinofal 8:a7257fd80953 290 nReadCmd = strcmp(caRxPacket, "ReadGPIO");
pinofal 8:a7257fd80953 291 if(nReadCmd==0)
pinofal 8:a7257fd80953 292 {
pinofal 8:a7257fd80953 293 // rileva lo stato degli input e trasmettili al PC-HOST
pinofal 8:a7257fd80953 294 pc.printf("USER-BUTTON: %d\n\r",myButton.read()); // il primo input è lo User-Button per scopi di diagnostica
pinofal 8:a7257fd80953 295 // myIn1: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 296 if(myIn1.read()== 0x01)
pinofal 8:a7257fd80953 297 {
pinofal 8:a7257fd80953 298 pc.printf("In1: 1\n\r");
pinofal 8:a7257fd80953 299 }
pinofal 8:a7257fd80953 300 else
pinofal 8:a7257fd80953 301 {
pinofal 8:a7257fd80953 302 pc.printf("In1: 0\n\r");
pinofal 8:a7257fd80953 303 }
pinofal 8:a7257fd80953 304
pinofal 8:a7257fd80953 305 // myIn2: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 306 if(myIn2.read()== 0x01)
pinofal 8:a7257fd80953 307 {
pinofal 8:a7257fd80953 308 pc.printf("In2: 1\n\r");
pinofal 8:a7257fd80953 309 }
pinofal 8:a7257fd80953 310 else
pinofal 8:a7257fd80953 311 {
pinofal 8:a7257fd80953 312 pc.printf("In2: 0\n\r");
pinofal 8:a7257fd80953 313 }
pinofal 8:a7257fd80953 314 // myIn3: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 315 if(myIn3.read()== 0x01)
pinofal 8:a7257fd80953 316 {
pinofal 8:a7257fd80953 317 pc.printf("In3: 1\n\r");
pinofal 8:a7257fd80953 318 }
pinofal 8:a7257fd80953 319 else
pinofal 8:a7257fd80953 320 {
pinofal 8:a7257fd80953 321 pc.printf("In3: 0\n\r");
pinofal 8:a7257fd80953 322 }
pinofal 8:a7257fd80953 323 // myIn4: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 324 if(myIn4.read()== 0x01)
pinofal 8:a7257fd80953 325 {
pinofal 8:a7257fd80953 326 pc.printf("In4: 1\n\r");
pinofal 8:a7257fd80953 327 }
pinofal 8:a7257fd80953 328 else
pinofal 8:a7257fd80953 329 {
pinofal 8:a7257fd80953 330 pc.printf("In4: 0\n\r");
pinofal 8:a7257fd80953 331 }
pinofal 8:a7257fd80953 332
pinofal 8:a7257fd80953 333 // myIn5: se legge 0/1, trasmette lo stato al PC
pinofal 8:a7257fd80953 334 if(myIn5.read()== 0x01)
pinofal 8:a7257fd80953 335 {
pinofal 8:a7257fd80953 336 pc.printf("In5: 1\n\r");
pinofal 8:a7257fd80953 337 }
pinofal 8:a7257fd80953 338 else
pinofal 8:a7257fd80953 339 {
pinofal 8:a7257fd80953 340 pc.printf("In5: 0\n\r");
pinofal 8:a7257fd80953 341 }
pinofal 8:a7257fd80953 342 }
pinofal 8:a7257fd80953 343 else
pinofal 8:a7257fd80953 344 {
pinofal 8:a7257fd80953 345 // verifica se nel comando ricevuto si trova la stringa WriteGPIO
pinofal 8:a7257fd80953 346 cCmdPosition=strstr(caRxPacket, "WriteGPIO");
pinofal 8:a7257fd80953 347 if(cCmdPosition != NULL) // se il comando ricevuto contiene WriteGPIO, procedi con l'analisi dei dati
pinofal 8:a7257fd80953 348 {
pinofal 8:a7257fd80953 349 // si posiziona sul delimitatore '-' , tra il comando e i dati ed estrae la stringa contenente lo stato da inviare sugli Output
pinofal 8:a7257fd80953 350 cCmdPosition = strtok(caRxPacket,"-");
pinofal 8:a7257fd80953 351 cCmdPosition = strtok(NULL,"-");
pinofal 8:a7257fd80953 352 pc.printf("Data: %s\n\r", cCmdPosition);
pinofal 8:a7257fd80953 353
pinofal 8:a7257fd80953 354 // USER_LED LED2 se il dato ricevto è '0/1' spegni/accendi il LED
pinofal 8:a7257fd80953 355 if(cCmdPosition[0]=='1')
pinofal 8:a7257fd80953 356 {
pinofal 8:a7257fd80953 357 // accendi LED e comunica al PC
pinofal 8:a7257fd80953 358 pc.printf("Led2: ON\n\r");
pinofal 8:a7257fd80953 359 myLed = 1;
pinofal 8:a7257fd80953 360 }
pinofal 8:a7257fd80953 361 else
pinofal 8:a7257fd80953 362 {
pinofal 8:a7257fd80953 363 // spegni LED e comunica al PC
pinofal 8:a7257fd80953 364 pc.printf("Led2: OFF\n\r");
pinofal 8:a7257fd80953 365 myLed = 0;
pinofal 8:a7257fd80953 366 }
pinofal 8:a7257fd80953 367
pinofal 8:a7257fd80953 368 // Out1: se il dato ricevto è '0/1' spegni/accendi l'output
pinofal 8:a7257fd80953 369 if(cCmdPosition[1]=='1')
pinofal 8:a7257fd80953 370 {
pinofal 8:a7257fd80953 371 // accendi Out1 e comunica al PC
pinofal 8:a7257fd80953 372 pc.printf("Out1: ON\n\r");
pinofal 8:a7257fd80953 373 myOut1 = 1;
pinofal 8:a7257fd80953 374 }
pinofal 8:a7257fd80953 375 else
pinofal 8:a7257fd80953 376 {
pinofal 8:a7257fd80953 377 // spegni Out1 e comunica al PC
pinofal 8:a7257fd80953 378 pc.printf("Out1: OFF\n\r");
pinofal 8:a7257fd80953 379 myOut1 = 0;
pinofal 8:a7257fd80953 380 }
pinofal 8:a7257fd80953 381
pinofal 8:a7257fd80953 382 // Out2: se il dato ricevto è '0/1' spegni/accendi l'output
pinofal 8:a7257fd80953 383 if(cCmdPosition[2]=='1')
pinofal 8:a7257fd80953 384 {
pinofal 8:a7257fd80953 385 // accendi Out2 e comunica al PC
pinofal 8:a7257fd80953 386 pc.printf("Out2: ON\n\r");
pinofal 8:a7257fd80953 387 myOut2 = 1;
pinofal 8:a7257fd80953 388 }
pinofal 8:a7257fd80953 389 else
pinofal 8:a7257fd80953 390 {
pinofal 8:a7257fd80953 391 // spegni Out2 e comunica al PC
pinofal 8:a7257fd80953 392 pc.printf("Out2: OFF\n\r");
pinofal 8:a7257fd80953 393 myOut2 = 0;
pinofal 8:a7257fd80953 394 }
pinofal 8:a7257fd80953 395
pinofal 8:a7257fd80953 396 // Out3: se il dato ricevto è '0/1' spegni/accendi l'output
pinofal 8:a7257fd80953 397 if(cCmdPosition[3]=='1')
pinofal 8:a7257fd80953 398 {
pinofal 8:a7257fd80953 399 // accendi Out3 e comunica al PC
pinofal 8:a7257fd80953 400 pc.printf("Out3: ON\n\r");
pinofal 8:a7257fd80953 401 myOut3 = 1;
pinofal 8:a7257fd80953 402 }
pinofal 8:a7257fd80953 403 else
pinofal 8:a7257fd80953 404 {
pinofal 8:a7257fd80953 405 // spegni Out3 e comunica al PC
pinofal 8:a7257fd80953 406 pc.printf("Out3: OFF\n\r");
pinofal 8:a7257fd80953 407 myOut3 = 0;
pinofal 8:a7257fd80953 408 }
pinofal 8:a7257fd80953 409 }
pinofal 8:a7257fd80953 410 }
pinofal 8:a7257fd80953 411 }
pinofal 8:a7257fd80953 412 */
pinofal 8:a7257fd80953 413 }
pinofal 8:a7257fd80953 414 }