#ifndef FRMMAPGPS_H #define FRMMAPGPS_H #include #include "gps.h" #include "ringbuffer.h" #include #include struct GPSPoint { public: double longtude ; double latitude ; GPSPoint(double longtude ,double latitude ) { this->latitude = latitude; this->longtude = longtude; } GPSPoint() { } QString toString() { QString strLongitude = QString("%1,").arg(longtude ,0, 'g',14); QString strLatitude = QString("%1").arg(latitude,0, 'g',14); QString strPos = strLongitude+strLatitude; return strPos; } }; class WebView; class MapBaiDu; class QTableWidget; namespace Ui { class frmMapGps; } #include "mat_t.h" class frmMapGps : public QWidget { Q_OBJECT public: explicit frmMapGps(QString mapKey,QWidget *parent = 0); virtual ~frmMapGps(); QString MapKey ; public: QList ListGPSPoints; protected: bool CheckBeingDebugged(); void showEvent(QShowEvent *); Ui::frmMapGps *ui; private: //通用浏览器控件 WebView *web; //百度地图类 MapBaiDu *baidu; bool bLoaded; bool bInited; //设备名称 QString name ; //RingBuffer buffer; //路径点集合用来重新绘制路径确认是否正确 //QList routeDatas; private: void AddPoint(GPS *pGPS); void KalMan_main(GPS *pGPS); void kalm_init(double T); mat_t kalm_pool(double x, double y); public: void UpdateGPSInfo(GPS *pGPS); private slots: //初始化界面数据 void initForm(); //加载地图 void loadMap(); //显示信息 void setInfo(int angle, int index, int count); protected: //初始化表格控件 virtual void initTable(); void initTable(QTableWidget *tableWidget); protected slots: //添加数据到表格 void addItem2(QTableWidget *tableWidget, long index, const QString &point); void addItem(QTableWidget *tableWidget, long index, const QString &point,const QString ppm=""); // 网页加载 void loadFinished(bool bFinished); //收到网页发过来的数据 void receiveDataFromJs(const QString &type, const QVariant &data); void on_tableWidgetSource_itemSelectionChanged(); //执行js函数 void on_tableWidgetSource_cellDoubleClicked(int row, int column); void runJs(const QString &js); virtual void tableSelectionChanged(); private slots: void AddDeviceMark(); //移动设备点轨迹 void moveMarker(); private: mat_t F = mat_t(4, 4, 0.0); mat_t H= mat_t(2, 4, 0.0); mat_t P0= mat_t(4, 4, 0.0); mat_t I= mat_t(4, 4, 0.0); mat_t Xkf= mat_t(4, 1, 0.0); mat_t Q= mat_t(4, 4, 0.0); mat_t R= mat_t(2, 2, 0.0); mat_t Z= mat_t(2, 1, 0.0); }; //-------------------------------------------- #endif // FRMMAPGPS_H