From 4581cc42ba485366603ca8e3f61183f6a50ad72f Mon Sep 17 00:00:00 2001
From: fctom1215 <fctom1215@outlook.com>
Date: 星期五, 21 二月 2020 17:18:30 +0800
Subject: [PATCH] GPS信息合并到RTK中,以RTK包,发送
---
lib/src/main/cpp/master/comm_if.h | 1
lib/src/main/cpp/driver_test.cpp | 17 ++++++++
lib/src/main/cpp/mcu/mcu_if.h | 1
lib/src/main/cpp/master/comm_if.cpp | 48 ++++++++++++++++++++++++
lib/src/main/cpp/test_items/comm_test.cpp | 2
lib/src/main/cpp/driver_test.h | 2 +
lib/src/main/cpp/mcu/mcu_if.cpp | 8 ++++
7 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/lib/src/main/cpp/driver_test.cpp b/lib/src/main/cpp/driver_test.cpp
index 4c7cf51..a78aa18 100644
--- a/lib/src/main/cpp/driver_test.cpp
+++ b/lib/src/main/cpp/driver_test.cpp
@@ -359,14 +359,17 @@
{
bool err = false;
- DEBUG("StartDriverExam %d", start);
if (start == 0) {
+ DEBUG("-------------缁撴潫鑰冭瘯----------------");
+
CurrExamMapIndex = -1;
TestStart = false;
CommTestStart(false);
MA_SendExamStatus(0, 0);
return;
}
+
+ DEBUG("+++++++++++++++寮�濮嬭�冭瘯++++++++++++++++++++");
if (MapNum == 0) {
err = true;
@@ -977,6 +980,18 @@
double tx = carModel->carDesc[i].distance*sin(toRadians(azimuth));
double ty = carModel->carDesc[i].distance*cos(toRadians(azimuth));
+// double qrx = carModel->carDesc[i].distance * sin(toRadians(carModel->carDesc[i].angle));
+// double qry = carModel->carDesc[i].distance * cos(toRadians(carModel->carDesc[i].angle)) * cos(toRadians(pitch));
+//
+// double projDis = sqrt(pow(qrx, 2) + pow(pry, 2));
+// double projAng;
+//
+// if (fabs(qry) <= EPSILON) {
+// projAng = 90;
+// } else {
+// projAng = toDegree(atan(qrx / qry));
+// }
+
carModel->carXY[i].X = (tx)*cos(toRadians(carModel->carDesc[i].angle)) -
(ty)*sin(toRadians(carModel->carDesc[i].angle)) + main_ant.X;
carModel->carXY[i].Y = (tx)*sin(toRadians(carModel->carDesc[i].angle)) +
diff --git a/lib/src/main/cpp/driver_test.h b/lib/src/main/cpp/driver_test.h
index 1e66de9..356f30f 100644
--- a/lib/src/main/cpp/driver_test.h
+++ b/lib/src/main/cpp/driver_test.h
@@ -87,9 +87,11 @@
void FindSensorCfg(int func, int &gpio, bool &lvl);
void StartDriverExam(int start);
+void StartMapExam(int map_id, int exam);
void GetRtkClock(struct RtkTime *s);
void UpdateRTKInfo(const rtk_info *s);
void AddExamFault(int wrong, const struct RtkTime *rtkTime);
car_model_cache_t *GetCarModelCache(int node);
+void SystemShutdown(int event, int timeout);
#endif //RTKDRIVERTEST_DRIVER_TEST_H
diff --git a/lib/src/main/cpp/master/comm_if.cpp b/lib/src/main/cpp/master/comm_if.cpp
index e6252c9..c4bc105 100644
--- a/lib/src/main/cpp/master/comm_if.cpp
+++ b/lib/src/main/cpp/master/comm_if.cpp
@@ -45,12 +45,14 @@
#define ID_SM_RTK_BRIEF 0x000B
#define ID_SM_EXAM_BRIEF 0x000C
#define ID_SM_ENTER_MAP 0x000D
+#define ID_MS_EXAM_MAP 0x800D
#define ID_SM_CAR 0x000E
#define ID_SM_RTCM_IND 0x000F
#define ID_SM_DEBUG_INFO 0x0010
#define ID_MS_FILE 0x8100
#define ID_MS_READ_CARD 0x800F
#define ID_SM_PUT_CARD 0x000F
+#define ID_MS_SYS_SHUTDOWN 0x8010
#define MA_OUT_GPS_BRIEF 0x0001
#define MA_OUT_RTK_BRIEF 0x0002
@@ -706,6 +708,19 @@
}
break;
}
+ case ID_MS_EXAM_MAP: {
+ Document doc;
+ doc.Parse(value);
+ if (!doc.HasParseError()) {
+ if (doc.HasMember("map_id") && doc.HasMember("exam")) {
+ Value& s = doc["map_id"];
+ Value& s2 = doc["exam"];
+
+ StartMapExam(s.GetInt(), s2.GetInt());
+ }
+ }
+ break;
+ }
case ID_MS_IND_ONOFF: {
Document doc;
doc.Parse(value);
@@ -723,6 +738,24 @@
ReadCard();
break;
}
+ case ID_MS_SYS_SHUTDOWN: {
+ Document doc;
+ doc.Parse(value);
+ if (!doc.HasParseError()) {
+ int event = 0, timeout = 15;
+
+ if (doc.HasMember("event")) {
+ Value& s = doc["event"];
+ event = s.GetInt();
+ }
+ if (doc.HasMember("timeout")) {
+ Value& s = doc["timeout"];
+ timeout = s.GetInt();
+ }
+ SystemShutdown(event, timeout);
+ }
+ break;
+ }
default:break;
}
}
@@ -738,3 +771,18 @@
break;
}
}
+
+void MA_EnterMap(int map_id, int enter)
+{
+ StringBuffer sb;
+ Writer<StringBuffer> writer(sb);
+
+ writer.StartObject();
+ writer.Key("map_id");
+ writer.Int(map_id);
+ writer.Key("enter");
+ writer.Int(enter);
+ writer.EndObject();
+
+ SendMsgToMainProc(ID_SM_ENTER_MAP, sb.GetString());
+}
diff --git a/lib/src/main/cpp/master/comm_if.h b/lib/src/main/cpp/master/comm_if.h
index 24012d9..0c5da32 100644
--- a/lib/src/main/cpp/master/comm_if.h
+++ b/lib/src/main/cpp/master/comm_if.h
@@ -93,5 +93,6 @@
void MA_SendExamWrong(vector<ExamFault> &ExamFaultList);
void MA_SendRtcmInd(int length);
void MA_SendDebugInfo(const char *str, ...);
+void MA_EnterMap(int map_id, int enter);
#endif //MYAPPLICATION2_COMM_IF_H
diff --git a/lib/src/main/cpp/mcu/mcu_if.cpp b/lib/src/main/cpp/mcu/mcu_if.cpp
index d9bb96a..4682904 100644
--- a/lib/src/main/cpp/mcu/mcu_if.cpp
+++ b/lib/src/main/cpp/mcu/mcu_if.cpp
@@ -45,6 +45,7 @@
#define ID_CM_RTK_DATA 0x0008
#define ID_CM_READ_RFCARD 0x0009
#define ID_MC_RFCARD_RSP 0x8009
+#define ID_CM_SHUTDOWN 0x0020
static parse_status_t parse_status;
@@ -514,3 +515,10 @@
AppTimer_add(ReadCardTimeout, D_SEC(3));
SendMcuCommand(ID_CM_READ_RFCARD, NULL, 0);
}
+
+void ShutdownInd(int timeout)
+{
+ uint8_t v = timeout;
+
+ SendMcuCommand(ID_CM_SHUTDOWN, &v, 1);
+}
diff --git a/lib/src/main/cpp/mcu/mcu_if.h b/lib/src/main/cpp/mcu/mcu_if.h
index b4cd426..86613ca 100644
--- a/lib/src/main/cpp/mcu/mcu_if.h
+++ b/lib/src/main/cpp/mcu/mcu_if.h
@@ -16,5 +16,6 @@
void UploadDfuFileEnd(void);
void UploadDfuFile(const uint8_t *file, int length);
void ReadCard(void);
+void ShutdownInd(int timeout);
#endif //RTKDRIVERTEST_MCU_IF_H
diff --git a/lib/src/main/cpp/test_items/comm_test.cpp b/lib/src/main/cpp/test_items/comm_test.cpp
index 3ca6c44..f715788 100644
--- a/lib/src/main/cpp/test_items/comm_test.cpp
+++ b/lib/src/main/cpp/test_items/comm_test.cpp
@@ -33,7 +33,7 @@
if (CheckSensorX(SEATBELT) == 0) {
struct RtkTime rt;
GetRtkClock(&rt);
- AddExamFault(1, &rt);
+// AddExamFault(1, &rt);
}
}
}
--
Gitblit v1.8.0