From f5c123f6e78b25fb325c391a3c2ffeccf930f316 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期二, 29 九月 2020 15:55:10 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge into lowprecision
---
lib/src/main/cpp/rtk_platform/platform.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/lib/src/main/cpp/rtk_platform/platform.cpp b/lib/src/main/cpp/rtk_platform/platform.cpp
index 6060868..a3b0098 100644
--- a/lib/src/main/cpp/rtk_platform/platform.cpp
+++ b/lib/src/main/cpp/rtk_platform/platform.cpp
@@ -63,6 +63,13 @@
void *data;
};
+struct default_mcu_rom_t {
+ int more;
+ char verCode[70];
+ uint8_t *rom;
+ int length;
+} defaultMcuRom;
+
static struct event_queue_t {
struct event_t event;
struct event_queue_t *next;
@@ -174,6 +181,7 @@
memset(&gbf, 0, sizeof(gbf));
memset(&rbf, 0, sizeof(rbf));
+ memset(&defaultMcuRom, 0, sizeof(defaultMcuRom));
pthread_mutex_init(&platform_tx_mutex, NULL);
pthread_mutex_init(&events_mutex, NULL);
@@ -420,7 +428,31 @@
MA_SendMcuBrief(&brief);
+ if (defaultMcuRom.more > 0) {
+ char str[64] = {0};
+
+ memcpy(str, data, 32);
+
+ vector<string> ver = split(str, "_");
+
+ if (strlen(defaultMcuRom.verCode) > 0 && ver.size() >= 4 && strcmp(defaultMcuRom.verCode, ver[3].c_str()) != 0 && defaultMcuRom.rom != NULL) {
+ UploadDfuFile(defaultMcuRom.rom, defaultMcuRom.length);
+ delete []defaultMcuRom.rom;
+ defaultMcuRom.rom = NULL;
+ }
+ defaultMcuRom.more = 0;
+ }
// UpdateSensor(brief.gpio, brief.speed, brief.engine);
+ }
+ if (events & CAN_UPDATE_EVT) {
+ struct canBrief brief;
+
+ brief.gpio = BUILD_UINT16(data[1], data[0]);
+ brief.rpm = BUILD_UINT16(data[3], data[2]);
+ brief.speed = (double) BUILD_UINT16(data[5], data[4]) / 10.0;
+ brief.voltage = (double) BUILD_UINT16(data[7], data[6]) / 10.0;
+
+ MA_SendCanStatus(&brief);
}
if (events & CAR_SENSOR_UPDATE_EVT) {
struct carSensorBrief brief;
@@ -735,3 +767,19 @@
{
SendRTKStop();
}
+
+void LoadDefaultMcuRom(const char *verCode, const uint8_t *rom, int length)
+{
+ DEBUG("鍐呯疆鍗曠墖鏈簉om %s len %ld", verCode, length);
+ strcpy(defaultMcuRom.verCode, verCode);
+
+ if (length > 0 && rom != NULL) {
+ defaultMcuRom.length = length;
+ if (defaultMcuRom.rom != NULL)
+ delete []defaultMcuRom.rom;
+
+ defaultMcuRom.more = 1;
+ defaultMcuRom.rom = new uint8_t[length];
+ memcpy(defaultMcuRom.rom, rom, length);
+ }
+}
--
Gitblit v1.8.0