From 2dd405a64e0a6e468a205e7348520e87576e5358 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期一, 09 三月 2020 17:13:12 +0800
Subject: [PATCH] 更新地图

---
 lib/src/main/cpp/master/comm_if.cpp |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/lib/src/main/cpp/master/comm_if.cpp b/lib/src/main/cpp/master/comm_if.cpp
index 3ee83da..5b64329 100644
--- a/lib/src/main/cpp/master/comm_if.cpp
+++ b/lib/src/main/cpp/master/comm_if.cpp
@@ -53,6 +53,8 @@
 #define ID_MS_READ_CARD         0x8011
 #define ID_SM_PUT_CARD          0x0011
 #define ID_MS_SYS_SHUTDOWN      0x8010
+#define ID_SM_LIGHT_EXAM_REQ    0x0012
+#define ID_MS_LIGHT_EXAM_RES    0x8012
 
 #define MA_OUT_GPS_BRIEF        0x0001
 #define MA_OUT_RTK_BRIEF        0x0002
@@ -708,10 +710,16 @@
             Document doc;
             doc.Parse(value);
             if (!doc.HasParseError()) {
+                int start = 0, type = 0;
                 if (doc.HasMember("exam")) {
                     Value& s = doc["exam"];
-                    StartDriverExam(s.GetInt());
+                    start = s.GetInt();
                 }
+                if (doc.HasMember("type")) {
+                    Value& s = doc["type"];
+                    type = s.GetInt();
+                }
+                StartDriverExam(start, type);
             }
             break;
         }
@@ -763,6 +771,39 @@
             }
             break;
         }
+        case ID_MS_LIGHT_EXAM_RES: {
+            Document doc;
+            doc.Parse(value);
+            if (!doc.HasParseError()) {
+                if (doc.HasMember("exam")) {
+                    const Value& s = doc["exam"];
+                    s.GetInt();
+                }
+                if (doc.HasMember("question")) {
+                    const Value& s = doc["question"];
+                    if (s.IsArray() && s.Size() > 0) {
+                        int n = 0;
+                        struct dummy_light_exam *content = new struct dummy_light_exam[s.Size()];
+
+                        for(Value::ConstValueIterator itr = s.Begin(); itr != s.End(); ++itr) {
+                            if (itr->HasMember("item") && itr->HasMember("tts")) {
+                                const Value &s1 = (*itr)["item"];
+                                const Value &s2 = (*itr)["tts"];
+
+                                content[n].item = s1.GetInt();
+                                strcpy(content[n].tts, s1.GetString());
+                                n++;
+                            }
+                        }
+
+                        SetDummyLightExam(n, content);
+
+                        delete []content;
+                    }
+                }
+            }
+            break;
+        }
         default:break;
     }
 }
@@ -779,7 +820,7 @@
     }
 }
 
-void MA_EnterMap(int map_id, int enter)
+void MA_EnterMap(int map_id, int type, int enter)
 {
     StringBuffer sb;
     Writer<StringBuffer> writer(sb);
@@ -787,9 +828,16 @@
     writer.StartObject();
     writer.Key("map_id");
     writer.Int(map_id);
+    writer.Key("type");
+    writer.Int(type);
     writer.Key("enter");
     writer.Int(enter);
     writer.EndObject();
 
     SendMsgToMainProc(ID_SM_ENTER_MAP, sb.GetString());
 }
+
+void MA_ExamLight(void)
+{
+    SendMsgToMainProc(ID_SM_LIGHT_EXAM_REQ, NULL);
+}

--
Gitblit v1.8.0