![](/media/cache/profiles/2012_sf_avc_095.jpg.50x50_q85.jpg)
2018 revision to classic DataBus AVC code.
Dependencies: LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell
GPS/Ublox6.h
- Committer:
- shimniok
- Date:
- 2019-01-07
- Revision:
- 44:0d72a8a1288a
- Parent:
- 36:3095e00eef37
File content as of revision 44:0d72a8a1288a:
#ifndef __UBLOX6_H #define __UBLOX6_H /** uBlox GPS UBX Protocol Reader * Parses uBlox GPS binary protocol * * @author Wayne Holder; Ported to mbed by Michael Shimniok */ #include "mbed.h" class Ublox6 { public: // TODO 3 convert this to time units // TODO 3 move this somewhere else? static const int lag=40; // number of updater steps by which gps output lags reality Ublox6(); /** * UBX protocol parser (Wayne Holder) * @param cc is the character to parse * @return 1 when entire packet of data obtained, 0 otherwise */ int parse(int cc); void subscribe(Callback<void()> cb); /** Read the latest data from GPS * @param lat latitude in degrees * @param lon longitude in degrees * @param course heading/course in degrees * @param speed speed m/s * @return all parameters */ void read(double& lat, double& lon, float& course, float& speed, float& hdop, int& svcount); private: typedef struct { double lat; double lon; float course; float speed; float hdop; int svcount; } gps_data_t; gps_data_t tmp; gps_data_t latest; int _ready; // is data ready to be copied? bool _available; // Callback<void()> _callback; /* float _latitude; // temp storage, latitude float _longitude; // temp storage, longitude float _hdop; // horiz dilution of precision float _course_deg; // course in degrees float _speed_mps; // speed in m/s int _svcount; // space vehicle (satellite) count */ }; #endif