lib/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/driver_test.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/master/comm_if.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/rtk_module/virtual_rtk.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/rtk_platform/platform.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/test_items2/dummy_light.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/test_items2/prepare.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/test_items2/prepare.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/test_items2/road_exam.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
lib/build.gradle
@@ -15,6 +15,7 @@ externalNativeBuild { cmake { cppFlags "-std=c++11 -frtti -fexceptions" // cppFlags += "-DAY_DEVICE" } } ndk { lib/src/main/cpp/driver_test.cpp
@@ -147,7 +147,6 @@ static bool engineRuning = false; const int ENGINE_MIN_ROTATE = 200; static bool engineStart = false; static bool engineStartTimeout = false; exam_param_t examParam; @@ -157,6 +156,9 @@ static rtk_info *RtkBuffer = NULL; static int RtkBufferNum = 0, RtkBufferIn = 0; static pthread_mutex_t clock_mutex = PTHREAD_MUTEX_INITIALIZER; static struct RtkTime rtkClock; static void SetExamParamDefault(void); static void EngineStartHold(union sigval sig); @@ -191,6 +193,8 @@ RtkBuffer = (rtk_info *) malloc(RTK_BUFFER_SIZE * sizeof(rtk_info)); RtkBufferNum = RtkBufferIn = 0; pthread_mutex_init(&clock_mutex, NULL); } static void SetExamParamDefault(void) @@ -643,8 +647,7 @@ void UpdateRTKInfo(const rtk_info *s) { struct RtkTime rtkClock; pthread_mutex_lock(&clock_mutex); rtkClock.YY = s->YY; rtkClock.MM = s->MM; rtkClock.DD = s->DD; @@ -652,6 +655,7 @@ rtkClock.mm = s->mm; rtkClock.ss = s->ss; rtkClock.mss = s->dss; pthread_mutex_unlock(&clock_mutex); if (ExamStart) { ExecuteExam(&rtkClock); // 执行无需车辆定位的项目 @@ -845,8 +849,10 @@ if (ReadCarStatus(ENGINE_START) == ENGINE_START_ACTIVE) { if (!engineStart) { DEBUG("检测到点火"); engineStart = true; if (ReadCarStatus(GEAR) != GEAR_N) { DEBUG("不在空挡点火"); // 不是空挡点火,不合格 if (ExamType == TEST_TYPE_AREA) AddExamFault(10105, rtkTime); @@ -857,16 +863,9 @@ AppTimer_add(EngineStartHold, examParam.hold_start_key_limit_time); } } else if (engineStart) { DEBUG("检测到关闭点火"); engineStart = false; AppTimer_delete(EngineStartHold); } if (engineStartTimeout) { engineStartTimeout = false; // 不及时松开启动开关,扣10分 if (ExamType == TEST_TYPE_AREA) AddExamFault(10201, rtkTime); } if (ExamType == TEST_TYPE_ROAD_DUMMY_LIGHT) { @@ -911,9 +910,20 @@ static void EngineStartHold(union sigval sig) { AppTimer_delete(EngineStartHold); DEBUG("点火超时"); if (ReadCarStatus(ENGINE_START) == ENGINE_START_ACTIVE) { engineStartTimeout = true; struct RtkTime rtkTime; pthread_mutex_lock(&clock_mutex); rtkTime = rtkClock; pthread_mutex_unlock(&clock_mutex); // 不及时松开启动开关,扣10分 if (ExamType == TEST_TYPE_AREA) { AddExamFault(10201, &rtkTime); } else if (ExamType != TEST_TYPE_ROAD_CALIBRATE) { AddExamFault(40207, &rtkTime); } } } @@ -1260,5 +1270,16 @@ void PrepareOver(int res) { DEBUG("上车准备结束 %d", res); if (res != 0) { struct RtkTime rtkTime; pthread_mutex_lock(&clock_mutex); rtkTime = rtkClock; pthread_mutex_unlock(&clock_mutex); AddExamFault(40101, &rtkTime); } exam_dummy_light = 2; } lib/src/main/cpp/master/comm_if.cpp
@@ -141,6 +141,7 @@ pthread_mutex_unlock(&msg_mutex); } else { // 延迟重发 DEBUG("发送失败"); usleep(500000); sem_post(&sem_msg_income); } lib/src/main/cpp/rtk_module/virtual_rtk.cpp
@@ -35,6 +35,7 @@ static void TcpDataCallback2(void *buffer, int length, void *p, void *context); static void ConnectLater(union sigval sig); static void ConnectLater2(union sigval sig); void InitVirtualDevice(const char *domain_name, int port) { @@ -87,14 +88,17 @@ static void ConnectLater(union sigval sig) { AppTimer_delete(ConnectLater); if (sig.sival_int == 1) { if (ctp != NULL) { ctp->OpenTcpPort(VAddr.domain_name, VAddr.port); } } else { } static void ConnectLater2(union sigval sig) { AppTimer_delete(ConnectLater2); if (ctp2 != NULL) { ctp2->OpenTcpPort(VAddr.domain_name, VAddr.port + 1); } } } @@ -155,7 +159,7 @@ connectCnt2++; if (connectCnt2 < 3) { AppTimer_add(ConnectLater, D_SEC(3), 2); AppTimer_add(ConnectLater2, D_SEC(3), 2); } PlayTTS("灯光模拟器断开", NULL); } lib/src/main/cpp/rtk_platform/platform.cpp
@@ -516,6 +516,7 @@ break; } case CAR_SENSOR_UPDATE_EVT: { DEBUG("CAR_SENSOR_UPDATE_EVT"); struct carSensorBrief brief; int x = 20; @@ -585,6 +586,8 @@ if (sensor.clutch == 1) sensor.gear = 0; DEBUG("电池电压 %f", sensor.cellVolt); UpdateSensor(&sensor); break; } lib/src/main/cpp/test_items2/dummy_light.cpp
@@ -37,6 +37,12 @@ for (int i = 0; i < contentNum; ++i) { DEBUG("灯光项目 <%d> item %d, TTS %s", i, content[i].item, content[i].tts.c_str()); for (int j = 0; j < content[i].process.size(); ++j) { DEBUG("灯光过程解<%d> %d - %d", i, (content[i].process[j] >> 8) & 0xFF, content[i].process[j] & 0xFF); } for (int j = 0; j < content[i].solution.size(); ++j) { DEBUG("灯光最终解<%d> %d - %d", i, (content[i].solution[j] >> 8) & 0xFF, content[i].solution[j] & 0xFF); } } testing = true; @@ -63,6 +69,7 @@ for (int i = 0; i < content[question].process.size(); ++i) { if (ReadCarStatus((content[question].process[i]>>8) & 0xFF) == content[question].process[i] & 0xFF) { process.push_back(content[question].process[i]); DEBUG("灯光操作过程解1<%d> %d - %d", question, (content[question].process[i]>>8) & 0xFF, content[question].process[i] & 0xFF); } } @@ -83,6 +90,7 @@ if (testing) { for (int i = 0; i < content[question].process.size(); ++i) { if (id == ((content[question].process[i] >> 8) & 0xFF) && value == (content[question].process[i] & 0xFF)) { DEBUG("灯光操作过程解2<%d> %d - %d", question, (content[question].process[i]>>8) & 0xFF, content[question].process[i] & 0xFF); if (process.size() == 0 || process.back() != content[question].process[i]) { process.push_back(content[question].process[i]); } @@ -113,6 +121,7 @@ for (int i = 0; i < content[question].solution.size(); ++i) { if (ReadCarStatus((content[question].solution[i]>>8)&0xFF) != (content[question].solution[i] & 0xFF)) { DEBUG("灯光确认不合格<%d> %d != %d", question, (content[question].solution[i]>>8) & 0xFF, content[question].solution[i] & 0xFF); AddExamFault(content[question].wrongCode, &currRtkTime); break; } lib/src/main/cpp/test_items2/prepare.cpp
@@ -27,6 +27,13 @@ DEBUG("开始上车准备"); } void TerminatePrepare(void) { exec = false; AppTimer_delete(PrepareTimeout); AppTimer_delete(PrepareTimeout2); } void handlePrepare(uint16_t sensor_id, int value) { if (!exec) lib/src/main/cpp/test_items2/prepare.h
@@ -8,6 +8,7 @@ #include <cstdint> void StartPrepare(void); void TerminatePrepare(void); void handlePrepare(uint16_t sensor_id, int value); void PrepareOver(int res); lib/src/main/cpp/test_items2/road_exam.cpp
@@ -19,6 +19,7 @@ #include "car_start.h" #include "overtake.h" #include "change_lane.h" #include "prepare.h" #include <cmath> #include <vector> @@ -202,9 +203,7 @@ void TerminateRoadExam(void) { TerminateDummyLightExam(); // TerminateStopCarExam(); // TerminateOperateGearExam(); // TerminateDriveStraightExam(); TerminatePrepare(); } /*********************************************************************