JOEL CONTRERAS
/
STINGR_PDR
programa mbed STINGR
Fork of STX3_Switch by
Revision 2:a79ceae53e04, committed 2018-06-07
- Comitter:
- JCON
- Date:
- Thu Jun 07 21:53:23 2018 +0000
- Parent:
- 1:d140f24cf386
- Commit message:
- TLE
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r d140f24cf386 -r a79ceae53e04 main.cpp --- a/main.cpp Mon Oct 30 19:58:19 2017 +0000 +++ b/main.cpp Thu Jun 07 21:53:23 2018 +0000 @@ -6,25 +6,31 @@ DigitalOut led3(LED3); DigitalOut led4(LED4); Serial pc(USBTX, USBRX, 9600); // tx, rx Conunicación Serial con la PC +DigitalIn CTS(p7, PullUp); // Pin Digital de entrada "CTS" en modo Pull-Up, para encontrarse normalmente a VCC cuando no haya un pulso. +DigitalOut RTS(p8, 1); // Pin Digital de Salida "RTS"; Predefinido para valer 1 en su estado inactivo dentro del código. Serial device(p9, p10, 9600); // tx, rx Comunicación Serial con el Módulo STX3 -DigitalOut RTS(p7, 1); // Pin Digital de Salida "RTS"; Predefinido para valer 1 en su estado inactivo dentro del código. -DigitalIn CTS(p8, PullUp); // Pin Digital de entrada "CTS" en modo Pull-Up, para encontrarse normalmente a VCC cuando no haya un pulso. int flag=1; // Declaración de la Bandera. +int incomingByte=0; Thread thread; void respuesta(){ while(1){ if(device.readable()) { // Se esperan datos provenientes del TX del módulo STX3 - pc.putc(device.getc()); // Se muestra en pantalla la respuesta recibida por el módulo STX3 como una reacción al mensaje en HEX enviado + incomingByte=device.getc(); + //pc.putc(num); + pc.printf("%X",incomingByte); + pc.printf(" "); + // pc.putc(device.getc()); // Se muestra en pantalla la respuesta recibida por el módulo STX3 como una reacción al mensaje en HEX enviado } } } void stx3() { - Thread::wait(5000); // Se da un tiempo para que el analizador se estabilice - pc.printf("El valor de CTS 1 es %d\n\r",CTS.read()); // Se lee el valor de la variable CTS, la cual debe ser 1 - pc.printf("El valor de RTS 1 es %d\n\r",RTS.read()); // Se lee el valor de la variable RTS, la cual debe ser 1 + Thread::wait(200); // Se da un tiempo para que el analizador se estabilice + incomingByte=0; + pc.printf("El valor de CTS es %d\n\r",CTS.read()); // Se lee el valor de la variable CTS, la cual debe ser 1 + pc.printf("El valor de RTS es %d\n\r",RTS.read()); // Se lee el valor de la variable RTS, la cual debe ser 1 RTS=0; // Se manda un pulso en bajo en RTS, para inicial el proceso de transmisión while(flag==1){ // Flag inicialmente vale 1, así que el ciclo while cambiará hasta que esa condición no se cumpla flag=CTS.read(); // Cuando entra el ciclo, se iguala flag a CTS, el cual cuando cambie a 0 provocará que termine el while (máx 125 ms) @@ -42,16 +48,19 @@ case '1': { led1=!led1; + pc.printf("\n\rQuery ESN AA 05 01 50 D5\n\r"); stx3(); - Thread::wait(100); // Query ESN + Thread::wait(10); // Query ESN device.putc(0XAA); device.putc(0X05); device.putc(0X01); device.putc(0X50); device.putc(0XD5); - Thread::wait(100); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); flag=1; } break; @@ -59,16 +68,19 @@ case '2': { led2=!led2; + pc.printf("\n\rQuery Burst Remaining AA 05 04 FD 82\n\r"); stx3(); - Thread::wait(100); // Query Bursts Remaining + Thread::wait(10); // Query Bursts Remaining device.putc(0XAA); device.putc(0X05); device.putc(0X04); device.putc(0XFD); device.putc(0X82); - Thread::wait(100); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); flag=1; } break; @@ -76,20 +88,280 @@ case '3': { led3=!led3; + pc.printf("\n\rQuery Firmware Version AA 05 05 74 93\n\r"); stx3(); - Thread::wait(100); // Query Firmware Version + Thread::wait(10); // Query Firmware Version device.putc(0XAA); device.putc(0X05); device.putc(0X05); device.putc(0X74); device.putc(0X93); - Thread::wait(100); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión + RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); + flag=1; + } + break; + + case '4': + { + led4=!led4; + pc.printf("\n\rQuery SETUP AA 05 07 66 B0\n\r"); + stx3(); + Thread::wait(10); // Query SETUP + device.putc(0XAA); + device.putc(0X05); + device.putc(0X07); + device.putc(0X66); + device.putc(0XB0); + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión + RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); + flag=1; + } + break; + + case '5': + { + led1=!led1; + pc.printf("\n\rQuery Hardware Version AA 05 09 18 59\n\r"); + stx3(); + Thread::wait(10); // Query Hardware Version + device.putc(0XAA); + device.putc(0X05); + device.putc(0X09); + device.putc(0X18); + device.putc(0X59); + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión + RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); + flag=1; + } + break; + + case '6': + { + led2=!led2; + pc.printf("\n\rNAK AA 05 07 66 B1\n\r"); + stx3(); + Thread::wait(10); // Manda error NAK + device.putc(0XAA); + device.putc(0X05); + device.putc(0X07); + device.putc(0X66); + device.putc(0XB1); + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión + RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); + flag=1; + } + break; + + case '7': + { + led3=!led3; + pc.printf("\n\rSETUP AA 0E 06 00 00 00 00 00 03 18 30 00 CE 9C\n\r"); + stx3(); + Thread::wait(10); // SETUP + device.putc(0XAA); + device.putc(0X0E); + device.putc(0X06); + device.putc(0X00); + device.putc(0X00); + device.putc(0X00); + device.putc(0X00); + device.putc(0X00); + device.putc(0X03); + device.putc(0X18); + device.putc(0X30); + device.putc(0X00); + device.putc(0XCE); + device.putc(0X9C); + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión + RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); + flag=1; + } + break; + + case '8': + { + led4=!led4; + pc.printf("\n\rSend Data AA 0E 00 01 02 03 04 05 06 07 08 09 BE E8\n\r"); + stx3(); + Thread::wait(10); // SEND DATA + device.putc(0XAA); + device.putc(0X0E); + device.putc(0X00); + device.putc(0X01); + device.putc(0X02); + device.putc(0X03); + device.putc(0X04); + device.putc(0X05); + device.putc(0X06); + device.putc(0X07); + device.putc(0X08); + device.putc(0X09); + device.putc(0XBE); + device.putc(0XE8); + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); + flag=1; + } + break; + + + case '9': + { + led1=!led1; + pc.printf("\n\rAbort Transmission AA 05 03 42 F6\n\r"); + stx3(); + Thread::wait(10); // Abort Transmission + device.putc(0XAA); + device.putc(0X05); + device.putc(0X03); + device.putc(0X42); + device.putc(0XF6); + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión + RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); + flag=1; + } + break; + + case 'A': + { + led2=!led2; + pc.printf("\n\rSend Data for PDR\n\r"); + stx3(); + Thread::wait(10); // SEND DATA + device.putc(0XAA); + device.putc(0X65); + device.putc(0X00); + device.putc(0X41); + device.putc(0X6E); + device.putc(0X64); + device.putc(0X72); + device.putc(0X65); + device.putc(0X73); + device.putc(0X20); + device.putc(0X4D); + device.putc(0X61); + device.putc(0X72); + device.putc(0X74); + device.putc(0X69); + device.putc(0X6E); + device.putc(0X65); + device.putc(0X7A); + device.putc(0X20); + device.putc(0X4E); + device.putc(0X41); + device.putc(0X53); + device.putc(0X41); + device.putc(0X0D); + device.putc(0X0A); + device.putc(0X43); + device.putc(0X61); + device.putc(0X72); + device.putc(0X6C); + device.putc(0X6F); + device.putc(0X73); + device.putc(0X20); + device.putc(0X44); + device.putc(0X75); + device.putc(0X61); + device.putc(0X72); + device.putc(0X74); + device.putc(0X65); + device.putc(0X20); + device.putc(0X41); + device.putc(0X45); + device.putc(0X4D); + device.putc(0X0D); + device.putc(0X0A); + device.putc(0X45); + device.putc(0X75); + device.putc(0X67); + device.putc(0X65); + device.putc(0X6E); + device.putc(0X69); + device.putc(0X6F); + device.putc(0X20); + device.putc(0X55); + device.putc(0X72); + device.putc(0X72); + device.putc(0X75); + device.putc(0X74); + device.putc(0X69); + device.putc(0X61); + device.putc(0X20); + device.putc(0X55); + device.putc(0X50); + device.putc(0X41); + device.putc(0X45); + device.putc(0X50); + device.putc(0X0D); + device.putc(0X0A); + device.putc(0X46); + device.putc(0X65); + device.putc(0X62); + device.putc(0X72); + device.putc(0X75); + device.putc(0X61); + device.putc(0X72); + device.putc(0X79); + device.putc(0X20); + device.putc(0X32); + device.putc(0X30); + device.putc(0X74); + device.putc(0X68); + device.putc(0X20); + device.putc(0X32); + device.putc(0X30); + device.putc(0X31); + device.putc(0X38); + device.putc(0X0D); + device.putc(0X0A); + device.putc(0X50); + device.putc(0X44); + device.putc(0X52); + device.putc(0X20); + device.putc(0X61); + device.putc(0X70); + device.putc(0X70); + device.putc(0X72); + device.putc(0X6F); + device.putc(0X76); + device.putc(0X65); + device.putc(0X64); + device.putc(0XC8); + device.putc(0X16); + Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones + //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión + RTS=1; + Thread::wait(150); + pc.printf("\n\rCTS: %d\n\r",CTS.read()); flag=1; } break; } } + + }