From 6e0f29b08a040d14576d7053c1206a8439936570 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期二, 24 十一月 2020 14:18:03 +0800 Subject: [PATCH] 坐标 --- lib/src/main/cpp/master/comm_if.cpp | 77 +++++++++++++++++++++++++++++++++++--- 1 files changed, 70 insertions(+), 7 deletions(-) diff --git a/lib/src/main/cpp/master/comm_if.cpp b/lib/src/main/cpp/master/comm_if.cpp index 3c01860..4ea6f8b 100644 --- a/lib/src/main/cpp/master/comm_if.cpp +++ b/lib/src/main/cpp/master/comm_if.cpp @@ -41,6 +41,7 @@ #define ID_MS_ROAD_MAP2 0x8013 #define ID_MS_SCHEME 0x8017 #define ID_MS_EXAM_PARAM 0x8019 +#define ID_MS_BLUETOOTH_NAME 0x8020 #define ID_SM_READ_CAR 0x0007 #define ID_MS_CAR 0x8007 @@ -71,6 +72,7 @@ #define ID_MS_INQ_ROAD_CROSSING 0x8018 // Master鏌ヨ褰撳墠璺鍜岃矾鍙� #define ID_SM_CAN_BRIEF 0x0021 +#define ID_SM_BLUETOOTH_BRIEF 0x0022 #define MA_OUT_GPS_BRIEF 0x0001 #define MA_OUT_RTK_BRIEF 0x0002 @@ -1290,6 +1292,9 @@ case ID_MS_SCHEME: { Document doc; doc.Parse(value); + + DEBUG("鏂规 %s", value); + if (!doc.HasParseError()) { DEBUG("寮�濮嬭В鏋愯矾鑰冩柟妗�"); vector<scheme_t> schemes; @@ -1379,87 +1384,104 @@ if (doc.HasMember("hold_start_key_limit_time")) { const Value &a = doc["hold_start_key_limit_time"]; examParam.hold_start_key_limit_time = a.GetInt(); + DEBUG("hold_start_key_limit_time = %d", examParam.hold_start_key_limit_time); } if (doc.HasMember("curve_pause_criteria")) { const Value &a = doc["curve_pause_criteria"]; examParam.curve_pause_criteria = a.GetInt(); + DEBUG("curve_pause_criteria = %d", examParam.curve_pause_criteria); } if (doc.HasMember("park_bottom_pause_criteria")) { const Value &a = doc["park_bottom_pause_criteria"]; examParam.park_bottom_pause_criteria = a.GetInt(); + DEBUG("park_bottom_pause_criteria = %d", examParam.park_bottom_pause_criteria); } if (doc.HasMember("park_bottom_limit_time")) { const Value &a = doc["park_bottom_limit_time"]; examParam.park_bottom_limit_time = D_SEC(a.GetInt()); + DEBUG("park_bottom_limit_time = %d", examParam.park_bottom_limit_time); } if (doc.HasMember("park_edge_pause_criteria")) { const Value &a = doc["park_edge_pause_criteria"]; examParam.park_edge_pause_criteria = a.GetInt(); + DEBUG("park_edge_pause_criteria = %d", examParam.park_edge_pause_criteria); } if (doc.HasMember("park_edge_limit_time")) { const Value &a = doc["park_edge_limit_time"]; examParam.park_edge_limit_time = D_SEC(a.GetInt()); + DEBUG("park_edge_limit_time = %d", examParam.park_edge_limit_time); } if (doc.HasMember("turn_a90_pause_criteria")) { const Value &a = doc["turn_a90_pause_criteria"]; examParam.turn_a90_pause_criteria = a.GetInt(); + DEBUG("turn_a90_pause_criteria = %d", examParam.turn_a90_pause_criteria); } if (doc.HasMember("ramp_stoppoint_red_distance")) { const Value &a = doc["ramp_stoppoint_red_distance"]; examParam.ramp_stoppoint_red_distance = a.GetDouble(); + DEBUG("ramp_stoppoint_red_distance = %f", examParam.ramp_stoppoint_red_distance); } if (doc.HasMember("ramp_edge_yellow_distance")) { const Value &a = doc["ramp_edge_yellow_distance"]; examParam.ramp_edge_yellow_distance = a.GetDouble(); + DEBUG("ramp_edge_yellow_distance = %f", examParam.ramp_edge_yellow_distance); } if (doc.HasMember("ramp_edge_red_distance")) { const Value &a = doc["ramp_edge_red_distance"]; examParam.ramp_edge_red_distance = a.GetDouble(); + DEBUG("ramp_edge_red_distance = %f", examParam.ramp_edge_red_distance); } if (doc.HasMember("ramp_slide_yellow_distance")) { const Value &a = doc["ramp_slide_yellow_distance"]; examParam.ramp_slide_yellow_distance = a.GetDouble(); + DEBUG("ramp_slide_yellow_distance = %f", examParam.ramp_slide_yellow_distance); } if (doc.HasMember("ramp_slide_red_distance")) { const Value &a = doc["ramp_slide_red_distance"]; examParam.ramp_slide_red_distance = a.GetDouble(); + DEBUG("ramp_slide_red_distance = %f", examParam.ramp_slide_red_distance); } if (doc.HasMember("ramp_start_car_limit_time")) { const Value &a = doc["ramp_start_car_limit_time"]; examParam.ramp_start_car_limit_time = D_SEC(a.GetInt()); + DEBUG("ramp_start_car_limit_time = %d", examParam.ramp_start_car_limit_time); } if (doc.HasMember("road_slide_yellow_distance")) { const Value &a = doc["road_slide_yellow_distance"]; examParam.road_slide_yellow_distance = a.GetDouble(); + DEBUG("road_slide_yellow_distance = %f", examParam.road_slide_yellow_distance); } double road_slide_red_distance; if (doc.HasMember("road_slide_red_distance")) { const Value &a = doc["road_slide_red_distance"]; examParam.road_slide_red_distance = a.GetDouble(); + DEBUG("road_slide_red_distance = %f", examParam.road_slide_red_distance); } if (doc.HasMember("road_total_distance")) { const Value &a = doc["road_total_distance"]; - examParam.road_total_distance = a.GetDouble(); + examParam.road_total_distance = a.GetInt(); + DEBUG("road_total_distance = %d", examParam.road_total_distance); } if (doc.HasMember("road_max_speed")) { const Value &a = doc["road_max_speed"]; examParam.road_max_speed = a.GetInt(); + DEBUG("road_max_speed = %d", examParam.road_max_speed); } if (doc.HasMember("gear_speed_table")) { @@ -1467,12 +1489,17 @@ int m = 0, n = 0; - for (Value::ConstValueIterator itr = a.Begin(); - itr != a.End() && m < 6; ++itr, ++m) { - n = 0; - for (Value::ConstValueIterator itr2 = (*itr).Begin(); - itr2 != (*itr).End() && n < 2; ++itr2, ++n) { - examParam.gear_speed_table[m][n] = (*itr2).GetInt(); + if (a.IsArray()) { + for (Value::ConstValueIterator itr = a.Begin(); + itr != a.End() && m < 6; ++itr, ++m) { + n = 0; + if ((*itr).IsArray()) { + for (Value::ConstValueIterator itr2 = (*itr).Begin(); + itr2 != (*itr).End() && n < 2; ++itr2, ++n) { + examParam.gear_speed_table[m][n] = (*itr2).GetInt(); + DEBUG("gear_speed_table[%d][%d] = %d", m, n, examParam.gear_speed_table[m][n]); + } + } } } } @@ -1480,118 +1507,141 @@ if (doc.HasMember("gear_n_allow_time")) { const Value &a = doc["gear_n_allow_time"]; examParam.gear_n_allow_time = D_SEC(a.GetInt()); + DEBUG("gear_n_allow_time = %d", examParam.gear_n_allow_time); } if (doc.HasMember("same_gear_min_time")) { const Value &a = doc["same_gear_min_time"]; examParam.same_gear_min_time = D_SEC(a.GetInt()); + DEBUG("same_gear_min_time = %d", examParam.same_gear_min_time); } if (doc.HasMember("gear_speed_error_cumulative_time")) { const Value &a = doc["gear_speed_error_cumulative_time"]; examParam.gear_speed_error_cumulative_time = D_SEC(a.GetInt()); + DEBUG("gear_speed_error_cumulative_time = %d", examParam.gear_speed_error_cumulative_time); } if (doc.HasMember("road_pause_criteria")) { const Value &a = doc["road_pause_criteria"]; examParam.road_pause_criteria = a.GetInt(); + DEBUG("road_pause_criteria = %d", examParam.road_pause_criteria); } if (doc.HasMember("continuous_change_lane_min_time")) { const Value &a = doc["continuous_change_lane_min_time"]; examParam.continuous_change_lane_min_time = D_SEC(a.GetInt()); + DEBUG("continuous_change_lane_min_time = %d", examParam.continuous_change_lane_min_time); } if (doc.HasMember("crash_dotted_line_cumulative_time")) { const Value &a = doc["crash_dotted_line_cumulative_time"]; examParam.crash_dotted_line_cumulative_time = D_SEC(a.GetInt()); + DEBUG("crash_dotted_line_cumulative_time = %d", examParam.crash_dotted_line_cumulative_time); } if (doc.HasMember("turn_signal_min_advance")) { const Value &a = doc["turn_signal_min_advance"]; examParam.turn_signal_min_advance = D_SEC(a.GetInt()); + DEBUG("turn_signal_min_advance = %d", examParam.turn_signal_min_advance); } if (doc.HasMember("start_car_max_rpm")) { const Value &a = doc["start_car_max_rpm"]; examParam.start_car_max_rpm = a.GetInt(); + DEBUG("start_car_max_rpm = %d", examParam.start_car_max_rpm); } if (doc.HasMember("start_car_limit_distance")) { const Value &a = doc["start_car_limit_distance"]; examParam.start_car_limit_distance = a.GetInt(); + DEBUG("start_car_limit_distance = %d", examParam.start_car_limit_distance); } if (doc.HasMember("open_door_drive_allow_distance")) { const Value &a = doc["open_door_drive_allow_distance"]; examParam.open_door_drive_allow_distance = a.GetDouble(); + DEBUG("open_door_drive_allow_distance = %f", examParam.open_door_drive_allow_distance); } if (doc.HasMember("change_lane_limit_distance")) { const Value &a = doc["change_lane_limit_distance"]; examParam.change_lane_limit_distance = a.GetInt(); + DEBUG("change_lane_limit_distance = %d", examParam.change_lane_limit_distance); } if (doc.HasMember("shift_limit_distance")) { const Value &a = doc["shift_limit_distance"]; examParam.shift_limit_distance = a.GetInt(); + DEBUG("shift_limit_distance = %d", examParam.shift_limit_distance); } if (doc.HasMember("shift_hold_time")) { const Value &a = doc["shift_hold_time"]; examParam.shift_hold_time = D_SEC(a.GetInt()); + DEBUG("shift_hold_time = %d", examParam.shift_hold_time); } int straight_limit_distance; if (doc.HasMember("straight_limit_distance")) { const Value &a = doc["straight_limit_distance"]; examParam.straight_limit_distance = a.GetInt(); + DEBUG("straight_limit_distance = %d", examParam.straight_limit_distance); } if (doc.HasMember("straight_max_offset")) { const Value &a = doc["straight_max_offset"]; examParam.straight_max_offset = a.GetDouble(); + DEBUG("straight_max_offset = %f", examParam.straight_max_offset); } if (doc.HasMember("overtake_limit_distance")) { const Value &a = doc["overtake_limit_distance"]; examParam.overtake_limit_distance = a.GetInt(); + DEBUG("overtake_limit_distance = %d", examParam.overtake_limit_distance); } if (doc.HasMember("stop_car_limit_distance")) { const Value &a = doc["stop_car_limit_distance"]; examParam.stop_car_limit_distance = a.GetInt(); + DEBUG("stop_car_limit_distance = %d", examParam.stop_car_limit_distance); } if (doc.HasMember("stop_car_open_door_allow_time")) { const Value &a = doc["stop_car_open_door_allow_time"]; examParam.stop_car_open_door_allow_time = D_SEC(a.GetInt()); + DEBUG("stop_car_open_door_allow_time = %d", examParam.stop_car_open_door_allow_time); } if (doc.HasMember("stop_car_edge_red_distance")) { const Value &a = doc["stop_car_edge_red_distance"]; examParam.stop_car_edge_red_distance = a.GetDouble(); + DEBUG("stop_car_edge_red_distance = %f", examParam.stop_car_edge_red_distance); } if (doc.HasMember("stop_car_edge_yellow_distance")) { const Value &a = doc["stop_car_edge_yellow_distance"]; examParam.stop_car_edge_yellow_distance = a.GetDouble(); + DEBUG("stop_car_edge_yellow_distance = %f", examParam.stop_car_edge_yellow_distance); } if (doc.HasMember("crossing_stop_valid_distance")) { const Value &a = doc["crossing_stop_valid_distance"]; examParam.crossing_stop_valid_distance = a.GetDouble(); + DEBUG("crossing_stop_valid_distance = %f", examParam.crossing_stop_valid_distance); } if (doc.HasMember("cross_school_max_speed")) { const Value &a = doc["cross_school_max_speed"]; examParam.cross_school_max_speed = a.GetInt(); + DEBUG("cross_school_max_speed = %d", examParam.cross_school_max_speed); } if (doc.HasMember("crossing_break_valid_distance")) { const Value &a = doc["crossing_break_valid_distance"]; examParam.crossing_break_valid_distance = a.GetInt(); + DEBUG("crossing_break_valid_distance = %d", examParam.crossing_break_valid_distance); } } break; @@ -1975,3 +2025,16 @@ { SendMsgToMainProcIndep(ID_SM_LIGHT_EXAM_REQ, NULL); } + +void MA_SendBlueStatus(int status) +{ + StringBuffer sb; + Writer<StringBuffer> writer(sb); + + writer.StartObject(); + writer.Key("bluetooth_status"); + writer.Int(status); + writer.EndObject(); + + SendMsgToMainProcIndep(ID_SM_BLUETOOTH_BRIEF, sb.GetString()); +} -- Gitblit v1.8.0