Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef UBXBUFFER_H
00028 #define UBXBUFFER_H
00029
00030 #include <GpCoreTools.h>
00031 #include <WaranCore.h>
00032
00033 class GpsServer;
00034 class UbxDevice;
00035
00036 class UbxBuffer : public DynamicBuffer
00037 {
00038 public:
00039 UbxBuffer(int fd, GpsServer * server, UbxDevice * device);
00040 ~UbxBuffer();
00041
00042 void startBroadcast();
00043 protected:
00044 virtual int bytesAvailable(char * buffer, int byteCount);
00045 private:
00046 void read(MessageClassIdHeader& hdr, char * payload, unsigned short length);
00047 void broadcast();
00048 void saveRaw(MessageClassIdHeader& hdr, char * payload, unsigned short length);
00049 void saveFix();
00050
00051 void readNavPosLLH(const char * payload);
00052 void readNavStatus(const char * payload);
00053 void readNavDop(const char * payload);
00054 void readNavSvInfo(const char * payload);
00055 void readNavTimeUTC(const char * payload);
00056 void readNavTimeGPS(const char * payload);
00057 void readTimTP(const char * payload);
00058
00059 unsigned char _index;
00060 GpsFix * _oldFix;
00061 GpsFix * _newFix;
00062 GpsServer * _server;
00063 UbxDevice * _device;
00064
00065 LinearRegression _drift;
00066 int _falseCount;
00067 };
00068
00069
00070 #endif // UBXBUFFER_H