From 683b1595260e638d1d3c6cc0d6543a72f6d6f925 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期二, 12 一月 2021 14:36:42 +0800
Subject: [PATCH] 扣分码标准化

---
 lib/src/main/cpp/rtk_platform/platform.cpp |  606 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 326 insertions(+), 280 deletions(-)

diff --git a/lib/src/main/cpp/rtk_platform/platform.cpp b/lib/src/main/cpp/rtk_platform/platform.cpp
index c42bdf7..1f28070 100644
--- a/lib/src/main/cpp/rtk_platform/platform.cpp
+++ b/lib/src/main/cpp/rtk_platform/platform.cpp
@@ -77,6 +77,8 @@
     struct event_queue_t *next;
 } *eventQueue;
 
+static bool mAyDevice = false;
+
 struct platformSocket exceptSocket, currSocket;
 static sem_t sem_status_changed;
 
@@ -113,6 +115,7 @@
 static void LoginPlatformTimeout(union sigval sig);
 static void TriggerHeartbeat(union sigval sig);
 static void RequestRtkNoResp(union sigval sig);
+
 
 static void AddEvnet(uint32_t event, const uint8_t *data, int length)
 {
@@ -181,9 +184,11 @@
         free(p1);
 }
 
-void InitPlatform(const uint8_t *phone, const char *domain_name, int port)
+void InitPlatform(bool ayDevice, const uint8_t *phone, const char *domain_name, int port)
 {
     DEBUG("InitPlatform");
+
+    mAyDevice = ayDevice;
 
     memset(&gbf, 0, sizeof(gbf));
     memset(&rbf, 0, sizeof(rbf));
@@ -264,7 +269,7 @@
     if (domain_name == NULL || strlen(domain_name) == 0 || port == 0)
         return;
 
-    DEBUG("ConnectPlatform %s: %d", domain_name, port);
+    DEBUG("杩炴帴RTK骞冲彴 %s: %d", domain_name, port);
     // TODO
     struct platformSocketInfo *ptr = (struct platformSocketInfo *)malloc(sizeof(struct platformSocketInfo));
 
@@ -299,334 +304,371 @@
 
 static void PlatformChangeEntry(uint32_t events, const uint8_t *data, int length)
 {
-    if (events & PLATFORM_CONNECT_EVT) {
-        DEBUG("骞冲彴杩炴帴鎴愬姛 %s:%d", currSocket.domain_name, currSocket.port);
-        MA_RtkPlatformConnect(1, currSocket.domain_name, currSocket.port);
+    switch (events) {
+        case PLATFORM_CONNECT_EVT: {
+            DEBUG("骞冲彴杩炴帴鎴愬姛 %s:%d", currSocket.domain_name, currSocket.port);
+            MA_RtkPlatformConnect(1, currSocket.domain_name, currSocket.port);
 
-        platformStatus.connected = 1;
-        if (!platformStatus.registed || platformStatus.platformKeyLength == 0) {
-            RegisterPlatform();
-        } else if (!platformStatus.login) {
-            LoginPlatform();
+            platformStatus.connected = 1;
+            if (!platformStatus.registed || platformStatus.platformKeyLength == 0) {
+                RegisterPlatform();
+            } else if (!platformStatus.login) {
+                LoginPlatform();
+            }
+
+            MA_SendBlueStatus("name", "00:1B:35:16:20:4A", 3);
+            break;
         }
-    }
 
-    if (events & PLATFORM_DISCONNECT_EVT) {
-        DEBUG("骞冲彴鏂紑 %s:%d", currSocket.domain_name, currSocket.port);
-        MA_RtkPlatformConnect(0, currSocket.domain_name, currSocket.port);
+        case PLATFORM_DISCONNECT_EVT: {
+            DEBUG("骞冲彴鏂紑 %s:%d", currSocket.domain_name, currSocket.port);
+            MA_RtkPlatformConnect(0, currSocket.domain_name, currSocket.port);
 
-        AppTimer_delete(ConnectPlatformLater);
-        AppTimer_add(ConnectPlatformLater, D_SEC(2));
+            AppTimer_delete(ConnectPlatformLater);
+            AppTimer_add(ConnectPlatformLater, D_SEC(2));
 
-        platformStatus.login = 0;
-        platformStatus.connected = 0;
+            platformStatus.login = 0;
+            platformStatus.connected = 0;
 
-        AppTimer_delete(TriggerHeartbeat);
-        AppTimer_delete(RegisterPlatformTimeout);
-        AppTimer_delete(LoginPlatformTimeout);
+            AppTimer_delete(TriggerHeartbeat);
+            AppTimer_delete(RegisterPlatformTimeout);
+            AppTimer_delete(LoginPlatformTimeout);
 
 //        PlayTTS("鍩哄噯婧愭柇寮�", NULL);
-    }
-    if (events & PLATFORM_REGISTER_EVT) {
-        DEBUG("PLATFORM_REGISTER_EVT");
-
-        platformStatus.login = 0;
-        if (data[0] == 0) {
-            platformStatus.registed = 1;
-            platformStatus.platformKeyLength = length - 1;
-            memcpy(platformStatus.platformKey, data+1, length-1);
-            LoginPlatform();
-        } else {
-            platformStatus.registed = 0;
+            break;
         }
-        MA_RtkPlatformRegister(data[0], data + 1, length - 1);
-    }
-    if (events & PLATFORM_LOGIN_EVT) {
-        DEBUG("PLATFORM_LOGIN_EVT");
+        case PLATFORM_REGISTER_EVT: {
+            DEBUG("骞冲彴娉ㄥ唽缁撴灉锛�%d", data[0]);
 
-        if (data[0] == 0) {
-            platformStatus.login = 1;
-            requestPlatformSendRtk = true;
-            AppTimer_delete(TriggerHeartbeat);
-            AppTimer_add(TriggerHeartbeat, D_SEC(30));
+            platformStatus.login = 0;
+            if (data[0] == 0) {
+                platformStatus.registed = 1;
+                platformStatus.platformKeyLength = length - 1;
+                memcpy(platformStatus.platformKey, data + 1, length - 1);
+                LoginPlatform();
+            } else {
+                platformStatus.registed = 0;
+            }
+            MA_RtkPlatformRegister(data[0], data + 1, length - 1);
+            break;
+        }
+        case PLATFORM_LOGIN_EVT: {
+            DEBUG("骞冲彴鐧诲綍缁撴灉锛�%d", data[0]);
+
+            if (data[0] == 0) {
+                platformStatus.login = 1;
+                requestPlatformSendRtk = true;
+                AppTimer_delete(TriggerHeartbeat);
+                AppTimer_add(TriggerHeartbeat, D_SEC(30));
 
 //            PlayTTS("鍩哄噯婧愬缓绔�", NULL);
-        } else {
-            platformStatus.login = 0;
+            } else {
+                platformStatus.login = 0;
+            }
+            MA_RtkPlatformLogin(data[0]);
+            break;
         }
-        MA_RtkPlatformLogin(data[0]);
-    }
-    if (events & GPS_UPDATE_EVT) {
-        DEBUG("GPS_UPDATE_EVT length %d", length);
-        const gpsStatus_t *gps = (gpsStatus_t *)data;
+        case GPS_UPDATE_EVT: {
+            const gpsStatus_t *gps = (gpsStatus_t *) data;
 
-        gbf.qf = gps->gps_status;
-        gbf.latitude = gps->latitude;
-        gbf.longitude = gps->longitude;
-        gbf.altitude = gps->altitude;
-        gbf.speed = gps->speed;
-        gbf.sat_num = gps->satNum;
-        gbf.trackTure = gps->trackTure;
-        sprintf(gbf.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + gps->YY, gps->MM, gps->DD, gps->hh, gps->mm, gps->ss, gps->mss);
-        if (!strcmp(rbf.utc, gbf.utc)) {
-            rbf.sat_num = gbf.sat_num;
-            rbf.latitude = gbf.latitude;
-            rbf.longitude = gbf.longitude;
-            rbf.altitude = gbf.altitude;
-            rbf.speed = gbf.speed;
-            rbf.trackTure = gbf.trackTure;
-            MA_SendRtkBrief(&rbf);
-        }
+            gbf.qf = gps->gps_status;
+            gbf.latitude = gps->latitude;
+            gbf.longitude = gps->longitude;
+            gbf.altitude = gps->altitude;
+            gbf.speed = gps->speed;
+            gbf.sat_num = gps->satNum;
+            gbf.trackTure = gps->trackTure;
+            sprintf(gbf.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + gps->YY, gps->MM, gps->DD,
+                    gps->hh, gps->mm, gps->ss, gps->mss);
+            if (!strcmp(rbf.utc, gbf.utc)) {
+                rbf.sat_num = gbf.sat_num;
+                rbf.latitude = gbf.latitude;
+                rbf.longitude = gbf.longitude;
+                rbf.altitude = gbf.altitude;
+                rbf.speed = gbf.speed;
+                rbf.trackTure = gbf.trackTure;
+                MA_SendRtkBrief(&rbf);
+            }
 //        MA_SendGpsBrief(&brief);
-        RequestRtkDownload(gps, 1);
-
-        DEBUG("GPS_UPDATE_EVT ================");
-    }
-    if (events & RTK_UPDATE_EVT) {
-        DEBUG("RTK_UPDATE_EVT length %d", length);
-
-//        uint32_t ost = AppTimer_GetTickCount();
-
-        const rtk_info *rtk = (rtk_info *)data;
-
-        rbf.qf = rtk->qf;
-        rbf.coord_x = rtk->y;
-        rbf.coord_y = rtk->x;
-        rbf.heading = rtk->heading;
-        rbf.pitch = rtk->pitch;
-        rbf.roll = rtk->roll;
-        rbf.coord_x_dir = 'N';
-        rbf.coord_y_dir = 'E';
-        sprintf(rbf.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + rtk->YY, rtk->MM, rtk->DD, rtk->hh, rtk->mm, rtk->ss, rtk->dss);
-        if (!strcmp(rbf.utc, gbf.utc)) {
-            rbf.sat_num = gbf.sat_num;
-            rbf.latitude = gbf.latitude;
-            rbf.longitude = gbf.longitude;
-            rbf.altitude = gbf.altitude;
-            rbf.speed = gbf.speed;
-            rbf.trackTure = gbf.trackTure;
-            MA_SendRtkBrief(&rbf);
+            RequestRtkDownload(gps, 1);
+            break;
         }
+        case RTK_UPDATE_EVT: {
+            uint32_t ost = AppTimer_GetTickCount();
+            uint32_t ost1 = ost;
 
-        UpdateRTKInfo(rtk);
+            const rtk_info *rtk = (rtk_info *) data;
 
-//        DEBUG("driver_test 璇勫垽鑰楁椂 %ld", AppTimer_GetTickCount() - ost);
+            rbf.qf = rtk->qf;
+            rbf.coord_x = rtk->y;
+            rbf.coord_y = rtk->x;
+            rbf.heading = rtk->heading;
+            rbf.pitch = rtk->pitch;
+            rbf.roll = rtk->roll;
+            rbf.coord_x_dir = 'N';
+            rbf.coord_y_dir = 'E';
+            sprintf(rbf.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + rtk->YY, rtk->MM, rtk->DD,
+                    rtk->hh, rtk->mm, rtk->ss, rtk->dss);
+            if (!strcmp(rbf.utc, gbf.utc)) {
+                rbf.sat_num = gbf.sat_num;
+                rbf.latitude = gbf.latitude;
+                rbf.longitude = gbf.longitude;
+                rbf.altitude = gbf.altitude;
+                rbf.speed = gbf.speed;
+                rbf.trackTure = gbf.trackTure;
+                MA_SendRtkBrief(&rbf);
+            }
 
-        DEBUG("RTK_UPDATE_EVT =================");
-    }
-    if (events & MCU_UPDATE_EVT) {
-        DEBUG("MCU_UPDATE_EVT length %d", length);
-        // 0-31 version
-        // 32-33 selftest
-        // 34-35 gpio
-        // 36-37 speed
-        // 38-39 engine
-        // 40-55 sn
-        struct mcuBrief brief;
+            ost1 = AppTimer_GetTickCount() - ost1;
 
-        memset(&brief, 0, sizeof(brief));
+            UpdateRTKInfo(rtk);
 
-        int x = 0;
-        while(data[x] != 0 && x < 32) x++;
+            ost = AppTimer_GetTickCount() - ost;
 
-        ConvertHex2String(brief.version, data, x);
-        brief.selftest = BUILD_UINT16(data[33], data[32]);
+            if (ost > 100)
+                DEBUG("driver_test 璇勫垽鑰楁椂 %ld %ld", ost1, ost);
+            break;
+        }
+        case RTK_STATUS_EVT: {
+            DEBUG("妯″潡淇℃伅 %02X %02X %02X %02X %02X %02X", data[0], data[1], data[2], data[3], data[4], data[5]);
+            if (length == 33)
+                MA_SendRtkStatus((char *)data, data[32]);
+            break;
+        }
+        case MCU_UPDATE_EVT: {
+            // 0-31 version
+            // 32-33 selftest
+            // 34-35 gpio
+            // 36-37 speed
+            // 38-39 engine
+            // 40-55 sn
+            struct mcuBrief brief;
+
+            memset(&brief, 0, sizeof(brief));
+
+            int x = 0;
+            while (data[x] != 0 && x < 32) x++;
+
+            ConvertHex2String(brief.version, data, x);
+            brief.selftest = BUILD_UINT16(data[33], data[32]);
 //        brief.gpio = BUILD_UINT16(data[35], data[34]);
 //        brief.speed = BUILD_UINT16(data[37], data[36]);
 //        brief.engine = BUILD_UINT16(data[39], data[38]);
 //        memcpy(brief.sn, data+40, 16);
-        memcpy(brief.sn, data+34, 16);
+            memcpy(brief.sn, data + 34, 16);
 
-        MA_SendMcuBrief(&brief);
+            MA_SendMcuBrief(&brief);
 
-        if (defaultMcuRom.more > 0) {
-            char str[64] = {0};
+            if (defaultMcuRom.more > 0) {
+                char str[64] = {0};
 
-            memcpy(str, data, 32);
+                memcpy(str, data, 32);
 
-            vector<string> ver = split(str, "_");
+                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;
+                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;
             }
-            defaultMcuRom.more = 0;
-        }
 //        UpdateSensor(brief.gpio, brief.speed, brief.engine);
-    }
-    if (events & CAN_UPDATE_EVT) {
-        struct canBrief brief;
+            break;
+        }
+        case 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;
+            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;
-        int x = 20;
+            MA_SendCanStatus(&brief);
+            break;
+        }
+        case CAR_SENSOR_UPDATE_EVT: {
+            struct carSensorBrief brief;
+            int x = 20;
 
-        brief.odo = BUILD_UINT32(data[3], data[2], data[1], data[0]);
-        brief.trip = BUILD_UINT32(data[7], data[6], data[5], data[4]);
-        brief.tripTime = BUILD_UINT32(data[11], data[10], data[9], data[8]);
-        brief.cellVolt = ((double) BUILD_UINT16(data[13], data[12])) / 10.0;
-        brief.speed = ((double) BUILD_UINT16(data[15], data[14])) / 10.0;
-        brief.engine = BUILD_UINT16(data[17], data[16]);
-        brief.sas = (short)BUILD_UINT16(data[19], data[18]);
-        brief.key = data[x++];
-        brief.gear = data[x++];
-        brief.aps = data[x++];
-        brief.door = data[x++];
-        brief.seatBelt = data[x++];
-        brief.clutch = data[x++];
-        brief.horn = data[x++];
-        brief.wiper = data[x++];
-        brief.handBreak = data[x++];
-        brief.mainBreak = data[x++];
-        brief.leftTurnLamp = data[x++];
-        brief.rightTurnLamp = data[x++];
-        brief.clearanceLamp = data[x++];
-        brief.dippedBeamLamp = data[x++];
-        brief.mainBeamLamp = data[x++];
-        brief.fogLamp = data[x++];
-        brief.assBreak = data[x++];
-        brief.surround1 = data[x++];
-        brief.surround2 = data[x++];
-        brief.surround3 = data[x++];
-        brief.surround4 = data[x++];
+            brief.odo = BUILD_UINT32(data[3], data[2], data[1], data[0]);
+            brief.trip = BUILD_UINT32(data[7], data[6], data[5], data[4]);
+            brief.tripTime = BUILD_UINT32(data[11], data[10], data[9], data[8]);
+            brief.cellVolt = ((double) BUILD_UINT16(data[13], data[12])) / 10.0;
+            brief.speed = ((double) BUILD_UINT16(data[15], data[14])) / 10.0;
+            brief.engine = BUILD_UINT16(data[17], data[16]);
+            brief.sas = (short) BUILD_UINT16(data[19], data[18]);
+            brief.key = data[x++];
+            brief.gear = data[x++];
+            brief.aps = data[x++];
+            brief.door = data[x++];
+            brief.seatBelt = data[x++];
+            brief.clutch = data[x++];
+            brief.horn = data[x++];
+            brief.wiper = data[x++];
+            brief.handBreak = data[x++];
+            brief.mainBreak = data[x++];
+            brief.leftTurnLamp = data[x++];
+            brief.rightTurnLamp = data[x++];
+            brief.clearanceLamp = data[x++];
+            brief.dippedBeamLamp = data[x++];
+            brief.mainBeamLamp = data[x++];
+            brief.fogLamp = data[x++];
+            brief.assBreak = data[x++];
+            brief.surround1 = data[x++];
+            brief.surround2 = data[x++];
+            brief.surround3 = data[x++];
+            brief.surround4 = data[x++];
 
-        MA_SendCarSensorBrief(&brief);
+            MA_SendCarSensorBrief(&brief);
 
-        car_sensor_t sensor;
-        x = 20;
+            car_sensor_t sensor;
+            x = 20;
 
-        sensor.odo = BUILD_UINT32(data[3], data[2], data[1], data[0]);
-        sensor.trip = BUILD_UINT32(data[7], data[6], data[5], data[4]);
-        sensor.tripTime = BUILD_UINT32(data[11], data[10], data[9], data[8]);
-        sensor.cellVolt = (double)(BUILD_UINT16(data[13], data[12])) / 10.0;
-        sensor.speed = BUILD_UINT16(data[15], data[14]);
-        sensor.engine = BUILD_UINT16(data[17], data[16]);
-        sensor.sas = (short)BUILD_UINT16(data[19], data[18]);
-        sensor.key = data[x++];
-        sensor.gear = data[x++];
-        sensor.aps = data[x++];
-        sensor.door = data[x++];
-        sensor.seatBelt = data[x++];
-        sensor.clutch = data[x++];
-        sensor.horn = data[x++];
-        sensor.wiper = data[x++];
-        sensor.handBreak = data[x++];
-        sensor.mainBreak = data[x++];
-        sensor.leftTurnLamp = data[x++];
-        sensor.rightTurnLamp = data[x++];
-        sensor.clearanceLamp = data[x++];
-        sensor.dippedBeamLamp = data[x++];
-        sensor.mainBeamLamp = data[x++];
-        sensor.fogLamp = data[x++];
-        sensor.assBreak = data[x++];
-        sensor.surround1 = data[x++];
-        sensor.surround2 = data[x++];
-        sensor.surround3 = data[x++];
-        sensor.surround4 = data[x++];
+            sensor.odo = BUILD_UINT32(data[3], data[2], data[1], data[0]);
+            sensor.trip = BUILD_UINT32(data[7], data[6], data[5], data[4]);
+            sensor.tripTime = BUILD_UINT32(data[11], data[10], data[9], data[8]);
+            sensor.cellVolt = (double) (BUILD_UINT16(data[13], data[12])) / 10.0;
+            sensor.speed = BUILD_UINT16(data[15], data[14]);
+            sensor.engine = BUILD_UINT16(data[17], data[16]);
+            sensor.sas = (short) BUILD_UINT16(data[19], data[18]);
+            sensor.key = data[x++];
+            sensor.gear = data[x++];
+            sensor.aps = data[x++];
+            sensor.door = data[x++];
+            sensor.seatBelt = data[x++];
+            sensor.clutch = data[x++];
+            sensor.horn = data[x++];
+            sensor.wiper = data[x++];
+            sensor.handBreak = data[x++];
+            sensor.mainBreak = data[x++];
+            sensor.leftTurnLamp = data[x++];
+            sensor.rightTurnLamp = data[x++];
+            sensor.clearanceLamp = data[x++];
+            sensor.dippedBeamLamp = data[x++];
+            sensor.mainBeamLamp = data[x++];
+            sensor.fogLamp = data[x++];
+            sensor.assBreak = data[x++];
+            sensor.surround1 = data[x++];
+            sensor.surround2 = data[x++];
+            sensor.surround3 = data[x++];
+            sensor.surround4 = data[x++];
 
-        if (sensor.clutch == 1)
-            sensor.gear = 0;
+            if (sensor.clutch == 1)
+                sensor.gear = 0;
 
-        UpdateSensor(&sensor);
-    }
-    if (events & CARD_UPDATE_EVT) {
-        DEBUG("CARD_UPDATE_EVT length %d", length);
+            UpdateSensor(&sensor);
+            break;
+        }
+        case CARD_UPDATE_EVT: {
+            DEBUG("CARD_UPDATE_EVT length %d", length);
 
-        int ret = -1;
+            int ret = -1;
 
-        for (int i = 0; i < length; ++i) {
-            if (data[i] != 0) {
-                ret = 0;
-                break;
+            for (int i = 0; i < length; ++i) {
+                if (data[i] != 0) {
+                    ret = 0;
+                    break;
+                }
             }
+
+            struct cardBrief brief;
+
+            brief.result = ret;
+
+            ConvertHex2String(brief.card, data, length);
+
+            MA_SendCardBrief(&brief);
+            break;
         }
-
-        struct cardBrief brief;
-        
-        brief.result = ret;
-
-        ConvertHex2String(brief.card, data, length);
-
-        MA_SendCardBrief(&brief);
-    }
-    if (events & PLAY_TTS_DONE_EVT) {
-        tts_back_t *cb = (tts_back_t *) data;
-        if (cb->callback != NULL) {
-            cb->callback(cb->seq);
-        }
-    }
-    if (events & MASTER_COMM_EVT) {
-        union {
-            int a;
-            uint8_t b[sizeof(int)];
-        } c;
-
-        c.b[0] = data[0];
-        c.b[1] = data[1];
-        c.b[2] = data[2];
-        c.b[3] = data[3];
-
-        if (length == 4)
-            MA_MainProcMsgEntry(c.a, NULL);
-        else {
-            MA_MainProcMsgEntry(c.a, (char *) data + 4);
-        }
-    }
-    if (events & BLUETOOTH_STATUS_EVT) {
-        DEBUG("BLUETOOTH_STATUS_EVT");
-        uint8_t sta;
-
-        if (length == 128) {
-            MA_SendBlueStatus((char *)data, (char *)data+64, 3);
-            sta = 3;
-        } else if (length == 64) {
-            MA_SendBlueStatus(NULL, (char *)data, 3);
-            sta = 3;
-        } else {
-            MA_SendBlueStatus(NULL, NULL, data[0]);
-            sta = data[0];
-        }
-
-        if (sta == 3) {
-            // Connected
-            btConnected = true;
-            ParseMcuInit();
-            ConfigRTKModuleLater();
-
-            PlayTTS("钃濈墮杩炴帴", NULL);
-        } else if (sta == 2) {
-            // Disconnect
-            btConnected = false;
-            PlayTTS("钃濈墮鏂紑", NULL);
-        } else if (sta == 1) {
-            // Open
-            btEnable = true;
-
-            if (strlen(btAddr) > 0) {
-                ConnectToBluetooth(btAddr, NULL);
+        case PLAY_TTS_DONE_EVT: {
+            tts_back_t *cb = (tts_back_t *) data;
+            if (cb->callback != NULL) {
+                cb->callback(cb->seq);
             }
+            break;
+        }
+        case MASTER_COMM_EVT: {
+            union {
+                int a;
+                uint8_t b[sizeof(int)];
+            } c;
+
+            c.b[0] = data[0];
+            c.b[1] = data[1];
+            c.b[2] = data[2];
+            c.b[3] = data[3];
+
+            if (length == 4)
+                MA_MainProcMsgEntry(c.a, NULL);
+            else {
+                MA_MainProcMsgEntry(c.a, (char *) data + 4);
+            }
+            break;
+        }
+        case BLUETOOTH_STATUS_EVT: {
+            DEBUG("BLUETOOTH_STATUS_EVT");
+
+            if (!mAyDevice) {
+                uint8_t sta;
+
+                if (length == 128) {
+                    MA_SendBlueStatus((char *) data, (char *) data + 64, 3);
+                    sta = 3;
+                } else if (length == 64) {
+                    MA_SendBlueStatus(NULL, (char *) data, 3);
+                    sta = 3;
+                } else {
+                    MA_SendBlueStatus(NULL, NULL, data[0]);
+                    sta = data[0];
+                }
+
+                if (sta == 3) {
+                    // Connected
+                    btConnected = true;
+                    ParseMcuInit();
+                    ConfigRTKModuleLater();
+
+                    PlayTTS("钃濈墮杩炴帴", NULL);
+                } else if (sta == 2) {
+                    // Disconnect
+                    if (btConnected) {
+                        btConnected = false;
+                        PlayTTS("钃濈墮鏂紑", NULL);
+                    }
+                } else if (sta == 1) {
+                    // Open
+                    btEnable = true;
+
+                    if (strlen(btAddr) > 0) {
+                        ConnectToBluetooth(btAddr, NULL);
+                    }
 //            ConnectToBluetooth("00:1B:35:16:20:4A", NULL);
 //            ConnectToBluetooth("00:1B:35:16:20:4A", "3800");``
 //            ConnectToBluetooth("00:1D:43:9A:E0:79", "1900");
 //            ConnectToBluetooth("DESKTOP-IE9V7U8", "0000");
-            PlayTTS("钃濈墮鍚姩", NULL);
-        } else {
-            // Close
-            btEnable = false;
-            btConnected = false;
-            PlayTTS("钃濈墮鍏抽棴", NULL);
+                    PlayTTS("钃濈墮鍚姩", NULL);
+                } else {
+                    // Close
+                    btEnable = false;
+                    btConnected = false;
+                    PlayTTS("钃濈墮鍏抽棴", NULL);
+                }
+            }
+            break;
         }
-    }
-    if (events & BLUETOOTH_DATA_EVT) {
-        ParseMcu(data, length);
+        case BLUETOOTH_DATA_EVT: {
+            ParseMcu(data, length);
+            break;
+        }
+        case SENSOR_CHANGE_EVT: {
+            SensorXChanged(BUILD_UINT16(data[1], data[0]), BUILD_UINT32(data[5], data[4], data[3], data[2]));
+            break;
+        }
+        default:
+            break;
     }
 }
 
@@ -706,13 +748,14 @@
 
 static void RegisterPlatformTimeout(union sigval sig)
 {
-    DEBUG("RegisterPlatformTimeout");
+    DEBUG("RTK骞冲彴娉ㄥ唽瓒呮椂");
     AppTimer_delete(RegisterPlatformTimeout);
     RegisterPlatform();
 }
 
 static void RegisterPlatform(void)
 {
+    DEBUG("RTK骞冲彴娉ㄥ唽...");
     AppTimer_delete(RegisterPlatformTimeout);
     AppTimer_add(RegisterPlatformTimeout, D_SEC(15));
     SendDeviceRegister(deviceInfo.province, deviceInfo.city, deviceInfo.device_model,
@@ -730,12 +773,14 @@
 
 static void LoginPlatformTimeout(union sigval sig)
 {
+    DEBUG("RTK骞冲彴鐧诲綍瓒呮椂");
     AppTimer_delete(LoginPlatformTimeout);
     LoginPlatform();
 }
 
 static void LoginPlatform(void)
 {
+    DEBUG("RTK骞冲彴鐧诲綍...");
     uint32_t tim = time(NULL);
     uint8_t data[12];
     uint8_t *ciphertext;
@@ -748,6 +793,7 @@
     AppTimer_delete(LoginPlatformTimeout);
     AppTimer_add(LoginPlatformTimeout, D_SEC(15));
 
+
     DESEncrypt(platformStatus.platformKey, platformStatus.platformKeyLength, data, 4, &ciphertext);
 
     if (ciphertext != NULL) {

--
Gitblit v1.8.0