ok

Dependencies:   mbed-rtos mbed

Fork of STINGR_PDR by JOEL CONTRERAS

Revision:
2:a79ceae53e04
Parent:
1:d140f24cf386
Child:
3:6dbdf3288c41
--- 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;
             }
         }
+        
+        
     }