1 #ifndef GPS_H 2 #define GPS_H 3 4 #include <QWidget> 5 #include <QtCore> 6 #include <fcntl.h> 7 #include <termios.h> 8 #include "qmessagebox.h" 9 #include "iwidget.h" 10 typedef struct 11 { 12 int year; 13 int month; 14 int day; 15 int hour; 16 int minute; 17 int second; 18 }date_time; 19 20 typedef struct{ 21 date_time D; 22 char status; 23 double latitude; //纬度 24 double longitude; //经度 25 char NS; //南北极 26 char EW; //东西 27 double speed; //速度 28 double high; //高度 29 int num;// 30 }gps_info; 31 32 33 34 namespace Ui { 35 class gps; 36 } 37 38 class gps : public QWidget 39 { 40 Q_OBJECT 41 42 public: 43 explicit gps(QWidget *parent = 0); 44 ~gps(); 45 protected: 46 void changeEvent(QEvent *e); 47 48 private slots: 49 void on_pb_read_clicked(); 50 51 void on_pb_close_clicked(); 52 void read_sermios(); 53 54 private: 55 Ui::gps *ui; 56 volatile int fd; 57 char m_buf[1024]; 58 int set_termios(); 59 QTimer *m_timer; 60 void parse_gps(char *mbuf,gps_info *m_gps); 61 void GetClear(gps_info *m_gps); 62 int Getbufnum(int num,char *str); 63 double get_double_number(char *s); 64 void BTC(date_time *gps_d); 65 protected: 66 void closeEvent(QCloseEvent *e); 67 void moveEvent(QMoveEvent *); 68 void resizeEvent(QResizeEvent *); 69 70 }; 71 72 CreateSimplePlugin(GpsWidget, "gps", "gps.json", new gps) 73 #endif // GPS_H 74