| | |
| | | static void UpdateCarBodyCoord(struct RtkTime *rtkTime, double azimuth, double pitch, double roll, PointF main_ant, car_model *carModel); |
| | | static bool UpdateCarCoord(double &spd, int &mov, int &idx); |
| | | |
| | | static void PrintObdInfo(struct RtkTime *rtkTime, double speed); |
| | | |
| | | void DriverTestInit(void) |
| | | { |
| | |
| | | if (ExamStart) { |
| | | ExecuteExam(speed, move, azimuth, &rtkTime); |
| | | } |
| | | |
| | | PrintObdInfo(&rtkTime, speed); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | static void PrintObdInfo(struct RtkTime *rtkTime, double speed) { |
| | | static struct RtkTime cTime = *rtkTime; |
| | | |
| | | if (TimeGetDiff(rtkTime, &cTime) >= D_SEC(3)) { |
| | | cTime = *rtkTime; |
| | | DEBUG("ENGINE_RPM %d OBD_SPEED %f SPEED %f", |
| | | ReadCarStatus(ENGINE_RPM), |
| | | ((double)ReadCarStatus(OBD_SPEED)) / 10.0, |
| | | speed * 3.6); |
| | | } |
| | | } |
| | | |
| | |
| | | sensor.trip = BUILD_UINT32(data[7], data[6], data[5], data[4]); |
| | | sensor.tripTime = BUILD_UINT32(data[11], data[10], data[9], data[8]); |
| | | sensor.cellVolt = (double)(BUILD_UINT16(data[13], data[12])) / 10.0; |
| | | sensor.speed = (double)(BUILD_UINT16(data[15], data[14])) / 10.0; |
| | | sensor.speed = BUILD_UINT16(data[15], data[14]); |
| | | sensor.engine = BUILD_UINT16(data[17], data[16]); |
| | | sensor.sas = (short)BUILD_UINT16(data[19], data[18]); |
| | | sensor.key = data[x++]; |
| | |
| | | #include "../jni_log.h" |
| | | #include "../common/apptimer.h" |
| | | |
| | | #define DEBUG(fmt, args...) LOGD("<car_start> <%s>: " fmt, __func__, ##args) |
| | | #define DEBUG(fmt, args...) LOGD("<road_exam car_start> <%s>: " fmt, __func__, ##args) |
| | | |
| | | static const int MAX_ENGINE_RPM = 2500; |
| | | static const double START_CAR_MOVE_DISTANCE = 10.0; |
| | |
| | | checkStartCarSignal = false; |
| | | checkDoor = false; |
| | | handBreakActive = false; |
| | | int id = PlayTTS("请起步", cb); |
| | | PlayTTS("请起步", cb); |
| | | |
| | | DEBUG("语音开始 %d", id); |
| | | DEBUG("车辆起步"); |
| | | } |
| | | |
| | | bool TestCarStart(const car_model *car, double speed, int moveDirect, const struct RtkTime *rtkTime) |
| | |
| | | car_sensor_value_t sensor; |
| | | double moveDistance = ReadOdo() - startCarMoveDistance; |
| | | |
| | | DEBUG("起步行驶距离 %f", moveDistance); |
| | | // DEBUG("起步行驶距离 %f", moveDistance); |
| | | |
| | | if (!checkStartCarSignal && moveDirect == 1) { |
| | | checkStartCarSignal = true; |
| | |
| | | DEBUG("变调未打灯!!"); |
| | | // 没打灯,不合格 |
| | | AddExamFault(13, rtkTime); |
| | | } else if (TimeGetDiff(rtkTime, &sensor.time) >= D_SEC(3)) { |
| | | } else if (TimeGetDiff(rtkTime, &sensor.time) < D_SEC(3)) { |
| | | DEBUG("转向灯时间不足"); |
| | | // 不足3秒,不合格 |
| | | AddExamFault(14, rtkTime); |
| | |
| | | #include "../jni_log.h" |
| | | #include "../driver_test.h" |
| | | |
| | | #define DEBUG(fmt, args...) LOGD("<change_lane> <%s>: " fmt, __func__, ##args) |
| | | #define DEBUG(fmt, args...) LOGD("<road_exam change_lane> <%s>: " fmt, __func__, ##args) |
| | | |
| | | static double maxMoveDistance; |
| | | static int originalLane; |
| | |
| | | #include "../test_common/odo_graph.h" |
| | | #include <cmath> |
| | | |
| | | #define DEBUG(fmt, args...) LOGD("<drive_straight> <%s>: " fmt, __func__, ##args) |
| | | #define DEBUG(fmt, args...) LOGD("<road_exam drive_straight> <%s>: " fmt, __func__, ##args) |
| | | |
| | | static const double CHECK_STAGE_DISTANCE = 100.0; |
| | | static const double MAX_OFFSET_DISTANCE = 0.3; |
| | |
| | | #include "../jni_log.h" |
| | | #include "../test_common/car_sensor.h" |
| | | |
| | | #define DEBUG(fmt, args...) LOGD("<dummy_light> <%s>: " fmt, __func__, ##args) |
| | | #define DEBUG(fmt, args...) LOGD("<road_exam dummy_light> <%s>: " fmt, __func__, ##args) |
| | | |
| | | enum { |
| | | TTS_NOT_START, |
| | |
| | | #include "../test_common/odo_graph.h" |
| | | #include "road_exam.h" |
| | | |
| | | #define DEBUG(fmt, args...) LOGD("<operate_gear> <%s>: " fmt, __func__, ##args) |
| | | #define DEBUG(fmt, args...) LOGD("<road_exam operate_gear> <%s>: " fmt, __func__, ##args) |
| | | |
| | | static int expectGear; |
| | | static int upDownShift; |
| | |
| | | #include "../test_common/odo_graph.h" |
| | | #include "../driver_test.h" |
| | | |
| | | #define DEBUG(fmt, args...) LOGD("<overtake> <%s>: " fmt, __func__, ##args) |
| | | #define DEBUG(fmt, args...) LOGD("<road_exam overtake> <%s>: " fmt, __func__, ##args) |
| | | |
| | | static double maxMoveDistance; |
| | | static int setup; |
| | |
| | | #include "../defs.h" |
| | | #include "../test_common/odo_graph.h" |
| | | |
| | | #define DEBUG(fmt, args...) LOGD("<stop_car> <%s>: " fmt, __func__, ##args) |
| | | #define DEBUG(fmt, args...) LOGD("<road_exam stop_car> <%s>: " fmt, __func__, ##args) |
| | | |
| | | static bool BreakHandbreakReleaseSametime, OpenDoor; |
| | | |
| | |
| | | DEBUG("停车超出路边0.3米"); |
| | | // 停车距离超过30厘米,扣10分 |
| | | AddExamFault(37, rtkTime); |
| | | return false; |
| | | } |
| | | |
| | | setup = 4; |
| | |
| | | #include "road_exam.h" |
| | | #include "../utils/xconvert.h" |
| | | |
| | | #define DEBUG(fmt, args...) LOGD("<through_something> <%s>: " fmt, __func__, ##args) |
| | | #define DEBUG(fmt, args...) LOGD("<road_exam through_something> <%s>: " fmt, __func__, ##args) |
| | | |
| | | using namespace std; |
| | | |
| | |
| | | } |
| | | // 记录刹车 |
| | | if (dobreak && !(rec & REDUCE_SPEED)) { |
| | | DEBUG("检测到路口刹车动作"); |
| | | SetTargetReduceRec(TargetReduceRec, key, rec | REDUCE_SPEED); |
| | | } |
| | | } else if (distance > 1e-3 && distance < DISTANCE_STOP_CAR_TO_STOP_LINE) { |
| | | // 路口停车观察 |
| | | if (moveDirect == 0 && !(rec & STOP_CAR)) { |
| | | DEBUG("检测到路口停车动作"); |
| | | SetTargetReduceRec(TargetReduceRec, key, rec | STOP_CAR); |
| | | } |
| | | } else if (distance > LASTEST_BREAK_POINT + 5 && rec != NOT_ENTER) { |
| | |
| | | } |
| | | // 记录刹车,停车 |
| | | if (dobreak && !(rec & REDUCE_SPEED)) { |
| | | DEBUG("检测到人行道等刹车动作"); |
| | | SetTargetReduceRec(TargetReduceRec2, key, rec | REDUCE_SPEED); |
| | | } |
| | | } else if (distance1 > LASTEST_BREAK_POINT + 5 && rec != NOT_ENTER) { |