Aguila
Fork of STINGR_counter2 by
main.cpp@4:994d5298a170, 2018-10-24 (annotated)
- Committer:
- jorgerivera
- Date:
- Wed Oct 24 21:20:38 2018 +0000
- Revision:
- 4:994d5298a170
- Parent:
- 3:6dbdf3288c41
Aguila
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |
