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 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 | } |
