From eced3d013f06b623a49cb9deaba42218c4e37bb8 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期三, 15 一月 2020 10:56:05 +0800 Subject: [PATCH] update --- lib/src/main/cpp/master/comm_if.cpp | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 57 insertions(+), 2 deletions(-) diff --git a/lib/src/main/cpp/master/comm_if.cpp b/lib/src/main/cpp/master/comm_if.cpp index 578b2e5..9f379ef 100644 --- a/lib/src/main/cpp/master/comm_if.cpp +++ b/lib/src/main/cpp/master/comm_if.cpp @@ -12,10 +12,14 @@ #include "../utils/xconvert.h" #include "../driver_test.h" #include "../defs.h" +#include "../common/apptimer.h" +#include "../jni_log.h" #include <string> #include <iostream> #include <vector> + +#define DEBUG(fmt, args...) LOGD("<comm_if> <%s>: " fmt, __func__, ##args) using namespace rapidjson; using namespace std; @@ -207,9 +211,36 @@ SendMsgToMainProc(ID_SM_RTK_BRIEF, sb.GetString()); } -void MA_SendExamWrong(vector<int>&err) +void MA_SendExamWrong(vector<ExamFault> &ExamFaultList) { + StringBuffer sb; + Writer<StringBuffer> writer(sb); + writer.StartArray(); + + for (int i = 0; i < 3; ++i) { + writer.StartObject(); // Between StartObject()/EndObject(), + writer.Key("wrong_id"); // output a key, + writer.Int(i+1); + writer.EndObject(); + } + + for (vector<ExamFault>::iterator iter = ExamFaultList.begin(); iter != ExamFaultList.end(); ++iter) { + writer.StartObject(); + + writer.Key("sn"); + writer.Int(iter->sn); + writer.Key("utc"); + writer.String(iter->utc); + writer.Key("wrong_id"); + writer.Int(iter->wrong_id); + + writer.EndObject(); + } + + writer.EndArray(); + + SendMsgToMainProc(ID_SM_EXAM_BRIEF, sb.GetString()); } void MA_SendCarPosition(const struct carBrief *brief) @@ -270,6 +301,13 @@ writer.Int(brief->right_rear_tire[1]); writer.EndArray(); + writer.Key("body"); + writer.StartArray(); + for (int i = 0; i < brief->bodyNum; ++i) { + writer.Int(brief->body[i]); + } + writer.EndArray(); + writer.Key("point"); writer.StartArray(); for (int i = 0; i < brief->pointNum; ++i) { @@ -279,7 +317,9 @@ writer.EndArray(); writer.EndObject(); + uint32_t a = AppTimer_GetTickCount(); SendMsgToMainProc(ID_SM_CAR, sb.GetString()); + DEBUG("鑰楁椂 %ld", AppTimer_GetTickCount() - a); } void MA_MainProcMsgEntry(int cmd, const char *value) @@ -421,6 +461,8 @@ if (!doc.HasParseError()) { double basePoint[2]; int axial[2], left_front_tire[2], right_front_tire[2], left_rear_tire[2], right_rear_tire[2]; + int bodyNum = 0; + int *body = NULL; int pointNum = 0; double (*point)[2] = NULL; @@ -484,6 +526,18 @@ } } + if (doc.HasMember("body")) { + const Value& s = doc["body"]; + if (s.IsArray()) { + int i = 0; + bodyNum = s.Size(); + body = new int[bodyNum]; + for(Value::ConstValueIterator itr = s.Begin(); itr != s.End(); ++itr) { + body[i++] = itr->GetInt(); + } + } + } + if (doc.HasMember("point")) { const Value& s = doc["point"]; if (s.IsArray()) { @@ -503,8 +557,9 @@ } SetCarMeasurePoint(basePoint, axial, left_front_tire, right_front_tire, - left_rear_tire, right_rear_tire, point, pointNum); + left_rear_tire, right_rear_tire, body, bodyNum, point, pointNum); + if (body != NULL) delete []body; if (point != NULL) delete []point; } break; -- Gitblit v1.8.0