From 6f2dc73bb6bd5ff48cb4a2e77e9e7b6a93828902 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期二, 07 一月 2020 19:21:39 +0800
Subject: [PATCH] 修改进程间接口,统一为foo(int, string)

---
 lib/src/main/cpp/rtk_platform/platform.cpp |   56 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 43 insertions(+), 13 deletions(-)

diff --git a/lib/src/main/cpp/rtk_platform/platform.cpp b/lib/src/main/cpp/rtk_platform/platform.cpp
index f1f0358..30dec58 100644
--- a/lib/src/main/cpp/rtk_platform/platform.cpp
+++ b/lib/src/main/cpp/rtk_platform/platform.cpp
@@ -16,6 +16,8 @@
 #include "../defs.h"
 #include "../rtk_module/rtk.h"
 #include "../mcu/mcu_if.h"
+#include "../master/comm_if.h"
+#include "../utils/xconvert.h"
 
 #define PARSE_BUFF_SIZE         4096
 
@@ -48,6 +50,8 @@
     uint32_t downloadRtk : 1;
 } platformStatus;
 
+
+
 struct platformSocket exceptSocket, currSocket;
 static uint32_t eventMask;
 static sem_t sem_status_changed;
@@ -79,19 +83,13 @@
 
     eventMask = 0;
     platform_tcp_fd = -1;
+
     memset(&currSocket, 0, sizeof(currSocket));
-    strcpy(exceptSocket.domain_name, domain_name);
-    exceptSocket.port = port;
+    memset(&platformStatus, 0, sizeof(platformStatus));
 
     sem_init(&sem_status_changed, 0, 0);
 
-    strcpy(deviceInfo.imei, GetImei());
-    deviceInfo.province = 53;
-    deviceInfo.city = 100;
-    strcpy((char *)deviceInfo.device_model, "RTKBaseStation");
-    strcpy((char *)deviceInfo.device_sn, "2019101500000001");
-
-    PlatformTxInit(phone);
+    PlatformTxInit();
 
     pthread_t pid;
     pthread_attr_t attr;
@@ -99,7 +97,39 @@
     pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);//detached
     pthread_create(&pid, &attr, StatusListenThread, NULL);
 
-    ConnectPlatform(domain_name, port);
+    MA_ReqRtkPlatformConfig();
+}
+
+void ConfigPlatform(const rtk_platform_cfg_t *p)
+{
+    DEBUG("ConfigPlatform");
+
+    strcpy(exceptSocket.domain_name, p->domain_name);
+    exceptSocket.port = p->port;
+    deviceInfo.province = p->province;
+    deviceInfo.city = p->city;
+    strcpy((char *)deviceInfo.device_model, p->device_model);
+    strcpy((char *)deviceInfo.device_sn, p->device_sn);
+    strcpy(deviceInfo.imei, p->imei);
+    SetPlatformTxPhoneNum(p->phone);
+
+    platformStatus.registed = p->registered;
+    platformStatus.platformKeyLength = strlen(p->password) / 2;
+
+    if (platformStatus.platformKeyLength > 0) {
+        ConvertString2Hex(platformStatus.platformKey, sizeof(platformStatus.platformKey), p->password);
+    } else {
+        platformStatus.registed = 0;
+    }
+
+    pthread_mutex_lock(&platform_tx_mutex);
+    if (platform_tcp_fd > 0 && (exceptSocket.port != currSocket.port || strcmp(currSocket.domain_name, exceptSocket.domain_name))) {
+        DisconnectTCP(platform_tcp_fd);
+        platform_tcp_fd = -1;
+    } else if (platform_tcp_fd <= 0) {
+        ConnectPlatform(exceptSocket.domain_name, exceptSocket.port);
+    }
+    pthread_mutex_unlock(&platform_tx_mutex);
 }
 
 void PlatformStatusChanged(uint32_t event)
@@ -149,6 +179,7 @@
             char out[64];
             sprintf(out, "骞冲彴杩炴帴鎴愬姛 %s:%d", currSocket.domain_name, currSocket.port);
             DisplayText(out);
+            MA_RtkPlatformConnect(1, currSocket.domain_name, currSocket.port);
 
             platformStatus.connected = 1;
             if (!platformStatus.registed || platformStatus.platformKeyLength == 0) {
@@ -162,6 +193,7 @@
             char out[64];
             sprintf(out, "骞冲彴鏂紑 %s:%d", currSocket.domain_name, currSocket.port);
             DisplayText(out);
+            MA_RtkPlatformConnect(0, currSocket.domain_name, currSocket.port);
 
             AppTimer_delete(ConnectPlatformLater);
             AppTimer_add(ConnectPlatformLater, D_SEC(2));
@@ -175,8 +207,7 @@
         }
         if (events & PLATFORM_REGISTER_EVT) {
             DEBUG("PLATFORM_REGISTER_EVT");
-            platformStatus.platformKeyLength = GetPlatformKey(platformStatus.platformKey);
-            platformStatus.registed = GetSharedValue(VK_REG);
+
             platformStatus.login = 0;
             DEBUG("platformStatus.platformKeyLength = %d", platformStatus.platformKeyLength);
 
@@ -329,7 +360,6 @@
         TextSpeak("缁堢娉ㄥ唽鎴愬姛");
         DisplayText("缁堢娉ㄥ唽鎴愬姛");
         SetPlatformKey(data, length);
-        SetSharedValue(VK_REG, 1);
         PlatformStatusChanged(PLATFORM_REGISTER_EVT);
     }
 }

--
Gitblit v1.8.0