210625 GPS and Ltika

Dependencies:   mbed GPS_interrupt

main.cpp

Committer:
imadaemi
Date:
2021-06-25
Revision:
0:23228856ff9f

File content as of revision 0:23228856ff9f:

#include "mbed.h"
#include "GPS_interrupt.h"

Serial pc(USBTX, USBRX, 115200);
Serial gps_serial(p9, p10, 115200);

GPS_interrupt gps(&gps_serial);
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);

bool SetGPS();
void GetGPS();

float lat, lon, height;
int num = 0;

int main() {
    
    pc.printf("Hello GPS!\r\n");
    
    while(1){
        if(SetGPS() == 1){
        break;
        }    
    }
    
    while(1){
        led1 = 0;
        led2 = 0;
        led3 = 0;
        led4 = 0;
        
        GetGPS();
        
        if(lat != 0 && lon != 0){
            switch(num%4){
                case 1:
                led1 = 1;
                break;
                
                case 2:
                led2 = 1;
                break;
                
                case 3:
                led3 = 1;
                break;
                
                case 0:
                led4 = 1;
                break;
            }
        }
        
        num++;
        wait(0.1);
    }
}

bool SetGPS(){
//    gps.changeGPSFreq(10); 入れるとエラーが出る
    if(gps.gps_readable == true){
        pc.printf("GPS OK!\r\n");
        return true;
    }else if(gps.gps_readable == false){
        pc.printf("GPS NG...\r\n");
        return false;
    }
//    xbee.printf("GPS OK!\r\n");
//    openlog.printf("GPS OK!\r\n");
}

void GetGPS(){
    lat = gps.Latitude();
    lon = gps.Longitude();
    height = gps.Height();
    pc.printf("%f\t%f\t%f\t\r\n", lat, lon, height);
//    xbee.printf("%f\t%f\t%f\t\r\n", lat, lon, height);
//    openlog.printf("%f\t%f\t%f\t\r\n", lat, lon, height);
}