From edc694498e7ca9a0475bbf5576729aedfc88d3f0 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期一, 13 一月 2020 14:04:50 +0800
Subject: [PATCH] s
---
lib/src/main/cpp/master/comm_if.cpp | 95 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/lib/src/main/cpp/master/comm_if.cpp b/lib/src/main/cpp/master/comm_if.cpp
index ee203d4..360227d 100644
--- a/lib/src/main/cpp/master/comm_if.cpp
+++ b/lib/src/main/cpp/master/comm_if.cpp
@@ -11,6 +11,7 @@
#include "../rtk_platform/platform.h"
#include "../utils/xconvert.h"
#include "../driver_test.h"
+#include "../defs.h"
#include <string>
#include <iostream>
@@ -33,9 +34,14 @@
#define ID_MS_SENSOR_CFG 0x8008
#define ID_MS_START_EXAM 0x8009
#define ID_SM_EXAM_STATUS 0x0009
+#define ID_MS_IND_ONOFF 0x800A
#define ID_SM_GPS_BRIEF 0x000A
#define ID_SM_RTK_BRIEF 0x000B
#define ID_SM_EXAM_BRIEF 0x000C
+#define ID_SM_ENTER_MAP 0x000D
+#define ID_SM_CAR 0x000E
+
+static int OnOff = 0;
void MA_NdkStart(void)
{
@@ -136,6 +142,9 @@
void MA_SendGpsBrief(const struct gpsBrief *brief)
{
+ if (!(OnOff & BV(0)))
+ return;
+
StringBuffer sb;
Writer<StringBuffer> writer(sb);
@@ -163,6 +172,9 @@
void MA_SendRtkBrief(const struct rtkBrief *brief)
{
+ if (!(OnOff & BV(1)))
+ return;
+
char a[2] = {brief->coord_x_dir, 0};
char b[2] = {brief->coord_y_dir, 0};
@@ -197,6 +209,76 @@
void MA_SendExamWrong(vector<int>&err)
{
+}
+
+void MA_SendCarPosition(const struct carBrief *brief)
+{
+ if (!(OnOff & BV(2))) return;
+
+ StringBuffer sb;
+ Writer<StringBuffer> writer(sb);
+
+ writer.StartObject();
+
+ writer.Key("utc");
+ writer.String(brief->utc);
+ writer.Key("qf");
+ writer.Int(brief->qf);
+ writer.Key("map_id");
+ writer.Int(brief->map_id);
+ writer.Key("move");
+ writer.Int(brief->move);
+ writer.Key("speed");
+ writer.Double(brief->speed);
+ writer.Key("heading");
+ writer.Double(brief->heading);
+
+ writer.Key("main_ant");
+ writer.StartArray();
+ writer.Double(brief->main_ant[0]);
+ writer.Double(brief->main_ant[1]);
+ writer.EndArray();
+
+ writer.Key("axial");
+ writer.StartArray();
+ writer.Int(brief->axial[0]);
+ writer.Int(brief->axial[1]);
+ writer.EndArray();
+
+ writer.Key("left_front_tire");
+ writer.StartArray();
+ writer.Int(brief->left_front_tire[0]);
+ writer.Int(brief->left_front_tire[1]);
+ writer.EndArray();
+
+ writer.Key("right_front_tire");
+ writer.StartArray();
+ writer.Int(brief->right_front_tire[0]);
+ writer.Int(brief->right_front_tire[1]);
+ writer.EndArray();
+
+ writer.Key("left_rear_tire");
+ writer.StartArray();
+ writer.Int(brief->left_rear_tire[0]);
+ writer.Int(brief->left_rear_tire[1]);
+ writer.EndArray();
+
+ writer.Key("right_rear_tire");
+ writer.StartArray();
+ writer.Int(brief->right_rear_tire[0]);
+ writer.Int(brief->right_rear_tire[1]);
+ writer.EndArray();
+
+ writer.Key("point");
+ writer.StartArray();
+ for (int i = 0; i < brief->pointNum; ++i) {
+ writer.Double(brief->point[i*2]);
+ writer.Double(brief->point[i*2+1]);
+ }
+ writer.EndArray();
+ writer.EndObject();
+
+ SendMsgToMainProc(ID_SM_CAR, sb.GetString());
}
void MA_MainProcMsgEntry(int cmd, const char *value)
@@ -461,6 +543,19 @@
}
break;
}
+ case ID_MS_IND_ONOFF: {
+ Document doc;
+ doc.Parse(value);
+ if (!doc.HasParseError()) {
+ if (doc.HasMember("on_off")) {
+ Value& s = doc["on_off"];
+ do {
+ OnOff = s.GetInt();
+ } while (OnOff != s.GetInt());
+ }
+ }
+ break;
+ }
default:break;
}
}
--
Gitblit v1.8.0