//
|
// Created by YY on 2019/10/21.
|
//
|
|
#ifndef RTKDRIVERTEST_DRIVER_TEST_H
|
#define RTKDRIVERTEST_DRIVER_TEST_H
|
|
#include "Geometry.h"
|
#include "rtk_module/rtk.h"
|
|
#include <vector>
|
|
#define EXAM_AREA_NONE 0
|
#define EXAM_AREA_START 1
|
#define EXAM_AREA_RUN 2
|
#define EXAM_AREA_END 3
|
|
#define TIRE_OUTSIDE 0
|
#define TIRE_INSIDE 1
|
#define AXIAL_FRONT 0
|
#define AXIAL_REAR 1
|
|
using namespace std;
|
|
struct car_desc_ {
|
double distance; // 距离主天线的距离
|
double angle; // 从中轴线逆时针形成的角度
|
};
|
|
typedef struct {
|
PointF basePoint; // 现场测量的主天线坐标
|
int axial[2];
|
int left_front_tire[2];
|
int right_front_tire[2];
|
int left_rear_tire[2];
|
int right_rear_tire[2];
|
int bodyNum;
|
int *body;
|
int pointNum;
|
struct car_desc_ *carDesc; // 经现场测量点计算后的值
|
PointF *carXY; // 计算后的车身各点坐标
|
} car_model;
|
|
// 总数
|
// 中轴线前点,id 0,中轴线后点id
|
// 左包围, 右包围
|
// 左前轮,外内
|
typedef struct {
|
int body_num;
|
int body[64];
|
int front_left_tire[2];
|
int front_right_tire[2];
|
int rear_left_tire[2];
|
int rear_right_tire[2];
|
} carModelDesc_t;
|
|
typedef struct {
|
uint32_t uptime;
|
int point_num;
|
PointF *points;
|
carModelDesc_t *desc;
|
} car_model_cache_t;
|
|
struct RtkTime {
|
int YY;
|
int MM;
|
int DD;
|
int hh;
|
int mm;
|
int ss;
|
int mss;
|
};
|
|
struct ExamFault {
|
int sn;
|
char utc[32];
|
int wrong_id;
|
};
|
|
//vector<ExamFault> ExamFaultList;
|
|
void DriverTestInit(void);
|
void ReadDriverExamPrimer(void);
|
void ClearMap(void);
|
void AddMap(int id, int type, const double (*map)[2], int pointNum, const double (*map2)[2], int pointNum2);
|
void SetCarMeasurePoint(double *basePoint, int *axial, int *left_front_tire,
|
int *right_front_tire, int *left_rear_tire, int *right_rear_tire,
|
int *body, int bodyNum, double (*point)[2], int pointNum);
|
void SetSensorCfg(int (*sensor)[3], int sensorNum);
|
int GetSensorValidLevel(void);
|
void GetSensorCfg(int gpio, int &func, bool &lvl);
|
void FindSensorCfg(int func, int &gpio, bool &lvl);
|
|
void StartDriverExam(int start);
|
void StartMapExam(int map_id, int exam);
|
void GetRtkClock(struct RtkTime *s);
|
void UpdateRTKInfo(const rtk_info *s);
|
void AddExamFault(int wrong, const struct RtkTime *rtkTime);
|
car_model_cache_t *GetCarModelCache(int node);
|
void SystemShutdown(int event, int timeout);
|
|
#endif //RTKDRIVERTEST_DRIVER_TEST_H
|