| | |
| | | #define RTK_BUFFER_SIZE 100 |
| | | #define CAR_MODEL_CACHE_SIZE 10 |
| | | |
| | | static pthread_mutex_t rtk_clock_mutex = PTHREAD_MUTEX_INITIALIZER; |
| | | struct RtkTime rtkClock; |
| | | |
| | | static rtk_info *RtkBuffer = NULL; |
| | | static int RtkBufferNum = 0, RtkBufferIn = 0; |
| | | |
| | |
| | | |
| | | void DriverTestInit(void) |
| | | { |
| | | pthread_mutex_init(&rtk_clock_mutex, NULL); |
| | | memset(&rtkClock, 0, sizeof(rtkClock)); |
| | | |
| | | ExamStart = false; |
| | | memset(&MapList, 0, sizeof(MapList)); |
| | | MapNum = 0; |
| | |
| | | } |
| | | } |
| | | |
| | | void GetRtkClock(struct RtkTime *s) |
| | | { |
| | | pthread_mutex_lock(&rtk_clock_mutex); |
| | | *s = rtkClock; |
| | | pthread_mutex_unlock(&rtk_clock_mutex); |
| | | } |
| | | |
| | | void UpdateRTKInfo(const rtk_info *s) |
| | | { |
| | | pthread_mutex_lock(&rtk_clock_mutex); |
| | | struct RtkTime rtkClock; |
| | | |
| | | rtkClock.YY = s->YY; |
| | | rtkClock.MM = s->MM; |
| | | rtkClock.DD = s->DD; |
| | |
| | | rtkClock.mm = s->mm; |
| | | rtkClock.ss = s->ss; |
| | | rtkClock.mss = s->dss; |
| | | pthread_mutex_unlock(&rtk_clock_mutex); |
| | | |
| | | if (ExamStart) { |
| | | ExecuteExam(&rtkClock); // 执行无需车辆定位的项目 |
| | | } |
| | | |
| | | if (s->qf == 3) { |
| | | RtkBuffer[RtkBufferIn] = *s; |
| | |
| | | } |
| | | } |
| | | |
| | | static void ExecuteExam(const struct RtkTime* rtkTime) |
| | | { |
| | | |
| | | } |
| | | |
| | | static void ExecuteExam(double speed, int move, double azimuth, const struct RtkTime* rtkTime) |
| | | { |
| | | if (move != 0) { |
| | | if (ReadSensor(SENSOR_SEATBELT) == 0 && !reportSeatbeltEject) { |
| | | if (ReadCarStatus(SEATBELT) == EJECT_SEATBELT && !reportSeatbeltEject) { |
| | | DEBUG("不系安全带"); |
| | | reportSeatbeltEject = true; |
| | | AddExamFault(1, rtkTime); |