From c64da51ae481dfc2a25e5a6e39bb94f22d65428a Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期五, 10 一月 2020 13:33:09 +0800
Subject: [PATCH] s
---
lib/src/main/cpp/master/comm_if.cpp | 95 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 93 insertions(+), 2 deletions(-)
diff --git a/lib/src/main/cpp/master/comm_if.cpp b/lib/src/main/cpp/master/comm_if.cpp
index 5301d23..ee203d4 100644
--- a/lib/src/main/cpp/master/comm_if.cpp
+++ b/lib/src/main/cpp/master/comm_if.cpp
@@ -14,8 +14,10 @@
#include <string>
#include <iostream>
+#include <vector>
using namespace rapidjson;
+using namespace std;
#define ID_SM_NDK_START 0x0001
#define ID_SM_REQ_RTK_PLAT_CFG 0x0002
@@ -33,7 +35,7 @@
#define ID_SM_EXAM_STATUS 0x0009
#define ID_SM_GPS_BRIEF 0x000A
#define ID_SM_RTK_BRIEF 0x000B
-#define ID_SM_EXAM_BRIEF 0x000B
+#define ID_SM_EXAM_BRIEF 0x000C
void MA_NdkStart(void)
{
@@ -113,6 +115,88 @@
void MA_ReadSensor(void)
{
SendMsgToMainProc(ID_SM_READ_SENSOR_CFG, NULL);
+}
+
+void MA_SendExamStatus(int start, int errorCode)
+{
+ StringBuffer sb;
+ Writer<StringBuffer> writer(sb);
+
+ writer.StartObject();
+
+ writer.Key("exam");
+ writer.Int(start);
+ writer.Key("error");
+ writer.Int(errorCode);
+
+ writer.EndObject();
+
+ SendMsgToMainProc(ID_SM_EXAM_STATUS, sb.GetString());
+}
+
+void MA_SendGpsBrief(const struct gpsBrief *brief)
+{
+ StringBuffer sb;
+ Writer<StringBuffer> writer(sb);
+
+ writer.StartObject();
+
+ writer.Key("utc");
+ writer.String(brief->utc);
+ writer.Key("sat_num");
+ writer.Int(brief->sat_num);
+ writer.Key("qf");
+ writer.Int(brief->qf);
+ writer.Key("latitude");
+ writer.Double(brief->latitude);
+ writer.Key("longitude");
+ writer.Double(brief->longitude);
+ writer.Key("altitude");
+ writer.Double(brief->altitude);
+ writer.Key("speed");
+ writer.Double(brief->speed);
+
+ writer.EndObject();
+
+ SendMsgToMainProc(ID_SM_GPS_BRIEF, sb.GetString());
+}
+
+void MA_SendRtkBrief(const struct rtkBrief *brief)
+{
+ char a[2] = {brief->coord_x_dir, 0};
+ char b[2] = {brief->coord_y_dir, 0};
+
+ StringBuffer sb;
+ Writer<StringBuffer> writer(sb);
+
+ writer.StartObject();
+
+ writer.Key("utc");
+ writer.String(brief->utc);
+ writer.Key("qf");
+ writer.Int(brief->qf);
+ writer.Key("coord_x");
+ writer.Double(brief->coord_x);
+ writer.Key("coord_x_dir");
+ writer.String(a);
+ writer.Key("coord_y");
+ writer.Double(brief->coord_y);
+ writer.Key("coord_y_dir");
+ writer.String(b);
+ writer.Key("heading");
+ writer.Double(brief->heading);
+ writer.Key("pitch");
+ writer.Double(brief->pitch);
+ writer.Key("roll");
+ writer.Double(brief->roll);
+ writer.EndObject();
+
+ SendMsgToMainProc(ID_SM_RTK_BRIEF, sb.GetString());
+}
+
+void MA_SendExamWrong(vector<int>&err)
+{
+
}
void MA_MainProcMsgEntry(int cmd, const char *value)
@@ -367,7 +451,14 @@
break;
}
case ID_MS_START_EXAM: {
-
+ Document doc;
+ doc.Parse(value);
+ if (!doc.HasParseError()) {
+ if (doc.HasMember("exam")) {
+ Value& s = doc["exam"];
+ StartDriverExam(s.GetInt());
+ }
+ }
break;
}
default:break;
--
Gitblit v1.8.0