Jonathan Moreno
/
STINGR_counter2
ok
Fork of STINGR_PDR by
main.cpp@3:6dbdf3288c41, 2018-10-11 (annotated)
- Committer:
- jmoreno10
- Date:
- Thu Oct 11 22:12:53 2018 +0000
- Revision:
- 3:6dbdf3288c41
- Parent:
- 2:a79ceae53e04
ok
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 | DigitalOut led2(LED2); |
Sumobot | 0:88a700f174a3 | 6 | DigitalOut led3(LED3); |
Sumobot | 0:88a700f174a3 | 7 | DigitalOut led4(LED4); |
Sumobot | 0:88a700f174a3 | 8 | Serial pc(USBTX, USBRX, 9600); // tx, rx Conunicación Serial con la PC |
jmoreno10 | 3:6dbdf3288c41 | 9 | //DigitalIn CTS(p7, PullUp); // Pin Digital de entrada "CTS" en modo Pull-Up, para encontrarse normalmente a VCC cuando no haya un pulso. |
jmoreno10 | 3:6dbdf3288c41 | 10 | //DigitalOut RTS(p8, 1); // Pin Digital de Salida "RTS"; Predefinido para valer 1 en su estado inactivo dentro del código. |
jmoreno10 | 3:6dbdf3288c41 | 11 | |
jmoreno10 | 3:6dbdf3288c41 | 12 | 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 | 13 | DigitalOut RTS(p12, 1); // Pin Digital de Salida "RTS"; Predefinido para valer 1 en su estado inactivo dentro del código. |
jmoreno10 | 3:6dbdf3288c41 | 14 | |
jmoreno10 | 3:6dbdf3288c41 | 15 | Serial device(p13, p14, 9600); // tx, rx Comunicación Serial con el Módulo STX3 |
Sumobot | 0:88a700f174a3 | 16 | int flag=1; // Declaración de la Bandera. |
JCON | 2:a79ceae53e04 | 17 | int incomingByte=0; |
Sumobot | 0:88a700f174a3 | 18 | Thread thread; |
Sumobot | 0:88a700f174a3 | 19 | |
jmoreno10 | 3:6dbdf3288c41 | 20 | int packet[15]; //int or char |
jmoreno10 | 3:6dbdf3288c41 | 21 | int num = 0; |
jmoreno10 | 3:6dbdf3288c41 | 22 | |
jmoreno10 | 3:6dbdf3288c41 | 23 | void clearPacket() |
jmoreno10 | 3:6dbdf3288c41 | 24 | { |
jmoreno10 | 3:6dbdf3288c41 | 25 | num = 0; |
jmoreno10 | 3:6dbdf3288c41 | 26 | for(int i = 0; i < 15 ; i++) |
jmoreno10 | 3:6dbdf3288c41 | 27 | packet[i] = 0; |
jmoreno10 | 3:6dbdf3288c41 | 28 | } |
jmoreno10 | 3:6dbdf3288c41 | 29 | |
jmoreno10 | 3:6dbdf3288c41 | 30 | void printPacket() |
jmoreno10 | 3:6dbdf3288c41 | 31 | { |
jmoreno10 | 3:6dbdf3288c41 | 32 | pc.printf("\nprintPacket(): "); |
jmoreno10 | 3:6dbdf3288c41 | 33 | for(int i = 0; i < 15 ; i++) |
jmoreno10 | 3:6dbdf3288c41 | 34 | { |
jmoreno10 | 3:6dbdf3288c41 | 35 | pc.printf("%u",packet[i]); // Format specifier |
jmoreno10 | 3:6dbdf3288c41 | 36 | pc.printf(" "); |
jmoreno10 | 3:6dbdf3288c41 | 37 | } |
jmoreno10 | 3:6dbdf3288c41 | 38 | } |
jmoreno10 | 3:6dbdf3288c41 | 39 | |
jmoreno10 | 3:6dbdf3288c41 | 40 | void respuesta() |
jmoreno10 | 3:6dbdf3288c41 | 41 | { |
jmoreno10 | 3:6dbdf3288c41 | 42 | while(1) |
jmoreno10 | 3:6dbdf3288c41 | 43 | { |
jmoreno10 | 3:6dbdf3288c41 | 44 | if(device.readable()) |
jmoreno10 | 3:6dbdf3288c41 | 45 | { // Se esperan datos provenientes del TX del módulo STX3 |
jmoreno10 | 3:6dbdf3288c41 | 46 | incomingByte = device.getc(); |
jmoreno10 | 3:6dbdf3288c41 | 47 | packet[num] = incomingByte; |
jmoreno10 | 3:6dbdf3288c41 | 48 | pc.printf("%X",incomingByte); // Format specifier |
JCON | 2:a79ceae53e04 | 49 | pc.printf(" "); |
jmoreno10 | 3:6dbdf3288c41 | 50 | num++; |
jmoreno10 | 3:6dbdf3288c41 | 51 | } |
Sumobot | 0:88a700f174a3 | 52 | } |
jmoreno10 | 3:6dbdf3288c41 | 53 | } |
Sumobot | 0:88a700f174a3 | 54 | |
jmoreno10 | 3:6dbdf3288c41 | 55 | void waitCTS() |
jmoreno10 | 3:6dbdf3288c41 | 56 | { |
JCON | 2:a79ceae53e04 | 57 | Thread::wait(200); // Se da un tiempo para que el analizador se estabilice |
JCON | 2:a79ceae53e04 | 58 | incomingByte=0; |
jmoreno10 | 3:6dbdf3288c41 | 59 | //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 |
jmoreno10 | 3:6dbdf3288c41 | 60 | //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 |
Sumobot | 0:88a700f174a3 | 61 | RTS=0; // Se manda un pulso en bajo en RTS, para inicial el proceso de transmisión |
jmoreno10 | 3:6dbdf3288c41 | 62 | |
jmoreno10 | 3:6dbdf3288c41 | 63 | while(flag==1) |
jmoreno10 | 3:6dbdf3288c41 | 64 | {// Flag inicialmente vale 1, así que el ciclo while cambiará hasta que esa condición no se cumpla |
Sumobot | 0:88a700f174a3 | 65 | 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) |
jmoreno10 | 3:6dbdf3288c41 | 66 | //pc.printf("El valor de flag es %d\n\r", flag); // Se imprime el valor de flag, para identificar cuando termina el ciclo while |
Sumobot | 0:88a700f174a3 | 67 | } |
jmoreno10 | 3:6dbdf3288c41 | 68 | } |
jmoreno10 | 3:6dbdf3288c41 | 69 | |
jmoreno10 | 3:6dbdf3288c41 | 70 | void postCommand() |
jmoreno10 | 3:6dbdf3288c41 | 71 | { |
jmoreno10 | 3:6dbdf3288c41 | 72 | Thread::wait(10); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones |
jmoreno10 | 3:6dbdf3288c41 | 73 | //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 |
jmoreno10 | 3:6dbdf3288c41 | 74 | RTS=1; |
jmoreno10 | 3:6dbdf3288c41 | 75 | Thread::wait(150); |
jmoreno10 | 3:6dbdf3288c41 | 76 | //pc.printf("\n\rCTS: %d\n\r",CTS.read()); |
jmoreno10 | 3:6dbdf3288c41 | 77 | flag=1; |
jmoreno10 | 3:6dbdf3288c41 | 78 | } |
jmoreno10 | 3:6dbdf3288c41 | 79 | |
jmoreno10 | 3:6dbdf3288c41 | 80 | |
jmoreno10 | 3:6dbdf3288c41 | 81 | bool queryESN(); |
jmoreno10 | 3:6dbdf3288c41 | 82 | bool abortTransmission(); |
jmoreno10 | 3:6dbdf3288c41 | 83 | bool queryFirmware(); |
jmoreno10 | 3:6dbdf3288c41 | 84 | |
jmoreno10 | 3:6dbdf3288c41 | 85 | int queryBursts(); |
jmoreno10 | 3:6dbdf3288c41 | 86 | long int querySetup(); |
jmoreno10 | 3:6dbdf3288c41 | 87 | |
jmoreno10 | 3:6dbdf3288c41 | 88 | void sendData(); |
jmoreno10 | 3:6dbdf3288c41 | 89 | void _setup(); |
jmoreno10 | 3:6dbdf3288c41 | 90 | void queryHardware(); |
jmoreno10 | 3:6dbdf3288c41 | 91 | void NAKcommand(); |
Sumobot | 0:88a700f174a3 | 92 | |
jmoreno10 | 3:6dbdf3288c41 | 93 | int main() |
jmoreno10 | 3:6dbdf3288c41 | 94 | { |
jmoreno10 | 3:6dbdf3288c41 | 95 | int bursts = 0; |
jmoreno10 | 3:6dbdf3288c41 | 96 | int long numSetup = 0; |
Sumobot | 0:88a700f174a3 | 97 | thread.start(respuesta); |
Sumobot | 0:88a700f174a3 | 98 | |
jmoreno10 | 3:6dbdf3288c41 | 99 | while(1) |
jmoreno10 | 3:6dbdf3288c41 | 100 | { |
Sumobot | 0:88a700f174a3 | 101 | switch (pc.getc()) |
Sumobot | 0:88a700f174a3 | 102 | { |
jmoreno10 | 3:6dbdf3288c41 | 103 | case '1': |
jmoreno10 | 3:6dbdf3288c41 | 104 | if (queryESN() == true) |
jmoreno10 | 3:6dbdf3288c41 | 105 | pc.printf("\nQuery ESN is correct. VALID\n"); |
jmoreno10 | 3:6dbdf3288c41 | 106 | else |
jmoreno10 | 3:6dbdf3288c41 | 107 | pc.printf("\nNAK response. INVALID"); |
jmoreno10 | 3:6dbdf3288c41 | 108 | break; |
jmoreno10 | 3:6dbdf3288c41 | 109 | |
jmoreno10 | 3:6dbdf3288c41 | 110 | case '2': |
jmoreno10 | 3:6dbdf3288c41 | 111 | bursts = queryBursts(); |
jmoreno10 | 3:6dbdf3288c41 | 112 | if (bursts != 99) |
jmoreno10 | 3:6dbdf3288c41 | 113 | { |
jmoreno10 | 3:6dbdf3288c41 | 114 | pc.printf("\nBursts Remaining: "); |
jmoreno10 | 3:6dbdf3288c41 | 115 | pc.printf("%u",bursts); |
jmoreno10 | 3:6dbdf3288c41 | 116 | pc.printf("\n"); |
jmoreno10 | 3:6dbdf3288c41 | 117 | } |
jmoreno10 | 3:6dbdf3288c41 | 118 | else |
jmoreno10 | 3:6dbdf3288c41 | 119 | pc.printf("\nNAK response. INVALID"); |
jmoreno10 | 3:6dbdf3288c41 | 120 | break; |
jmoreno10 | 3:6dbdf3288c41 | 121 | |
jmoreno10 | 3:6dbdf3288c41 | 122 | case '3': |
jmoreno10 | 3:6dbdf3288c41 | 123 | if (queryFirmware() == true) |
jmoreno10 | 3:6dbdf3288c41 | 124 | pc.printf("\nQuery ESN is correct. VALID\n"); |
jmoreno10 | 3:6dbdf3288c41 | 125 | else |
jmoreno10 | 3:6dbdf3288c41 | 126 | pc.printf("NAK. INVALID"); |
jmoreno10 | 3:6dbdf3288c41 | 127 | break; |
jmoreno10 | 3:6dbdf3288c41 | 128 | |
jmoreno10 | 3:6dbdf3288c41 | 129 | case '4': |
jmoreno10 | 3:6dbdf3288c41 | 130 | numSetup = querySetup(); |
jmoreno10 | 3:6dbdf3288c41 | 131 | if (numSetup == NULL) |
jmoreno10 | 3:6dbdf3288c41 | 132 | pc.printf("NAK"); |
jmoreno10 | 3:6dbdf3288c41 | 133 | |
jmoreno10 | 3:6dbdf3288c41 | 134 | //Print Channel |
jmoreno10 | 3:6dbdf3288c41 | 135 | pc.printf("\n RF Channel: "); |
jmoreno10 | 3:6dbdf3288c41 | 136 | pc.printf("%u",numSetup/(10000000)); // RF channel |
jmoreno10 | 3:6dbdf3288c41 | 137 | numSetup = numSetup - (numSetup/10000000)*10000000; // Truncate RF Digits |
jmoreno10 | 3:6dbdf3288c41 | 138 | //Print Bursts |
jmoreno10 | 3:6dbdf3288c41 | 139 | pc.printf("\n # of Bursts: "); |
jmoreno10 | 3:6dbdf3288c41 | 140 | pc.printf("%u",numSetup/(100000)); // Bursts Per Message |
jmoreno10 | 3:6dbdf3288c41 | 141 | numSetup = numSetup - (numSetup/100000)*100000; // Truncate Burst Digits |
jmoreno10 | 3:6dbdf3288c41 | 142 | //Print Min Interval |
jmoreno10 | 3:6dbdf3288c41 | 143 | pc.printf("\n Min Burst Interval: "); |
jmoreno10 | 3:6dbdf3288c41 | 144 | pc.printf("%u",numSetup/1000*5); // Min Interval |
jmoreno10 | 3:6dbdf3288c41 | 145 | numSetup = numSetup - (numSetup/1000)*1000; // Truncate Min Interval |
jmoreno10 | 3:6dbdf3288c41 | 146 | pc.printf(" seconds"); |
jmoreno10 | 3:6dbdf3288c41 | 147 | //Print Max Interval |
jmoreno10 | 3:6dbdf3288c41 | 148 | pc.printf("\n Max Burst Interval: "); |
jmoreno10 | 3:6dbdf3288c41 | 149 | pc.printf("%u",numSetup*5); // Max Interval |
jmoreno10 | 3:6dbdf3288c41 | 150 | pc.printf(" seconds\n"); |
jmoreno10 | 3:6dbdf3288c41 | 151 | |
jmoreno10 | 3:6dbdf3288c41 | 152 | break; |
jmoreno10 | 3:6dbdf3288c41 | 153 | |
jmoreno10 | 3:6dbdf3288c41 | 154 | case '5': |
jmoreno10 | 3:6dbdf3288c41 | 155 | queryHardware(); |
jmoreno10 | 3:6dbdf3288c41 | 156 | break; |
jmoreno10 | 3:6dbdf3288c41 | 157 | case '6': |
jmoreno10 | 3:6dbdf3288c41 | 158 | NAKcommand(); |
jmoreno10 | 3:6dbdf3288c41 | 159 | break; |
JCON | 2:a79ceae53e04 | 160 | case '7': |
jmoreno10 | 3:6dbdf3288c41 | 161 | _setup(); |
jmoreno10 | 3:6dbdf3288c41 | 162 | break; |
JCON | 2:a79ceae53e04 | 163 | case '8': |
jmoreno10 | 3:6dbdf3288c41 | 164 | sendData(); |
jmoreno10 | 3:6dbdf3288c41 | 165 | break; |
JCON | 2:a79ceae53e04 | 166 | case '9': |
jmoreno10 | 3:6dbdf3288c41 | 167 | if (abortTransmission() == true) |
jmoreno10 | 3:6dbdf3288c41 | 168 | pc.printf("\nTransmission successfully aborted.\n"); |
jmoreno10 | 3:6dbdf3288c41 | 169 | else |
jmoreno10 | 3:6dbdf3288c41 | 170 | pc.printf("\nNAK response. INVALID"); |
jmoreno10 | 3:6dbdf3288c41 | 171 | break; |
Sumobot | 0:88a700f174a3 | 172 | } |
jmoreno10 | 3:6dbdf3288c41 | 173 | } |
jmoreno10 | 3:6dbdf3288c41 | 174 | } |
jmoreno10 | 3:6dbdf3288c41 | 175 | |
jmoreno10 | 3:6dbdf3288c41 | 176 | //0x00 Send Data |
jmoreno10 | 3:6dbdf3288c41 | 177 | void sendData() |
jmoreno10 | 3:6dbdf3288c41 | 178 | { |
jmoreno10 | 3:6dbdf3288c41 | 179 | led4=!led4; |
jmoreno10 | 3:6dbdf3288c41 | 180 | pc.printf("\n\r0x00 Send Data\nCommand: AA 0E 00 01 02 03 04 05 06 07 08 09 BE E8\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 181 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 182 | Thread::wait(10); // SEND DATA |
jmoreno10 | 3:6dbdf3288c41 | 183 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 184 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 185 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 186 | device.putc(0X01); |
jmoreno10 | 3:6dbdf3288c41 | 187 | device.putc(0X02); |
jmoreno10 | 3:6dbdf3288c41 | 188 | device.putc(0X03); |
jmoreno10 | 3:6dbdf3288c41 | 189 | device.putc(0X04); |
jmoreno10 | 3:6dbdf3288c41 | 190 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 191 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 192 | device.putc(0X07); |
jmoreno10 | 3:6dbdf3288c41 | 193 | device.putc(0X08); |
jmoreno10 | 3:6dbdf3288c41 | 194 | device.putc(0X09); |
jmoreno10 | 3:6dbdf3288c41 | 195 | device.putc(0XBE); |
jmoreno10 | 3:6dbdf3288c41 | 196 | device.putc(0XE8); |
jmoreno10 | 3:6dbdf3288c41 | 197 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 198 | } |
jmoreno10 | 3:6dbdf3288c41 | 199 | |
jmoreno10 | 3:6dbdf3288c41 | 200 | //0x01 Query ESN |
jmoreno10 | 3:6dbdf3288c41 | 201 | bool queryESN() |
jmoreno10 | 3:6dbdf3288c41 | 202 | { |
jmoreno10 | 3:6dbdf3288c41 | 203 | led1=!led1; |
jmoreno10 | 3:6dbdf3288c41 | 204 | pc.printf("\n\n\r0x01 Query ESN\nCommand: AA 05 01 50 D5\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 205 | pc.printf("Response: "); |
jmoreno10 | 3:6dbdf3288c41 | 206 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 207 | Thread::wait(10); |
jmoreno10 | 3:6dbdf3288c41 | 208 | |
jmoreno10 | 3:6dbdf3288c41 | 209 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 210 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 211 | device.putc(0X01); |
jmoreno10 | 3:6dbdf3288c41 | 212 | device.putc(0X50); |
jmoreno10 | 3:6dbdf3288c41 | 213 | device.putc(0XD5); |
jmoreno10 | 3:6dbdf3288c41 | 214 | |
jmoreno10 | 3:6dbdf3288c41 | 215 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 216 | printPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 217 | if (packet[3] == 0 && // 0x00 |
jmoreno10 | 3:6dbdf3288c41 | 218 | packet[4] == 41 && // 0x29 |
jmoreno10 | 3:6dbdf3288c41 | 219 | packet[5] == 67 && // 0x43 |
jmoreno10 | 3:6dbdf3288c41 | 220 | packet[6] == 179) // 0xB3 |
jmoreno10 | 3:6dbdf3288c41 | 221 | { |
jmoreno10 | 3:6dbdf3288c41 | 222 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 223 | return true; |
jmoreno10 | 3:6dbdf3288c41 | 224 | } |
jmoreno10 | 3:6dbdf3288c41 | 225 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 226 | return false; |
jmoreno10 | 3:6dbdf3288c41 | 227 | } |
jmoreno10 | 3:6dbdf3288c41 | 228 | |
jmoreno10 | 3:6dbdf3288c41 | 229 | //0x03 Abort Transmission |
jmoreno10 | 3:6dbdf3288c41 | 230 | bool abortTransmission() |
jmoreno10 | 3:6dbdf3288c41 | 231 | { |
jmoreno10 | 3:6dbdf3288c41 | 232 | led1=!led1; |
jmoreno10 | 3:6dbdf3288c41 | 233 | pc.printf("\n\r0x03 Abort Transmission\nCommand: AA 05 03 42 F6\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 234 | pc.printf("Response: "); |
jmoreno10 | 3:6dbdf3288c41 | 235 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 236 | Thread::wait(10); |
jmoreno10 | 3:6dbdf3288c41 | 237 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 238 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 239 | device.putc(0X03); |
jmoreno10 | 3:6dbdf3288c41 | 240 | device.putc(0X42); |
jmoreno10 | 3:6dbdf3288c41 | 241 | device.putc(0XF6); |
jmoreno10 | 3:6dbdf3288c41 | 242 | |
jmoreno10 | 3:6dbdf3288c41 | 243 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 244 | printPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 245 | if (packet[0] == 170 && // 0xAA |
jmoreno10 | 3:6dbdf3288c41 | 246 | packet[1] == 5 && // 0x05 |
jmoreno10 | 3:6dbdf3288c41 | 247 | packet[2] == 3 && // 0x03 |
jmoreno10 | 3:6dbdf3288c41 | 248 | packet[3] == 66 && // 0x42 |
jmoreno10 | 3:6dbdf3288c41 | 249 | packet[4] == 246) // 0xF6 |
jmoreno10 | 3:6dbdf3288c41 | 250 | { |
jmoreno10 | 3:6dbdf3288c41 | 251 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 252 | return true; |
jmoreno10 | 3:6dbdf3288c41 | 253 | } |
jmoreno10 | 3:6dbdf3288c41 | 254 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 255 | return false; |
jmoreno10 | 3:6dbdf3288c41 | 256 | } |
jmoreno10 | 3:6dbdf3288c41 | 257 | |
jmoreno10 | 3:6dbdf3288c41 | 258 | //0x04 Query Bursts |
jmoreno10 | 3:6dbdf3288c41 | 259 | int queryBursts() |
jmoreno10 | 3:6dbdf3288c41 | 260 | { |
jmoreno10 | 3:6dbdf3288c41 | 261 | //int bursts = 99; |
jmoreno10 | 3:6dbdf3288c41 | 262 | led2=!led2; |
jmoreno10 | 3:6dbdf3288c41 | 263 | pc.printf("\n\r0x04 Query Burst Remaining\nCommand: AA 05 04 FD 82\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 264 | pc.printf("Response: "); |
jmoreno10 | 3:6dbdf3288c41 | 265 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 266 | Thread::wait(10); |
jmoreno10 | 3:6dbdf3288c41 | 267 | |
jmoreno10 | 3:6dbdf3288c41 | 268 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 269 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 270 | device.putc(0X04); |
jmoreno10 | 3:6dbdf3288c41 | 271 | device.putc(0XFD); |
jmoreno10 | 3:6dbdf3288c41 | 272 | device.putc(0X82); |
jmoreno10 | 3:6dbdf3288c41 | 273 | |
jmoreno10 | 3:6dbdf3288c41 | 274 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 275 | printPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 276 | |
jmoreno10 | 3:6dbdf3288c41 | 277 | //If NAK response |
jmoreno10 | 3:6dbdf3288c41 | 278 | if (packet[0] == 170 && // 0xAA |
jmoreno10 | 3:6dbdf3288c41 | 279 | packet[1] == 5 && // 0x05 |
jmoreno10 | 3:6dbdf3288c41 | 280 | packet[2] == 255 && // 0xFF |
jmoreno10 | 3:6dbdf3288c41 | 281 | packet[3] == 161 && // 0xA1 |
jmoreno10 | 3:6dbdf3288c41 | 282 | packet[4] == 203) // 0xCB |
jmoreno10 | 3:6dbdf3288c41 | 283 | { |
jmoreno10 | 3:6dbdf3288c41 | 284 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 285 | return 99; |
jmoreno10 | 3:6dbdf3288c41 | 286 | } |
jmoreno10 | 3:6dbdf3288c41 | 287 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 288 | return packet[3]; |
jmoreno10 | 3:6dbdf3288c41 | 289 | } |
jmoreno10 | 3:6dbdf3288c41 | 290 | |
jmoreno10 | 3:6dbdf3288c41 | 291 | //0x05 Query Firmware |
jmoreno10 | 3:6dbdf3288c41 | 292 | bool queryFirmware() |
jmoreno10 | 3:6dbdf3288c41 | 293 | { |
jmoreno10 | 3:6dbdf3288c41 | 294 | led3=!led3; |
jmoreno10 | 3:6dbdf3288c41 | 295 | pc.printf("\n\r0x05 Query Firmware Version\nCommand: AA 05 05 74 93\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 296 | pc.printf("Response: "); |
jmoreno10 | 3:6dbdf3288c41 | 297 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 298 | Thread::wait(10); |
jmoreno10 | 3:6dbdf3288c41 | 299 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 300 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 301 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 302 | device.putc(0X74); |
jmoreno10 | 3:6dbdf3288c41 | 303 | device.putc(0X93); |
jmoreno10 | 3:6dbdf3288c41 | 304 | |
jmoreno10 | 3:6dbdf3288c41 | 305 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 306 | printPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 307 | if (packet[3] == 1 && // 0x01 |
jmoreno10 | 3:6dbdf3288c41 | 308 | packet[4] == 3) // 0x03 |
jmoreno10 | 3:6dbdf3288c41 | 309 | { |
jmoreno10 | 3:6dbdf3288c41 | 310 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 311 | return true; |
Sumobot | 0:88a700f174a3 | 312 | } |
jmoreno10 | 3:6dbdf3288c41 | 313 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 314 | return false; |
jmoreno10 | 3:6dbdf3288c41 | 315 | } |
jmoreno10 | 3:6dbdf3288c41 | 316 | |
jmoreno10 | 3:6dbdf3288c41 | 317 | //0x06 Setup |
jmoreno10 | 3:6dbdf3288c41 | 318 | void _setup() |
jmoreno10 | 3:6dbdf3288c41 | 319 | { |
jmoreno10 | 3:6dbdf3288c41 | 320 | led3=!led3; |
jmoreno10 | 3:6dbdf3288c41 | 321 | pc.printf("\n\r0x06 Setup\nCommand: AA 0E 06 00 00 00 00 00 03 18 30 00 CE 9C\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 322 | pc.printf("Response: "); |
jmoreno10 | 3:6dbdf3288c41 | 323 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 324 | Thread::wait(10); |
jmoreno10 | 3:6dbdf3288c41 | 325 | |
jmoreno10 | 3:6dbdf3288c41 | 326 | /* |
jmoreno10 | 3:6dbdf3288c41 | 327 | // 3 Bursts, 2 minutes, 4 minutes |
jmoreno10 | 3:6dbdf3288c41 | 328 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 329 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 330 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 331 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 332 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 333 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 334 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 335 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 336 | device.putc(0X03); // 3 Bursts |
jmoreno10 | 3:6dbdf3288c41 | 337 | device.putc(0X18); // 2 minutes |
jmoreno10 | 3:6dbdf3288c41 | 338 | device.putc(0X30); // 4 minutes |
jmoreno10 | 3:6dbdf3288c41 | 339 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 340 | device.putc(0XCE); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 341 | device.putc(0X9C); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 342 | */ |
jmoreno10 | 3:6dbdf3288c41 | 343 | |
jmoreno10 | 3:6dbdf3288c41 | 344 | /* |
jmoreno10 | 3:6dbdf3288c41 | 345 | // 3 Bursts, 10 seconds, 15 seconds |
jmoreno10 | 3:6dbdf3288c41 | 346 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 347 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 348 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 349 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 350 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 351 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 352 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 353 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 354 | device.putc(0X03); // 3 Bursts |
jmoreno10 | 3:6dbdf3288c41 | 355 | device.putc(0X02); // 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 356 | device.putc(0X03); // 15 seconds |
jmoreno10 | 3:6dbdf3288c41 | 357 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 358 | device.putc(0XEB); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 359 | device.putc(0XF6); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 360 | */ |
jmoreno10 | 3:6dbdf3288c41 | 361 | |
jmoreno10 | 3:6dbdf3288c41 | 362 | |
jmoreno10 | 3:6dbdf3288c41 | 363 | |
jmoreno10 | 3:6dbdf3288c41 | 364 | // 3 Bursts, 5 seconds, 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 365 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 366 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 367 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 368 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 369 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 370 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 371 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 372 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 373 | device.putc(0X03); // 3 Bursts |
jmoreno10 | 3:6dbdf3288c41 | 374 | device.putc(0X01); // 5 seconds |
jmoreno10 | 3:6dbdf3288c41 | 375 | device.putc(0X02); // 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 376 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 377 | device.putc(0X57); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 378 | device.putc(0X00); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 379 | |
jmoreno10 | 3:6dbdf3288c41 | 380 | |
jmoreno10 | 3:6dbdf3288c41 | 381 | /* |
jmoreno10 | 3:6dbdf3288c41 | 382 | // 1 Burst, 10 seconds, 15 seconds |
jmoreno10 | 3:6dbdf3288c41 | 383 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 384 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 385 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 386 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 387 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 388 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 389 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 390 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 391 | device.putc(0X01); // 1 Burst |
jmoreno10 | 3:6dbdf3288c41 | 392 | device.putc(0X02); // 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 393 | device.putc(0X03); // 15 seconds |
jmoreno10 | 3:6dbdf3288c41 | 394 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 395 | device.putc(0X9D); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 396 | device.putc(0XCF); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 397 | */ |
jmoreno10 | 3:6dbdf3288c41 | 398 | |
jmoreno10 | 3:6dbdf3288c41 | 399 | |
jmoreno10 | 3:6dbdf3288c41 | 400 | // 1 Burst, 5 seconds, 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 401 | /* |
jmoreno10 | 3:6dbdf3288c41 | 402 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 403 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 404 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 405 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 406 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 407 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 408 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 409 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 410 | device.putc(0X01); // 1 Burst |
jmoreno10 | 3:6dbdf3288c41 | 411 | device.putc(0X01); // 5 seconds |
jmoreno10 | 3:6dbdf3288c41 | 412 | device.putc(0X02); // 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 413 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 414 | device.putc(0X21); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 415 | device.putc(0X39); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 416 | */ |
jmoreno10 | 3:6dbdf3288c41 | 417 | |
jmoreno10 | 3:6dbdf3288c41 | 418 | |
jmoreno10 | 3:6dbdf3288c41 | 419 | // 3 Bursts, 10 seconds, 20 seconds |
jmoreno10 | 3:6dbdf3288c41 | 420 | /* |
jmoreno10 | 3:6dbdf3288c41 | 421 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 422 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 423 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 424 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 425 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 426 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 427 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 428 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 429 | device.putc(0X03); // 3 Bursts |
jmoreno10 | 3:6dbdf3288c41 | 430 | device.putc(0X02); // 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 431 | device.putc(0X04); // 20 seconds |
jmoreno10 | 3:6dbdf3288c41 | 432 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 433 | device.putc(0XE3); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 434 | device.putc(0XBB); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 435 | */ |
jmoreno10 | 3:6dbdf3288c41 | 436 | |
jmoreno10 | 3:6dbdf3288c41 | 437 | // 1 Burst, 30 seconds, 60 seconds |
jmoreno10 | 3:6dbdf3288c41 | 438 | /* |
jmoreno10 | 3:6dbdf3288c41 | 439 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 440 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 441 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 442 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 443 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 444 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 445 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 446 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 447 | device.putc(0X01); // 1 Burst |
jmoreno10 | 3:6dbdf3288c41 | 448 | device.putc(0X06); // 30 seconds |
jmoreno10 | 3:6dbdf3288c41 | 449 | device.putc(0X0C); // 60 seconds |
jmoreno10 | 3:6dbdf3288c41 | 450 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 451 | device.putc(0X34); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 452 | device.putc(0X2F); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 453 | */ |
jmoreno10 | 3:6dbdf3288c41 | 454 | |
jmoreno10 | 3:6dbdf3288c41 | 455 | // 2 Bursts, 5 seconds, 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 456 | /* |
jmoreno10 | 3:6dbdf3288c41 | 457 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 458 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 459 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 460 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 461 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 462 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 463 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 464 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 465 | device.putc(0X02); // 2 Bursts |
jmoreno10 | 3:6dbdf3288c41 | 466 | device.putc(0X01); // 5 seconds |
jmoreno10 | 3:6dbdf3288c41 | 467 | device.putc(0X02); // 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 468 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 469 | device.putc(0XEC); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 470 | device.putc(0X1C); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 471 | */ |
jmoreno10 | 3:6dbdf3288c41 | 472 | |
jmoreno10 | 3:6dbdf3288c41 | 473 | // 2 Bursts, 10 seconds, 15 seconds |
jmoreno10 | 3:6dbdf3288c41 | 474 | /* |
jmoreno10 | 3:6dbdf3288c41 | 475 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 476 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 477 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 478 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 479 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 480 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 481 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 482 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 483 | device.putc(0X02); // 2 Bursts |
jmoreno10 | 3:6dbdf3288c41 | 484 | device.putc(0X02); // 5 seconds |
jmoreno10 | 3:6dbdf3288c41 | 485 | device.putc(0X03); // 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 486 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 487 | device.putc(0X50); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 488 | device.putc(0XEA); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 489 | */ |
jmoreno10 | 3:6dbdf3288c41 | 490 | |
jmoreno10 | 3:6dbdf3288c41 | 491 | // 3 Bursts, 5 seconds, 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 492 | /* |
jmoreno10 | 3:6dbdf3288c41 | 493 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 494 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 495 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 496 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 497 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 498 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 499 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 500 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 501 | device.putc(0X02); // 2 Bursts |
jmoreno10 | 3:6dbdf3288c41 | 502 | device.putc(0X18); // 5 seconds |
jmoreno10 | 3:6dbdf3288c41 | 503 | device.putc(0X30); // 15 seconds |
jmoreno10 | 3:6dbdf3288c41 | 504 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 505 | device.putc(0X75); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 506 | device.putc(0X80); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 507 | */ |
jmoreno10 | 3:6dbdf3288c41 | 508 | |
jmoreno10 | 3:6dbdf3288c41 | 509 | // 3 Bursts, 5 seconds, 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 510 | /* |
jmoreno10 | 3:6dbdf3288c41 | 511 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 512 | device.putc(0X0E); |
jmoreno10 | 3:6dbdf3288c41 | 513 | device.putc(0X06); |
jmoreno10 | 3:6dbdf3288c41 | 514 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 515 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 516 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 517 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 518 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 519 | device.putc(0X03); // 3 Bursts |
jmoreno10 | 3:6dbdf3288c41 | 520 | device.putc(0X01); // 5 seconds |
jmoreno10 | 3:6dbdf3288c41 | 521 | device.putc(0X02); // 10 seconds |
jmoreno10 | 3:6dbdf3288c41 | 522 | device.putc(0X00); |
jmoreno10 | 3:6dbdf3288c41 | 523 | device.putc(0X57); // CRC1 |
jmoreno10 | 3:6dbdf3288c41 | 524 | device.putc(0X00); // CRC2 |
jmoreno10 | 3:6dbdf3288c41 | 525 | */ |
jmoreno10 | 3:6dbdf3288c41 | 526 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 527 | |
jmoreno10 | 3:6dbdf3288c41 | 528 | } |
jmoreno10 | 3:6dbdf3288c41 | 529 | |
jmoreno10 | 3:6dbdf3288c41 | 530 | //0x07 Query Setup |
jmoreno10 | 3:6dbdf3288c41 | 531 | long int querySetup() |
jmoreno10 | 3:6dbdf3288c41 | 532 | { |
jmoreno10 | 3:6dbdf3288c41 | 533 | int numSetup = 0; |
jmoreno10 | 3:6dbdf3288c41 | 534 | led4=!led4; |
jmoreno10 | 3:6dbdf3288c41 | 535 | pc.printf("\n\r0x07 Query Setup\nCommand: AA 05 07 66 B0\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 536 | pc.printf("Response: "); |
jmoreno10 | 3:6dbdf3288c41 | 537 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 538 | Thread::wait(10); |
jmoreno10 | 3:6dbdf3288c41 | 539 | |
jmoreno10 | 3:6dbdf3288c41 | 540 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 541 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 542 | device.putc(0X07); |
jmoreno10 | 3:6dbdf3288c41 | 543 | device.putc(0X66); |
jmoreno10 | 3:6dbdf3288c41 | 544 | device.putc(0XB0); |
jmoreno10 | 3:6dbdf3288c41 | 545 | |
jmoreno10 | 3:6dbdf3288c41 | 546 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 547 | |
jmoreno10 | 3:6dbdf3288c41 | 548 | //If NAK response |
jmoreno10 | 3:6dbdf3288c41 | 549 | if (packet[0] == 170 && // 0xAA |
jmoreno10 | 3:6dbdf3288c41 | 550 | packet[1] == 5 && // 0x05 |
jmoreno10 | 3:6dbdf3288c41 | 551 | packet[2] == 255 && // 0xFF |
jmoreno10 | 3:6dbdf3288c41 | 552 | packet[3] == 161 && // 0xA1 |
jmoreno10 | 3:6dbdf3288c41 | 553 | packet[4] == 203) // 0xCB |
jmoreno10 | 3:6dbdf3288c41 | 554 | { |
jmoreno10 | 3:6dbdf3288c41 | 555 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 556 | return NULL; |
jmoreno10 | 3:6dbdf3288c41 | 557 | } |
jmoreno10 | 3:6dbdf3288c41 | 558 | numSetup = packet[7]*10000000 + packet[8]*100000 + packet[9]*1000 + packet[10]; |
jmoreno10 | 3:6dbdf3288c41 | 559 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 560 | return numSetup; |
jmoreno10 | 3:6dbdf3288c41 | 561 | } |
jmoreno10 | 3:6dbdf3288c41 | 562 | |
jmoreno10 | 3:6dbdf3288c41 | 563 | //0x09 Query Hardware |
jmoreno10 | 3:6dbdf3288c41 | 564 | void queryHardware() |
jmoreno10 | 3:6dbdf3288c41 | 565 | { |
jmoreno10 | 3:6dbdf3288c41 | 566 | led1=!led1; |
jmoreno10 | 3:6dbdf3288c41 | 567 | pc.printf("\n\r0x09 Query Hardware Version\nCommand: AA 05 09 18 59\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 568 | pc.printf("Response: "); |
jmoreno10 | 3:6dbdf3288c41 | 569 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 570 | Thread::wait(10); |
jmoreno10 | 3:6dbdf3288c41 | 571 | |
jmoreno10 | 3:6dbdf3288c41 | 572 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 573 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 574 | device.putc(0X09); |
jmoreno10 | 3:6dbdf3288c41 | 575 | device.putc(0X18); |
jmoreno10 | 3:6dbdf3288c41 | 576 | device.putc(0X59); |
jmoreno10 | 3:6dbdf3288c41 | 577 | |
jmoreno10 | 3:6dbdf3288c41 | 578 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 579 | printPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 580 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 581 | pc.printf("\n"); |
jmoreno10 | 3:6dbdf3288c41 | 582 | } |
jmoreno10 | 3:6dbdf3288c41 | 583 | |
jmoreno10 | 3:6dbdf3288c41 | 584 | //NAK Command |
jmoreno10 | 3:6dbdf3288c41 | 585 | void NAKcommand() |
jmoreno10 | 3:6dbdf3288c41 | 586 | { |
jmoreno10 | 3:6dbdf3288c41 | 587 | led2=!led2; |
jmoreno10 | 3:6dbdf3288c41 | 588 | pc.printf("\n\rXxXX NAK\nCommand: AA 05 07 66 B1\n\r"); |
jmoreno10 | 3:6dbdf3288c41 | 589 | pc.printf("Response: "); |
jmoreno10 | 3:6dbdf3288c41 | 590 | waitCTS(); |
jmoreno10 | 3:6dbdf3288c41 | 591 | Thread::wait(10); |
jmoreno10 | 3:6dbdf3288c41 | 592 | |
jmoreno10 | 3:6dbdf3288c41 | 593 | device.putc(0XAA); |
jmoreno10 | 3:6dbdf3288c41 | 594 | device.putc(0X05); |
jmoreno10 | 3:6dbdf3288c41 | 595 | device.putc(0X07); |
jmoreno10 | 3:6dbdf3288c41 | 596 | device.putc(0X66); |
jmoreno10 | 3:6dbdf3288c41 | 597 | device.putc(0XB1); |
jmoreno10 | 3:6dbdf3288c41 | 598 | |
jmoreno10 | 3:6dbdf3288c41 | 599 | postCommand(); |
jmoreno10 | 3:6dbdf3288c41 | 600 | printPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 601 | clearPacket(); |
jmoreno10 | 3:6dbdf3288c41 | 602 | pc.printf("\n"); |
jmoreno10 | 3:6dbdf3288c41 | 603 | } |