Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 |
--- 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; } } + + }