00001
00002
00003
00004
00005
00006
00007 #ifndef tgeopositionH
00008 #define tgeopositionH
00009
00010 #include <qextserialport.h>
00011 #include <QObject>
00012
00013 enum Tcardinaleixos {NORTH, SOUTH, EAST, WEST, RARO};
00014
00015
00016 class TGeoposition : public QObject {
00017
00018 Q_OBJECT
00019
00020 public:
00021 TGeoposition(void);
00022 bool openConnection(const char *port_name);
00023 void closeConnection(void);
00024
00025 void sendStr(const char *cad);
00026 void sendData(const char *dat, int len);
00027 int receiveData(char *destination, int max_data);
00028
00029 void processReceivedData(void);
00030
00031 bool findMessage(const char *data, unsigned int size, unsigned int *start, unsigned int *length);
00032 bool parseMessage(const char *start, unsigned int length);
00033
00034 void getLastPosition(double *utc_t, double *longit, Tcardinaleixos *c_longitude, double *latit, Tcardinaleixos *c_latitude);
00035
00036 ~TGeoposition(void);
00037
00038 signals:
00042 void newPosition(void);
00043
00044 private:
00045 char *data_buffer;
00046 int data_count;
00047
00048 bool connection_ready;
00049 QextSerialPort *port;
00050
00051
00052 double utc_time, longitude, latitude;
00053 Tcardinaleixos cardinal_longitude, cardinal_latitude;
00054
00055
00056 };
00057
00058
00059 #endif