ublox社製GPSモジュール NEO-7Mから、SPI経由でGPSデータをUBXプロトコルで読み出すライブラリです SPI経由ではGPSの出力設定が出来ないので、予めUART接続でPCから出力データを変更する必要があります。ここら辺の詳細については https://ameblo.jp/tsukuba-step/entry-12282936077.html を参考にして下さい。 出力設定は、 NAV-POSLLH,NAV-TIMEUTC,NAV-VELNED のみを出力して下さい

Dependents:   SensorManager

ubloxUBX.h

Committer:
kim1212
Date:
2018-02-13
Revision:
1:2457089ca195
Parent:
ublox_Nav.h@ 0:956653b6d3ad
Child:
2:5992db47f3c3

File content as of revision 1:2457089ca195:

#ifndef UBLOX_NAV_H
#define UBLOX_NAV_H

#include "mbed.h"
#include "obsvdStruct.h"

#define TIMEUTC_LEN 20
#define POSLLH_LEN 28
#define VELNED_LEN 36

typedef union{
    unsigned char Raw[TIMEUTC_LEN];
    struct{
        unsigned int iTOW;
        unsigned int tAcc;
        int nano;
        unsigned short year;
        unsigned char month;
        unsigned char day;
        unsigned char hour;
        unsigned char min;
        unsigned char sec;
        unsigned char valid;
    }Data;
} bufToTIMEUTC;

typedef union{
    unsigned char Raw[POSLLH_LEN];
    struct{
        unsigned int iTOW;
        int lon; //1e-7
        int lat; //1e-7
        int height;
        int hMSL;
        unsigned int hAcc;
        unsigned int vAcc;
    }Data;
} bufToPOSLLH;

typedef union{
    unsigned char Raw[VELNED_LEN];
    
    struct{
        unsigned int iTOW;
        int velN;
        int velE;
        int velD;
        unsigned int speed;
        unsigned int gspeed;
        int heading;
        unsigned int sAcc;
        unsigned int cAcc;
        
    }Data;
    
} bufToVELNED;



class GPS {

public:
    
    GPS(PinName mosi,PinName miso,PinName sck,PinName _cs);
    
    bool updateData();
    
    void chkData(obsvdData* obs);
    
    void chkTime(timData* t);
    
    

private:
    SPI _gps;
    DigitalOut cs;
    
    bufToTIMEUTC timeData;
    bufToPOSLLH posData;
    bufToVELNED velData;
    unsigned char buf0[50];
    unsigned char buf1[50];
    unsigned char buf2[50];

};




#endif