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