|
@@ -51,6 +51,7 @@
|
|
|
#include <kalman\locate.h>
|
|
|
#include "Filter\KalmanFilter.h"
|
|
|
#include "algorithm\FittingPosition.h"
|
|
|
+#include "LocateRecord.h"
|
|
|
|
|
|
#define MIN(x,y) (x < y ? x : y)
|
|
|
#define MAX(x,y) (x > y ? x : y)
|
|
@@ -406,9 +407,10 @@ struct sync_data{
|
|
|
double vy;
|
|
|
|
|
|
int sync_num; //本次同步号
|
|
|
-
|
|
|
bool update;
|
|
|
|
|
|
+ std::shared_ptr<nspLocate::LocateRecord> locate;
|
|
|
+
|
|
|
sync_data(){
|
|
|
x = 0.0;
|
|
|
y = 0.0;
|
|
@@ -416,6 +418,7 @@ struct sync_data{
|
|
|
vy = 0.0;
|
|
|
sync_num = 0;
|
|
|
update = false;
|
|
|
+ locate = nullptr;
|
|
|
}
|
|
|
|
|
|
sync_data& operator=(sync_data&tmp){
|
|
@@ -425,6 +428,7 @@ struct sync_data{
|
|
|
vy = tmp.vy;
|
|
|
sync_num = tmp.sync_num;
|
|
|
update = tmp.update;
|
|
|
+ locate = tmp.locate;
|
|
|
return *this;
|
|
|
}
|
|
|
};
|
|
@@ -1047,23 +1051,26 @@ public:
|
|
|
|
|
|
INT64 m_event_list[CARD_EVENT_COUNT]; // 保存事件Id
|
|
|
public:
|
|
|
- void algo_tof(int cnt);
|
|
|
- void algo_tdoa(int cnt);
|
|
|
- int algo_tdoa_1d(int cnt); //一维定位
|
|
|
- int algo_tdoa_2d(int cnt); //二维定位
|
|
|
- int algo_tdoa_3d(int cnt); //三维定位
|
|
|
-
|
|
|
- void algo_calc_offset(); //计算偏移坐标
|
|
|
- bool algo_is_same_direction(double x,double y,double z); //检查此次方向
|
|
|
-
|
|
|
- int CheckDistData(int cnt);
|
|
|
- int AssembleDistData(std::shared_ptr<ReceiveDataMap> pRdm);
|
|
|
- int SaveCardAlgoData(std::shared_ptr<POS>& pos);
|
|
|
- int SaveOriginDataBeforeFilter(std::shared_ptr<POS> pos);
|
|
|
- int ChooseOneSolution(std::shared_ptr<ReceiveDataMap> pRdm, std::vector<std::shared_ptr<POS>> udm_pos, std::shared_ptr<POS>& pos);// 输出唯一解
|
|
|
- int CheckSolution(std::shared_ptr<POS>& p); // 验证唯一解合法性,如速度、加速度
|
|
|
- int CheckSulutionByStream(std::shared_ptr<POS> p); //参数使用非引用,即不可修改其值
|
|
|
- bool IsExistPath(int left,int right);
|
|
|
+ std::shared_ptr<nspLocate::LocateRecord> locate;
|
|
|
+
|
|
|
+ void algo_tof(int cnt);
|
|
|
+ void algo_tdoa(int cnt);
|
|
|
+ int algo_tdoa_1d(int cnt); //一维定位
|
|
|
+ int algo_tdoa_2d(int cnt); //二维定位
|
|
|
+ int algo_tdoa_3d(int cnt); //三维定位
|
|
|
+
|
|
|
+ void algo_calc_offset(); //计算偏移坐标
|
|
|
+ bool algo_is_same_direction(double x,double y,double z); //检查此次方向
|
|
|
+
|
|
|
+ int CheckDistData(int cnt);
|
|
|
+ int AssembleDistData(std::shared_ptr<ReceiveDataMap> pRdm);
|
|
|
+ int GetDeltaT(map<unsigned long long,std::shared_ptr<_coordinate>> dl);
|
|
|
+ int SaveCardAlgoData(std::shared_ptr<POS>& pos);
|
|
|
+ int SaveOriginDataBeforeFilter(std::shared_ptr<POS> pos);
|
|
|
+ int ChooseOneSolution(std::shared_ptr<ReceiveDataMap> pRdm, std::vector<std::shared_ptr<POS>> udm_pos, std::shared_ptr<POS>& pos);// 输出唯一解
|
|
|
+ int CheckSolution(std::shared_ptr<POS>& p); // 验证唯一解合法性,如速度、加速度
|
|
|
+ int CheckSulutionByStream(std::shared_ptr<POS> p); //参数使用非引用,即不可修改其值
|
|
|
+ bool IsExistPath(int left,int right);
|
|
|
public:
|
|
|
// 滤波算法相关
|
|
|
std::unique_ptr<CKalmanFilter> m_pKalmanFilter;
|