Kim Hyeongmin / Mbed 2 deprecated mbed_spatial

Dependencies:   mbed

Fork of mbed_gps3 by Kim Hyeongmin

main.cpp

Committer:
FDLKHM
Date:
2018-05-12
Revision:
0:0389ce4f9789
Child:
1:fbc9c604df21

File content as of revision 0:0389ce4f9789:

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <math.h>
#include <iostream>
#include "an_packet_protocol.h"
#include "spatial_packets.h"
#include "mbed.h"

#define M_PI 3.14
#define RADIANS_TO_DEGREES (180.0/M_PI)

 
Serial pc(USBTX, USBRX); // tx, rx
Serial device(p9, p10);  // tx, rx
 
int main() {
    
    an_decoder_t an_decoder;
    an_packet_t *an_packet;
    
    system_state_packet_t system_state_packet;

    an_decoder_initialise(&an_decoder);
   
    pc.baud(115200);
    device.baud(115200);    
     
      while(1) {
            
            while(device.readable()) {

                int i = an_decoder.buffer_length;
                an_decoder.buffer[i+1] = device.getc();
                an_decoder_increment(&an_decoder, 1);

                
            }
            
            /* iterate through an example data dump from spatial */
            if (40 < an_decoder.buffer_length)
            { 
            
                //calculate the number of bytes to copy
                //bytes_to_copy = an_decoder_size(&an_decoder);
        
                while ((an_packet = an_packet_decode(&an_decoder)) != NULL)
                {   
                    //an_packet = an_packet_decode(&an_decoder);
                    pc.printf("what is problem? \r\n"); 
                                        
                    if (an_packet->id == packet_id_system_state) //system state packet 
                    {   pc.printf("what is problem?222"); 
        
                        //copy all the binary data into the typedef struct for the packet 
                        //this allows easy access to all the different values             
                        if (decode_system_state_packet(&system_state_packet, an_packet) == 0)
                        {pc.printf("what is problem?222");
                            pc.printf("System State Packet:\n");
                            pc.printf("\tLatitude = %f, Longitude = %f, Height = %f\n", system_state_packet.latitude * RADIANS_TO_DEGREES, system_state_packet.longitude * RADIANS_TO_DEGREES, system_state_packet.height);
                            pc.printf("\tRoll = %f, Pitch = %f, Heading = %f\n", system_state_packet.orientation[0] * RADIANS_TO_DEGREES, system_state_packet.orientation[1] * RADIANS_TO_DEGREES, system_state_packet.orientation[2] * RADIANS_TO_DEGREES);
                        }
                    }
                    else
                    {
                        pc.printf("Packet ID %u of Length %u\n", an_packet->id, an_packet->length);
                    }
                }
            }
        }
        
    
}