Debug Serial para programa resetar o buffer quando houver tamanhos errados na mensagem

Dependencies:   pulga-lorawan-drv PingPong-P2P-ClickButtonToWork-SX1272

Committer:
MatteusCarr
Date:
Thu Apr 29 16:54:10 2021 +0000
Revision:
15:b27ab44dc2c8
Parent:
10:f6ff8ec221ec
Debug travamento para resetar e nao travar

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pancotinho 9:cf555a570349 1 #include "gps.h"
pancotinho 9:cf555a570349 2
pancotinho 9:cf555a570349 3 //GPS DEclaration
pancotinho 9:cf555a570349 4 SPI spi_2(P0_5, P0_7, P0_11); // mosi, miso, sclk
pancotinho 9:cf555a570349 5 DigitalOut cs(P0_30);
pancotinho 9:cf555a570349 6 DigitalOut gps_reset(P1_2);
pancotinho 9:cf555a570349 7 DigitalOut gps_int (P0_23);
pancotinho 9:cf555a570349 8 DigitalOut gps_DSEL (P0_27);
pancotinho 9:cf555a570349 9
pancotinho 9:cf555a570349 10 gps_navPVT Pac;
pancotinho 9:cf555a570349 11
pancotinho 9:cf555a570349 12 void gps_leBootMsg(){
pancotinho 9:cf555a570349 13
pancotinho 9:cf555a570349 14 #define MAXIMUM_PACKET_SIZE 60
pancotinho 9:cf555a570349 15 int packet_size;
pancotinho 9:cf555a570349 16 uint8_t packet[MAXIMUM_PACKET_SIZE];
pancotinho 9:cf555a570349 17 uint8_t value;
pancotinho 9:cf555a570349 18 int cont;
pancotinho 9:cf555a570349 19 value = spi_2.write(0x00);
pancotinho 9:cf555a570349 20
pancotinho 9:cf555a570349 21 while (value != '$' ){ //wait start boot msg
pancotinho 9:cf555a570349 22 value = spi_2.write(0x00);
pancotinho 9:cf555a570349 23 wait_ms(5);
pancotinho 9:cf555a570349 24 cont++;
pancotinho 9:cf555a570349 25 if (cont > 100){
pancotinho 9:cf555a570349 26 pc.printf("\n no response \n");
pancotinho 9:cf555a570349 27 return;
pancotinho 9:cf555a570349 28 }
pancotinho 9:cf555a570349 29 }
pancotinho 9:cf555a570349 30 packet[0] = value;
pancotinho 9:cf555a570349 31 value = spi_2.write(0x00);
pancotinho 9:cf555a570349 32 for (packet_size = 1 ; packet_size <= MAXIMUM_PACKET_SIZE ;packet_size++) {
pancotinho 9:cf555a570349 33 if (value != '\n' ){
pancotinho 9:cf555a570349 34 packet [packet_size]= value;
pancotinho 9:cf555a570349 35 value = spi_2.write(0x00);
pancotinho 9:cf555a570349 36 }
pancotinho 9:cf555a570349 37 else {
pancotinho 9:cf555a570349 38 //lora_send_packet (packet , (uint8_t) packet_size+1); // manda atraves do lora a mensagem de boot do gps
pancotinho 9:cf555a570349 39 pc.printf("Boot msg: %s \n", packet);
pancotinho 9:cf555a570349 40 return;
pancotinho 9:cf555a570349 41 }
pancotinho 9:cf555a570349 42
pancotinho 9:cf555a570349 43 }
pancotinho 9:cf555a570349 44
pancotinho 9:cf555a570349 45 }
pancotinho 9:cf555a570349 46
pancotinho 9:cf555a570349 47 void gps_le_envia_linha(){
pancotinho 9:cf555a570349 48
pancotinho 9:cf555a570349 49 uint8_t packet[150];
pancotinho 9:cf555a570349 50 uint8_t value;
pancotinho 9:cf555a570349 51
pancotinho 9:cf555a570349 52 for (int i=0;i < 149; i++){
pancotinho 9:cf555a570349 53 if (value == '\n'){
pancotinho 9:cf555a570349 54 //lora_send_packet (packet , (uint8_t) i);
pancotinho 9:cf555a570349 55 return;
pancotinho 9:cf555a570349 56 }
pancotinho 9:cf555a570349 57 else packet [i] =value;
pancotinho 9:cf555a570349 58 }
pancotinho 9:cf555a570349 59 //lora_send_packet (packet , (uint8_t) 99);
pancotinho 9:cf555a570349 60
pancotinho 9:cf555a570349 61 }
pancotinho 9:cf555a570349 62
pancotinho 9:cf555a570349 63
pancotinho 9:cf555a570349 64 gps_ubxPacket gps_calcula_check(gps_ubxPacket Packet) {
pancotinho 9:cf555a570349 65
pancotinho 9:cf555a570349 66 uint8_t Buffer[Packet.len + 4];
pancotinho 9:cf555a570349 67 uint8_t CK_A=0;
pancotinho 9:cf555a570349 68 uint8_t CK_B=0;
pancotinho 9:cf555a570349 69
pancotinho 9:cf555a570349 70 Buffer[0]= Packet.cls;
pancotinho 9:cf555a570349 71 Buffer[1]= Packet.id;
pancotinho 9:cf555a570349 72 Buffer[2]= Packet.len & 0xFF;
pancotinho 9:cf555a570349 73 Buffer[3]= (Packet.len >> 8)& 0xFF;;
pancotinho 9:cf555a570349 74
pancotinho 9:cf555a570349 75 //send_packet (Buffer, (uint8_t) 4 );
pancotinho 9:cf555a570349 76
pancotinho 9:cf555a570349 77 for (uint16_t i = 0; i < Packet.len; i++) {
pancotinho 9:cf555a570349 78 Buffer [i+4] = Packet.payload[i] ;
pancotinho 9:cf555a570349 79 }
pancotinho 9:cf555a570349 80
pancotinho 9:cf555a570349 81 //send_packet (Buffer, (uint8_t) Packet.len + 4 );
pancotinho 9:cf555a570349 82
pancotinho 9:cf555a570349 83 for(int i=0 ; i < Packet.len + 4 ; i++) {
pancotinho 9:cf555a570349 84 CK_A = CK_A + Buffer[i];
pancotinho 9:cf555a570349 85 CK_B = CK_B + CK_A;
pancotinho 9:cf555a570349 86 CK_A = CK_A & 0xFF;
pancotinho 9:cf555a570349 87 CK_B = CK_B & 0xFF;
pancotinho 9:cf555a570349 88 //uint8_t packet_check[5] ={Buffer[i],(uint8_t) (i+1),CK_A,CK_B,'#'};
pancotinho 9:cf555a570349 89 // send_packet (packet_check , (uint8_t) 5);
pancotinho 9:cf555a570349 90 }
pancotinho 9:cf555a570349 91
pancotinho 9:cf555a570349 92
pancotinho 9:cf555a570349 93 // uint8_t packet_check[2] ={CK_A, CK_B};
pancotinho 9:cf555a570349 94 // send_packet (packet_check , (uint8_t) 2);
pancotinho 9:cf555a570349 95
pancotinho 9:cf555a570349 96 Packet.checksumA = CK_A;
pancotinho 9:cf555a570349 97 Packet.checksumB = CK_B;
pancotinho 9:cf555a570349 98
pancotinho 9:cf555a570349 99 return Packet;
pancotinho 9:cf555a570349 100
pancotinho 9:cf555a570349 101 }
pancotinho 9:cf555a570349 102
pancotinho 9:cf555a570349 103 void send_gps_packet(gps_ubxPacket packet){
pancotinho 9:cf555a570349 104
pancotinho 9:cf555a570349 105 spi_2.write(SYNC1);
pancotinho 9:cf555a570349 106 spi_2.write(SYNC2);
pancotinho 9:cf555a570349 107 spi_2.write(packet.cls);
pancotinho 9:cf555a570349 108 spi_2.write(packet.id);
pancotinho 9:cf555a570349 109 spi_2.write(packet.len & 0xFF);
pancotinho 9:cf555a570349 110 spi_2.write((packet.len >> 8)& 0xFF);
pancotinho 9:cf555a570349 111
pancotinho 9:cf555a570349 112 for (uint16_t i = 0; i < packet.len; i++) {
pancotinho 9:cf555a570349 113 spi_2.write(packet.payload[i]);
pancotinho 9:cf555a570349 114 }
pancotinho 9:cf555a570349 115 spi_2.write(packet.checksumA);
pancotinho 9:cf555a570349 116 spi_2.write(packet.checksumB);
pancotinho 9:cf555a570349 117
pancotinho 9:cf555a570349 118 //=============imprime resposta
pancotinho 9:cf555a570349 119 wait_ms(50);
pancotinho 9:cf555a570349 120 gps_le_envia_linha();
pancotinho 9:cf555a570349 121 gps_le_envia_linha();
pancotinho 9:cf555a570349 122
pancotinho 9:cf555a570349 123 }
pancotinho 9:cf555a570349 124
pancotinho 9:cf555a570349 125 gps_navPVT le_nav_pvt () {
pancotinho 9:cf555a570349 126
pancotinho 9:cf555a570349 127
pancotinho 9:cf555a570349 128 char state = 0;
pancotinho 9:cf555a570349 129 int cont =0;
pancotinho 9:cf555a570349 130 int numb=0;
pancotinho 9:cf555a570349 131
pancotinho 9:cf555a570349 132 while (1){ //começou mensagem
pancotinho 9:cf555a570349 133 if (cont > 100) {
pancotinho 9:cf555a570349 134 // BMX160_read_acc();
pancotinho 9:cf555a570349 135 return Pac;
pancotinho 9:cf555a570349 136 }
pancotinho 9:cf555a570349 137 if (state == 0 ){
pancotinho 9:cf555a570349 138
pancotinho 9:cf555a570349 139 if ( spi_2.write(0x00) == 0xB5){
pancotinho 9:cf555a570349 140 state =1;
pancotinho 9:cf555a570349 141 }
pancotinho 9:cf555a570349 142 else {
pancotinho 9:cf555a570349 143 cont++;
pancotinho 9:cf555a570349 144 wait_ms(40);
pancotinho 9:cf555a570349 145 }
pancotinho 9:cf555a570349 146
pancotinho 9:cf555a570349 147 }
pancotinho 9:cf555a570349 148 else if (state == 1){ // read 0xb5
pancotinho 9:cf555a570349 149 if (spi_2.write(0x00) == 0x62){
pancotinho 9:cf555a570349 150 state =2;
pancotinho 9:cf555a570349 151 //wait_ms(30);
pancotinho 9:cf555a570349 152 }
pancotinho 9:cf555a570349 153 else state =0;
pancotinho 9:cf555a570349 154 }
pancotinho 9:cf555a570349 155 else if (state == 2) {// read 0xb5 0x62
pancotinho 9:cf555a570349 156 if (spi_2.write(0x00) == 0x01){
pancotinho 9:cf555a570349 157 //printf("le_nav_pvt going to state 3");
pancotinho 9:cf555a570349 158 state =3;
pancotinho 9:cf555a570349 159 //wait_ms(30);
pancotinho 9:cf555a570349 160 }
pancotinho 9:cf555a570349 161 else state =0;
pancotinho 9:cf555a570349 162 }
pancotinho 9:cf555a570349 163 else if (state == 3) {// read 0xb5 0x62 0x01
pancotinho 9:cf555a570349 164 if (spi_2.write(0x00) == 0x07){
pancotinho 9:cf555a570349 165 state =4;
pancotinho 9:cf555a570349 166 //printf("le_nav_pvt going to state 4");
pancotinho 9:cf555a570349 167 //wait_ms(30);
pancotinho 9:cf555a570349 168 }
pancotinho 9:cf555a570349 169 else state =0;
pancotinho 9:cf555a570349 170 }
pancotinho 9:cf555a570349 171 else if (state == 4) {// read 0xb5 0x62 0x01 0x07
pancotinho 9:cf555a570349 172 if (spi_2.write(0x00) == 0x5c){
pancotinho 9:cf555a570349 173 state =5;
pancotinho 9:cf555a570349 174 //printf("le_nav_pvt going to state 5");
pancotinho 9:cf555a570349 175 //wait_ms(30);
pancotinho 9:cf555a570349 176 }
pancotinho 9:cf555a570349 177 else state =0;
pancotinho 9:cf555a570349 178 }
pancotinho 9:cf555a570349 179 else if (state == 5) {// read 0xb5 0x62 0x01 0x07 0x5c
pancotinho 9:cf555a570349 180 if (spi_2.write(0x00) == 0x00){
pancotinho 9:cf555a570349 181 state =6;
pancotinho 9:cf555a570349 182 //printf("le_nav_pvt going to state 6");
pancotinho 9:cf555a570349 183 //wait_ms(30);
pancotinho 9:cf555a570349 184 }
pancotinho 9:cf555a570349 185 else state =0;
pancotinho 9:cf555a570349 186 }
pancotinho 9:cf555a570349 187 else if (state == 6){ // read 0xb5 0x62 0x01 0x07 0x5c 0x00
pancotinho 9:cf555a570349 188 uint8_t value1,value2,value3,value4;
pancotinho 9:cf555a570349 189 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 190 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 191 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 192 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 193 Pac.iTOW = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 194
pancotinho 9:cf555a570349 195 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 196 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 197 Pac.year = (value2 << 8) + value1;
pancotinho 9:cf555a570349 198
pancotinho 9:cf555a570349 199 Pac.month = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 200 Pac.day = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 201 Pac.hour = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 202 Pac.min = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 203 Pac.sec = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 204 Pac.valid = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 205
pancotinho 9:cf555a570349 206 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 207 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 208 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 209 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 210 Pac.tAcc = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 211
pancotinho 9:cf555a570349 212 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 213 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 214 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 215 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 216 Pac.nano = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 217
pancotinho 9:cf555a570349 218 Pac.fixtype = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 219 Pac.flags = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 220 Pac.flags2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 221 Pac.numSV = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 222
pancotinho 9:cf555a570349 223 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 224 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 225 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 226 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 227 Pac.lon = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 228 lon= (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 229 //printf("Long Data %d \n ", lon);
pancotinho 9:cf555a570349 230
pancotinho 9:cf555a570349 231 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 232 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 233 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 234 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 235 Pac.lat = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 236 lat = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 237 //printf("Lat Data %d", lat);
pancotinho 9:cf555a570349 238
pancotinho 9:cf555a570349 239
pancotinho 9:cf555a570349 240 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 241 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 242 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 243 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 244 Pac.height = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 245
pancotinho 9:cf555a570349 246 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 247 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 248 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 249 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 250 Pac.hMSL = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 251
pancotinho 9:cf555a570349 252 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 253 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 254 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 255 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 256 Pac.hAcc = (value4 << 24) + (value3 <<16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 257
pancotinho 9:cf555a570349 258 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 259 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 260 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 261 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 262 Pac.vAcc = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 263
pancotinho 9:cf555a570349 264 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 265 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 266 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 267 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 268 Pac.velN = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 269
pancotinho 9:cf555a570349 270 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 271 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 272 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 273 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 274 Pac.velE = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 275
pancotinho 9:cf555a570349 276 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 277 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 278 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 279 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 280 Pac.velD = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 281
pancotinho 9:cf555a570349 282 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 283 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 284 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 285 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 286 Pac.gSpeed = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 287
pancotinho 9:cf555a570349 288 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 289 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 290 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 291 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 292 Pac.headMot = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 293
pancotinho 9:cf555a570349 294 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 295 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 296 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 297 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 298 Pac.sAcc = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 299
pancotinho 9:cf555a570349 300 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 301 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 302 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 303 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 304 Pac.headAcc = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 305
pancotinho 9:cf555a570349 306 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 307 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 308 Pac.pDOP = (value2 << 8) + value1;
pancotinho 9:cf555a570349 309
pancotinho 9:cf555a570349 310 for (int i=0; i < 6; i++)spi_2.write(0x00);
pancotinho 9:cf555a570349 311
pancotinho 9:cf555a570349 312 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 313 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 314 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 315 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 316 Pac.headAcc = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 317
pancotinho 9:cf555a570349 318 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 319 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 320 value3 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 321 value4 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 322 Pac.headAcc = (value4 << 24) + (value3 << 16) + (value2 << 8) + value1;
pancotinho 9:cf555a570349 323
pancotinho 9:cf555a570349 324 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 325 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 326 Pac.magDec = (value2 << 8) + value1;
pancotinho 9:cf555a570349 327
pancotinho 9:cf555a570349 328 value1 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 329 value2 = 0xff & spi_2.write(0x00);
pancotinho 9:cf555a570349 330 Pac.magAcc = (value2 << 8) + value1;
pancotinho 9:cf555a570349 331
pancotinho 9:cf555a570349 332
pancotinho 9:cf555a570349 333 return Pac;
pancotinho 9:cf555a570349 334 }
pancotinho 9:cf555a570349 335 }
pancotinho 9:cf555a570349 336 wait_ms(100);
pancotinho 9:cf555a570349 337 }
pancotinho 9:cf555a570349 338
pancotinho 9:cf555a570349 339 void send_nav_pvt (){
pancotinho 9:cf555a570349 340 uint8_t packet_nav_pvt[] = { 0xB5, 0x62, 0x01, 0x07, 0x00, 0x00, 0x08, 0x19};
pancotinho 9:cf555a570349 341
pancotinho 9:cf555a570349 342 //=============envia pacote nav pvt
pancotinho 9:cf555a570349 343 for ( int i=0; i< sizeof(packet_nav_pvt) ; i++){
pancotinho 9:cf555a570349 344 spi_2.write(packet_nav_pvt[i]);
pancotinho 9:cf555a570349 345 wait_ms(5);
pancotinho 9:cf555a570349 346 }
pancotinho 9:cf555a570349 347
pancotinho 9:cf555a570349 348 gps_navPVT Data = le_nav_pvt();
pancotinho 9:cf555a570349 349
pancotinho 9:cf555a570349 350 uint8_t packet [100];
pancotinho 9:cf555a570349 351
pancotinho 9:cf555a570349 352 packet [0]= (Data.lon >> 24)& 0xff;
pancotinho 9:cf555a570349 353 packet [1]= (Data.lon >> 16) & 0xff ;
pancotinho 9:cf555a570349 354 packet [2]= (Data.lon >> 8) & 0xff;
pancotinho 9:cf555a570349 355 packet [3]= Data.lon & 0xff;
pancotinho 9:cf555a570349 356 packet [4]= (Data.lat >> 24)& 0xff;
pancotinho 9:cf555a570349 357 packet [5]= (Data.lat >> 16) & 0xff ;
pancotinho 9:cf555a570349 358 packet [6]= (Data.lat >> 8) & 0xff;
pancotinho 9:cf555a570349 359 packet [7]= Data.lat & 0xff;
pancotinho 9:cf555a570349 360 packet [8]= (Data.hMSL >> 24)& 0xff;
pancotinho 9:cf555a570349 361 packet [9]= (Data.hMSL >> 16) & 0xff ;
pancotinho 9:cf555a570349 362 packet [10]= (Data.hMSL >> 8) & 0xff;
pancotinho 9:cf555a570349 363 packet [11]= Data.hMSL & 0xff;
pancotinho 9:cf555a570349 364
pancotinho 9:cf555a570349 365 if (Data.lon !=0 || Data.lat !=0 ){
pancotinho 9:cf555a570349 366 //lora_send_packet (packet , (uint8_t) 12);
pancotinho 9:cf555a570349 367 }
pancotinho 9:cf555a570349 368 }
pancotinho 9:cf555a570349 369
pancotinho 9:cf555a570349 370 void send_gps_data(uint8_t *packet, uint8_t size){
pancotinho 9:cf555a570349 371 uint8_t packet_rec[size];
pancotinho 9:cf555a570349 372 for ( int i=0; i< size ; i++){
pancotinho 9:cf555a570349 373 spi_2.write(packet[i]);
pancotinho 9:cf555a570349 374
pancotinho 9:cf555a570349 375 //wait_ms(5);
pancotinho 9:cf555a570349 376 }
pancotinho 9:cf555a570349 377 //send_packet (packet_rec ,size);
pancotinho 9:cf555a570349 378 }
pancotinho 9:cf555a570349 379
pancotinho 9:cf555a570349 380 /*
pancotinho 9:cf555a570349 381 void wait_packet (uint8_t *header) {
pancotinho 9:cf555a570349 382
pancotinho 9:cf555a570349 383 char state = 0;
pancotinho 9:cf555a570349 384 int cont =0;
pancotinho 9:cf555a570349 385
pancotinho 9:cf555a570349 386 while (1){ //começou mensagem
pancotinho 9:cf555a570349 387 if (cont > 250) {
pancotinho 9:cf555a570349 388 //led2=!led2;
pancotinho 9:cf555a570349 389 return;
pancotinho 9:cf555a570349 390 }
pancotinho 9:cf555a570349 391 if (state == 0 ){
pancotinho 9:cf555a570349 392 if (spi_2.write(0x00) == header[0])
pancotinho 9:cf555a570349 393 state =1;
pancotinho 9:cf555a570349 394 else {
pancotinho 9:cf555a570349 395 cont++;
pancotinho 9:cf555a570349 396 wait_ms(10);
pancotinho 9:cf555a570349 397 }
pancotinho 9:cf555a570349 398
pancotinho 9:cf555a570349 399
pancotinho 9:cf555a570349 400 }
pancotinho 9:cf555a570349 401 else if (state == 1){ // read 0xb5
pancotinho 9:cf555a570349 402 if (spi_2.write(0x00) == header[1]){
pancotinho 9:cf555a570349 403 state =2;
pancotinho 9:cf555a570349 404 }
pancotinho 9:cf555a570349 405 else state =0;
pancotinho 9:cf555a570349 406 }
pancotinho 9:cf555a570349 407 else if (state == 2) {// read 0xb5 0x62
pancotinho 9:cf555a570349 408 if (spi_2.write(0x00) == header[2]){
pancotinho 9:cf555a570349 409 state =3;
pancotinho 9:cf555a570349 410 }
pancotinho 9:cf555a570349 411 else state =0;
pancotinho 9:cf555a570349 412 }
pancotinho 9:cf555a570349 413 else if (state == 3) {// read 0xb5 0x62 0x06
pancotinho 9:cf555a570349 414 if (spi_2.write(0x00) == header[3]){
pancotinho 9:cf555a570349 415 state =4;
pancotinho 9:cf555a570349 416 }
pancotinho 9:cf555a570349 417 else state =0;
pancotinho 9:cf555a570349 418 }
pancotinho 9:cf555a570349 419 else if (state == 4) {// read 0xb5 0x62 0x06 0x013
pancotinho 9:cf555a570349 420
pancotinho 9:cf555a570349 421 uint8_t packet[100];
pancotinho 9:cf555a570349 422 uint8_t value = spi_2.write(0x00);
pancotinho 9:cf555a570349 423 uint8_t packet_size;
pancotinho 9:cf555a570349 424
pancotinho 9:cf555a570349 425 for (packet_size = 0 ; packet_size < 100 ;packet_size++) {
pancotinho 9:cf555a570349 426 if (value != '\n' ){
pancotinho 9:cf555a570349 427 packet [packet_size]= value;
pancotinho 9:cf555a570349 428 value = spi_2.write(0x00);
pancotinho 9:cf555a570349 429 }
pancotinho 9:cf555a570349 430 else {
pancotinho 9:cf555a570349 431 lora_send_packet (packet , (uint8_t) packet_size+1);
pancotinho 9:cf555a570349 432 //packet_size = MAXIMUM_PACKET_SIZE +1;
pancotinho 9:cf555a570349 433 return;
pancotinho 9:cf555a570349 434 }
pancotinho 9:cf555a570349 435 }
pancotinho 9:cf555a570349 436
pancotinho 9:cf555a570349 437 }
pancotinho 9:cf555a570349 438 }
pancotinho 9:cf555a570349 439 }*/
pancotinho 9:cf555a570349 440
pancotinho 9:cf555a570349 441 void wait_packet_byte (uint8_t *header, uint8_t byte) {
pancotinho 9:cf555a570349 442
pancotinho 9:cf555a570349 443 char state = 0;
pancotinho 9:cf555a570349 444 int cont =0;
pancotinho 9:cf555a570349 445
pancotinho 9:cf555a570349 446 while (1){ //começou mensagem
pancotinho 9:cf555a570349 447 if (cont > 250) {
pancotinho 9:cf555a570349 448 //led2=!led2;
pancotinho 9:cf555a570349 449 return;
pancotinho 9:cf555a570349 450 }
pancotinho 9:cf555a570349 451 if (state == 0 ){
pancotinho 9:cf555a570349 452 if (spi_2.write(0x00) == header[0])
pancotinho 9:cf555a570349 453 state =1;
pancotinho 9:cf555a570349 454 else {
pancotinho 9:cf555a570349 455 cont++;
pancotinho 9:cf555a570349 456 wait_ms(10);
pancotinho 9:cf555a570349 457 }
pancotinho 9:cf555a570349 458
pancotinho 9:cf555a570349 459
pancotinho 9:cf555a570349 460 }
pancotinho 9:cf555a570349 461 else if (state == 1){ // read 0xb5
pancotinho 9:cf555a570349 462 if (spi_2.write(0x00) == header[1]){
pancotinho 9:cf555a570349 463 state =2;
pancotinho 9:cf555a570349 464 }
pancotinho 9:cf555a570349 465 else state =0;
pancotinho 9:cf555a570349 466 }
pancotinho 9:cf555a570349 467 else if (state == 2) {// read 0xb5 0x62
pancotinho 9:cf555a570349 468 if (spi_2.write(0x00) == header[2]){
pancotinho 9:cf555a570349 469 state =3;
pancotinho 9:cf555a570349 470 }
pancotinho 9:cf555a570349 471 else state =0;
pancotinho 9:cf555a570349 472 }
pancotinho 9:cf555a570349 473 else if (state == 3) {// read 0xb5 0x62 0x06
pancotinho 9:cf555a570349 474 if (spi_2.write(0x00) == header[3]){
pancotinho 9:cf555a570349 475 state =4;
pancotinho 9:cf555a570349 476 }
pancotinho 9:cf555a570349 477 else state =0;
pancotinho 9:cf555a570349 478 }
pancotinho 9:cf555a570349 479 else if (state == 4) {// read 0xb5 0x62 0x06 0x013
pancotinho 9:cf555a570349 480
pancotinho 9:cf555a570349 481 if (byte == 0){//mostrar todo o pacote
pancotinho 9:cf555a570349 482 uint8_t packet[100];
pancotinho 9:cf555a570349 483 uint8_t value = spi_2.write(0x00);
pancotinho 9:cf555a570349 484 uint8_t packet_size;
pancotinho 9:cf555a570349 485
pancotinho 9:cf555a570349 486 for (packet_size = 0 ; packet_size < 100 ;packet_size++) {
pancotinho 9:cf555a570349 487 if (value != '\n' ){
pancotinho 9:cf555a570349 488 packet [packet_size]= value;
pancotinho 9:cf555a570349 489 value = spi_2.write(0x00);
pancotinho 9:cf555a570349 490 }
pancotinho 9:cf555a570349 491 else {
pancotinho 9:cf555a570349 492 //lora_send_packet (packet , (uint8_t) packet_size+1);
pancotinho 9:cf555a570349 493 //packet_size = MAXIMUM_PACKET_SIZE +1;
pancotinho 9:cf555a570349 494 return;
pancotinho 9:cf555a570349 495 }
pancotinho 9:cf555a570349 496 }//fim for
pancotinho 9:cf555a570349 497 }//fim if byte
pancotinho 9:cf555a570349 498
pancotinho 9:cf555a570349 499 else {//mostrar apenas um byte
pancotinho 9:cf555a570349 500
pancotinho 9:cf555a570349 501
pancotinho 9:cf555a570349 502 for (int i = 0 ; i < byte-1 ;i++)
pancotinho 9:cf555a570349 503 spi_2.write(0x00);
pancotinho 9:cf555a570349 504
pancotinho 9:cf555a570349 505 uint8_t packet[]={(uint8_t)99,(uint8_t)spi_2.write(0x00)};
pancotinho 9:cf555a570349 506 //lora_send_packet (packet , (uint8_t) 2);
pancotinho 9:cf555a570349 507
pancotinho 9:cf555a570349 508
pancotinho 9:cf555a570349 509 for (int i = 0 ; i < 100 ;i++)
pancotinho 9:cf555a570349 510 if (spi_2.write(0x00) == '\n')
pancotinho 9:cf555a570349 511 return;
pancotinho 9:cf555a570349 512
pancotinho 9:cf555a570349 513 return;
pancotinho 9:cf555a570349 514
pancotinho 9:cf555a570349 515 }//fim else byte
pancotinho 9:cf555a570349 516
pancotinho 9:cf555a570349 517 }
pancotinho 9:cf555a570349 518
pancotinho 9:cf555a570349 519 }
pancotinho 9:cf555a570349 520
pancotinho 9:cf555a570349 521 }
pancotinho 9:cf555a570349 522
pancotinho 9:cf555a570349 523
pancotinho 9:cf555a570349 524 void gps_wait_same_packet () {
pancotinho 9:cf555a570349 525
pancotinho 9:cf555a570349 526 char state = 0;
pancotinho 9:cf555a570349 527 int cont =0;
pancotinho 9:cf555a570349 528
pancotinho 9:cf555a570349 529 while (1){ //começou mensagem
pancotinho 9:cf555a570349 530 if (cont > 250) {
pancotinho 9:cf555a570349 531 //led2=!led2;
pancotinho 9:cf555a570349 532 return;
pancotinho 9:cf555a570349 533 }
pancotinho 9:cf555a570349 534 if (state == 0 ){
pancotinho 9:cf555a570349 535 if (spi_2.write(0x00) == 0xb5)
pancotinho 9:cf555a570349 536 state =1;
pancotinho 9:cf555a570349 537 else {
pancotinho 9:cf555a570349 538 cont++;
pancotinho 9:cf555a570349 539 wait_ms(10);
pancotinho 9:cf555a570349 540 }
pancotinho 9:cf555a570349 541
pancotinho 9:cf555a570349 542
pancotinho 9:cf555a570349 543 }
pancotinho 9:cf555a570349 544 else if (state == 1){ // read 0xb5
pancotinho 9:cf555a570349 545 if (spi_2.write(0x00) == 0x62){
pancotinho 9:cf555a570349 546 state =2;
pancotinho 9:cf555a570349 547 }
pancotinho 9:cf555a570349 548 else state =0;
pancotinho 9:cf555a570349 549 }
pancotinho 9:cf555a570349 550 else if (state == 2){
pancotinho 9:cf555a570349 551 uint8_t packet[200];
pancotinho 9:cf555a570349 552 uint8_t value = spi_2.write(0x00);
pancotinho 9:cf555a570349 553 uint8_t packet_size;
pancotinho 9:cf555a570349 554
pancotinho 9:cf555a570349 555 for (packet_size = 0 ; packet_size < 200 ;packet_size++) {
pancotinho 9:cf555a570349 556 if (value != '\n' ){
pancotinho 9:cf555a570349 557 packet [packet_size]= value;
pancotinho 9:cf555a570349 558 value = spi_2.write(0x00);
pancotinho 9:cf555a570349 559 }
pancotinho 9:cf555a570349 560 else {
pancotinho 9:cf555a570349 561 //lora_send_packet (packet , (uint8_t) packet_size+1);
pancotinho 9:cf555a570349 562 //packet_size = MAXIMUM_PACKET_SIZE +1;
pancotinho 9:cf555a570349 563 return;
pancotinho 9:cf555a570349 564 }
pancotinho 9:cf555a570349 565
pancotinho 9:cf555a570349 566 }//fim for
pancotinho 9:cf555a570349 567 // lora_send_packet (packet , 200);
pancotinho 9:cf555a570349 568 }
pancotinho 9:cf555a570349 569 }
pancotinho 9:cf555a570349 570 }
pancotinho 9:cf555a570349 571
pancotinho 9:cf555a570349 572 void gps_config_gnss (){
pancotinho 9:cf555a570349 573
pancotinho 9:cf555a570349 574 uint8_t packet_cfg_gnss[] = {
pancotinho 9:cf555a570349 575 0xB5, 0x62, // Header
pancotinho 9:cf555a570349 576 0x03, 0x3E, // Class ID = CFG, Msg ID = UBX-CFG-GNSS
pancotinho 9:cf555a570349 577 0x3C, 0x00, // Payload Length = 60 bytes
pancotinho 9:cf555a570349 578 0x00, 0x00, 0x20, 0x07, // msgVer=0, numTrkChHw=32, numTrkChUse=32, numConfigBlocks=7
pancotinho 9:cf555a570349 579 0x00, 0x08, 0x10, 0x00, 0x01, 0x00, 0x01, 0x01, // gnssId=0 (GPS), resTrkCh=8, maxTrkCh=12, ENABLE
pancotinho 9:cf555a570349 580 0x01, 0x01, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, // gnssId=1 (SBAS), resTrkCh=1, maxTrkCh=2, ENABLE
pancotinho 9:cf555a570349 581 0x02, 0x04, 0x0A, 0x00, 0x01, 0x00, 0x01, 0x00, // gnssId=2 (Galileo), resTrkCh=4, maxTrkCh=10, ENABLE
pancotinho 9:cf555a570349 582 0x03, 0x04, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, // gnssId=3 (BeiDou), resTrkCh=4, maxTrkCh=8, DISABLE
pancotinho 9:cf555a570349 583 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, // gnssId=4 (IMES), resTrkCh=0, maxTrkCh=8, DISABLE
pancotinho 9:cf555a570349 584 0x05, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, // gnssId=5 (QZSS), resTrkCh=0, maxTrkCh=3, DISABLE
pancotinho 9:cf555a570349 585 0x06, 0x04, 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, // gnssId=6 (GLONASS), resTrkCh=4, maxTrkCh=8, ENABLE
pancotinho 9:cf555a570349 586 0x00, 0x00 //checksums A &amp; B
pancotinho 9:cf555a570349 587 };
pancotinho 9:cf555a570349 588 uint8_t pos_ck = sizeof(packet_cfg_gnss)-2;
pancotinho 9:cf555a570349 589 pc.printf("gnss config finish");
pancotinho 9:cf555a570349 590 uint8_t ubxi;
pancotinho 9:cf555a570349 591 //calcula checksum
pancotinho 9:cf555a570349 592 for (ubxi=2; ubxi<pos_ck ; ubxi++) {
pancotinho 9:cf555a570349 593 packet_cfg_gnss[pos_ck] = packet_cfg_gnss[pos_ck] + packet_cfg_gnss[ubxi];
pancotinho 9:cf555a570349 594 packet_cfg_gnss[pos_ck+1] = packet_cfg_gnss[pos_ck+1] + packet_cfg_gnss[pos_ck];
pancotinho 9:cf555a570349 595 }
pancotinho 9:cf555a570349 596
pancotinho 9:cf555a570349 597 }
pancotinho 9:cf555a570349 598
pancotinho 9:cf555a570349 599
pancotinho 9:cf555a570349 600 void gps_print_local (){
pancotinho 9:cf555a570349 601 uint8_t packet_nav_pvt[] = { 0xB5, 0x62, 0x01, 0x07, 0x00, 0x00, 0x08, 0x19};
pancotinho 9:cf555a570349 602
pancotinho 9:cf555a570349 603 //=============envia pacote nav pvt
pancotinho 9:cf555a570349 604 for ( int i=0; i< sizeof(packet_nav_pvt) ; i++){
pancotinho 9:cf555a570349 605 spi_2.write(packet_nav_pvt[i]);
pancotinho 9:cf555a570349 606 wait_ms(20);
pancotinho 9:cf555a570349 607 }
pancotinho 9:cf555a570349 608
pancotinho 9:cf555a570349 609 gps_navPVT Data = le_nav_pvt();
pancotinho 9:cf555a570349 610
pancotinho 9:cf555a570349 611 //printf ("gps lat=%d lon=%d \n",Data.lat ,Data.lon );
pancotinho 9:cf555a570349 612 //lat=Data.lat;
pancotinho 9:cf555a570349 613 //lon=Data.lon;
pancotinho 9:cf555a570349 614 if(Data.year !=0){
pancotinho 9:cf555a570349 615 pc.printf("<g%d,%d>\n", (int)Data.lat, (int)Data.lon);
pancotinho 9:cf555a570349 616 pc.printf("<t%d/%d/%d-%d:%d:%d>\n", (int)Data.year, (int)Data.month,(int)Data.day, (int)Data.hour, (int)Data.min, (int)Data.sec);
pancotinho 9:cf555a570349 617 }
pancotinho 9:cf555a570349 618 else{
pancotinho 9:cf555a570349 619 pc.printf("location not found!\n");
pancotinho 9:cf555a570349 620 }
pancotinho 9:cf555a570349 621
pancotinho 9:cf555a570349 622
pancotinho 9:cf555a570349 623 }
pancotinho 9:cf555a570349 624
pancotinho 9:cf555a570349 625 void gps_get_lat_lon(int *latitude, int *logitude){
pancotinho 9:cf555a570349 626 uint8_t packet_nav_pvt[] = { 0xB5, 0x62, 0x01, 0x07, 0x00, 0x00, 0x08, 0x19};
pancotinho 9:cf555a570349 627
pancotinho 9:cf555a570349 628 //=============envia pacote nav pvt
pancotinho 9:cf555a570349 629 for ( int i=0; i< sizeof(packet_nav_pvt) ; i++){
pancotinho 9:cf555a570349 630 spi_2.write(packet_nav_pvt[i]);
pancotinho 9:cf555a570349 631 wait_ms(20);
pancotinho 9:cf555a570349 632 }
pancotinho 9:cf555a570349 633
pancotinho 9:cf555a570349 634 gps_navPVT Data = le_nav_pvt();
pancotinho 9:cf555a570349 635
pancotinho 9:cf555a570349 636 //printf ("gps lat=%d lon=%d \n",Data.lat ,Data.lon );
pancotinho 9:cf555a570349 637 //latitude = &(int)Data.lat;
pancotinho 9:cf555a570349 638 //longitude = &(int)Data.lon;
pancotinho 9:cf555a570349 639 return;
pancotinho 9:cf555a570349 640 }
pancotinho 9:cf555a570349 641
pancotinho 9:cf555a570349 642 void gps_config (){
pancotinho 9:cf555a570349 643 gps_DSEL = 0;
pancotinho 9:cf555a570349 644 //spi gps configuration
pancotinho 9:cf555a570349 645 spi_2.format(8,0);
pancotinho 9:cf555a570349 646 spi_2.frequency(1000000); //1MHz
pancotinho 9:cf555a570349 647 cs=1;
pancotinho 9:cf555a570349 648 wait(0.1);
pancotinho 9:cf555a570349 649 cs=0;
pancotinho 9:cf555a570349 650 wait(0.1);
pancotinho 9:cf555a570349 651
pancotinho 9:cf555a570349 652 gps_int = 0;
pancotinho 9:cf555a570349 653
pancotinho 9:cf555a570349 654 //gps reset
pancotinho 9:cf555a570349 655 gps_reset = 1;
pancotinho 9:cf555a570349 656 wait_ms(50);
pancotinho 9:cf555a570349 657 //gps_reset = 0;
pancotinho 9:cf555a570349 658 //wait(1.5);
pancotinho 9:cf555a570349 659 }
pancotinho 9:cf555a570349 660
pancotinho 9:cf555a570349 661 int get_latitude(){
pancotinho 9:cf555a570349 662 return lat;
pancotinho 9:cf555a570349 663 }
pancotinho 9:cf555a570349 664
pancotinho 9:cf555a570349 665 int get_longitude(){
pancotinho 9:cf555a570349 666 return lon;
pancotinho 9:cf555a570349 667 }
pancotinho 9:cf555a570349 668
pancotinho 9:cf555a570349 669 int get_time(){
pancotinho 9:cf555a570349 670 return 1;
pancotinho 9:cf555a570349 671 }
pancotinho 9:cf555a570349 672
pancotinho 9:cf555a570349 673 gps_navPVT get_struct(){
pancotinho 9:cf555a570349 674 uint8_t packet_nav_pvt[] = { 0xB5, 0x62, 0x01, 0x07, 0x00, 0x00, 0x08, 0x19};
pancotinho 9:cf555a570349 675
pancotinho 9:cf555a570349 676 //=============envia pacote nav pvt
pancotinho 9:cf555a570349 677 for ( int i=0; i< sizeof(packet_nav_pvt) ; i++){
pancotinho 9:cf555a570349 678 spi_2.write(packet_nav_pvt[i]);
pancotinho 9:cf555a570349 679 wait_ms(20);
pancotinho 9:cf555a570349 680 }
pancotinho 9:cf555a570349 681
pancotinho 9:cf555a570349 682 gps_navPVT Data = le_nav_pvt();
pancotinho 9:cf555a570349 683
pancotinho 10:f6ff8ec221ec 684 /*if(Data.year !=0){
pancotinho 9:cf555a570349 685 pc.printf("<g%d,%d>\n", (int)Data.lat, (int)Data.lon);
pancotinho 9:cf555a570349 686 pc.printf("<t%d/%d/%d-%d:%d:%d>\n", (int)Data.year, (int)Data.month,(int)Data.day, (int)Data.hour, (int)Data.min, (int)Data.sec);
pancotinho 9:cf555a570349 687 }
pancotinho 9:cf555a570349 688 else{
pancotinho 9:cf555a570349 689 pc.printf("location not found!");
pancotinho 10:f6ff8ec221ec 690 }*/
pancotinho 9:cf555a570349 691 return Data;
pancotinho 9:cf555a570349 692 }