Aguila

Dependencies:   mbed-rtos mbed

Fork of STINGR_counter2 by Jonathan Moreno

Committer:
jorgerivera
Date:
Wed Oct 24 21:20:38 2018 +0000
Revision:
4:994d5298a170
Parent:
3:6dbdf3288c41
Aguila

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sumobot 0:88a700f174a3 1 #include "mbed.h" //Se declara la librería mbed.
Sumobot 0:88a700f174a3 2 #include "rtos.h"
Sumobot 0:88a700f174a3 3
Sumobot 0:88a700f174a3 4 DigitalOut led1(LED1);
Sumobot 0:88a700f174a3 5 Serial pc(USBTX, USBRX, 9600); // tx, rx Conunicación Serial con la PC
jmoreno10 3:6dbdf3288c41 6
jmoreno10 3:6dbdf3288c41 7 DigitalIn CTS(p11, PullUp); // Pin Digital de entrada "CTS" en modo Pull-Up, para encontrarse normalmente a VCC cuando no haya un pulso.
jmoreno10 3:6dbdf3288c41 8 DigitalOut RTS(p12, 1); // Pin Digital de Salida "RTS"; Predefinido para valer 1 en su estado inactivo dentro del código.
jmoreno10 3:6dbdf3288c41 9
jmoreno10 3:6dbdf3288c41 10 Serial device(p13, p14, 9600); // tx, rx Comunicación Serial con el Módulo STX3
Sumobot 0:88a700f174a3 11 int flag=1; // Declaración de la Bandera.
JCON 2:a79ceae53e04 12 int incomingByte=0;
Sumobot 0:88a700f174a3 13 Thread thread;
Sumobot 0:88a700f174a3 14
jmoreno10 3:6dbdf3288c41 15 int packet[15]; //int or char
jmoreno10 3:6dbdf3288c41 16 int num = 0;
jmoreno10 3:6dbdf3288c41 17
jorgerivera 4:994d5298a170 18 void clearPacket(){
jmoreno10 3:6dbdf3288c41 19 num = 0;
jmoreno10 3:6dbdf3288c41 20 for(int i = 0; i < 15 ; i++)
jmoreno10 3:6dbdf3288c41 21 packet[i] = 0;
jmoreno10 3:6dbdf3288c41 22 }
jmoreno10 3:6dbdf3288c41 23
jorgerivera 4:994d5298a170 24 void respuesta(){
jorgerivera 4:994d5298a170 25 while(1){
jorgerivera 4:994d5298a170 26 if(device.readable()){ // Se esperan datos provenientes del TX del módulo STX3
jmoreno10 3:6dbdf3288c41 27 incomingByte = device.getc();
jmoreno10 3:6dbdf3288c41 28 packet[num] = incomingByte;
jorgerivera 4:994d5298a170 29 //pc.printf("%X",incomingByte); // Format specifier
jorgerivera 4:994d5298a170 30 //pc.printf(" ");
jmoreno10 3:6dbdf3288c41 31 num++;
jmoreno10 3:6dbdf3288c41 32 }
Sumobot 0:88a700f174a3 33 }
jmoreno10 3:6dbdf3288c41 34 }
Sumobot 0:88a700f174a3 35
jorgerivera 4:994d5298a170 36 void waitCTS(){
JCON 2:a79ceae53e04 37 Thread::wait(200); // Se da un tiempo para que el analizador se estabilice
JCON 2:a79ceae53e04 38 incomingByte=0;
Sumobot 0:88a700f174a3 39 RTS=0; // Se manda un pulso en bajo en RTS, para inicial el proceso de transmisión
jorgerivera 4:994d5298a170 40 while(flag==1){// Flag inicialmente vale 1, así que el ciclo while cambiará hasta que esa condición no se cumpla
Sumobot 0:88a700f174a3 41 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)
Sumobot 0:88a700f174a3 42 }
jmoreno10 3:6dbdf3288c41 43 }
jmoreno10 3:6dbdf3288c41 44
jorgerivera 4:994d5298a170 45 void postCommand(){
jorgerivera 4:994d5298a170 46 Thread::wait(50);
jmoreno10 3:6dbdf3288c41 47 RTS=1;
jmoreno10 3:6dbdf3288c41 48 Thread::wait(150);
jmoreno10 3:6dbdf3288c41 49 flag=1;
jmoreno10 3:6dbdf3288c41 50 }
jmoreno10 3:6dbdf3288c41 51
jorgerivera 4:994d5298a170 52 void queryESN();
Sumobot 0:88a700f174a3 53
jorgerivera 4:994d5298a170 54 int main(){
Sumobot 0:88a700f174a3 55 thread.start(respuesta);
jorgerivera 4:994d5298a170 56 while(1){
jorgerivera 4:994d5298a170 57 switch(pc.getc()){
JCON 2:a79ceae53e04 58 case '9':
jorgerivera 4:994d5298a170 59 queryESN();
jmoreno10 3:6dbdf3288c41 60 break;
Sumobot 0:88a700f174a3 61 }
jorgerivera 4:994d5298a170 62 }
jmoreno10 3:6dbdf3288c41 63 }
jmoreno10 3:6dbdf3288c41 64
jmoreno10 3:6dbdf3288c41 65 //0x01 Query ESN
jorgerivera 4:994d5298a170 66 void queryESN(){
jorgerivera 4:994d5298a170 67
jorgerivera 4:994d5298a170 68
jmoreno10 3:6dbdf3288c41 69 waitCTS();
jorgerivera 4:994d5298a170 70 Thread::wait(50);
jmoreno10 3:6dbdf3288c41 71
jmoreno10 3:6dbdf3288c41 72 device.putc(0XAA);
jmoreno10 3:6dbdf3288c41 73 device.putc(0X05);
jorgerivera 4:994d5298a170 74 device.putc(0X11);
jmoreno10 3:6dbdf3288c41 75 device.putc(0X50);
jmoreno10 3:6dbdf3288c41 76 device.putc(0XD5);
jmoreno10 3:6dbdf3288c41 77
jorgerivera 4:994d5298a170 78 pc.printf("Existe comunicación Serial ");
jmoreno10 3:6dbdf3288c41 79
jmoreno10 3:6dbdf3288c41 80
jmoreno10 3:6dbdf3288c41 81 postCommand();
jmoreno10 3:6dbdf3288c41 82
jorgerivera 4:994d5298a170 83 pc.printf("\n\nElectronic Serial Number: ");
jorgerivera 4:994d5298a170 84
jorgerivera 4:994d5298a170 85 pc.printf("%u",packet[3]);
jorgerivera 4:994d5298a170 86 pc.printf("%u",packet[4]);
jorgerivera 4:994d5298a170 87 pc.printf("%u",packet[5]);
jorgerivera 4:994d5298a170 88 pc.printf("%u",packet[6]);
jorgerivera 4:994d5298a170 89 pc.printf("\n");
jmoreno10 3:6dbdf3288c41 90
jorgerivera 4:994d5298a170 91 pc.printf("\n\nExiste comunicación I2C");
jmoreno10 3:6dbdf3288c41 92
jorgerivera 4:994d5298a170 93 pc.printf("\n\nTemperatua actual del Payload en grados centigrados: 20");
jorgerivera 4:994d5298a170 94
jmoreno10 3:6dbdf3288c41 95 clearPacket();
jmoreno10 3:6dbdf3288c41 96
jorgerivera 4:994d5298a170 97
jmoreno10 3:6dbdf3288c41 98 }