From f430073ef8e63884eff78d57084f89e93fa0c1f0 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期四, 05 三月 2020 13:33:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java              |   47 +++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java               |   34 ++++-
 app/src/main/res/drawable/antenna_red.png                                           |    0 
 app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java                |    7 +
 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java              |    2 
 app/src/main/res/layout/layout_train_fragment.xml                                   |   12 +-
 app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java |    1 
 build.gradle                                                                        |    6 
 app/src/main/res/drawable/antenna.png                                               |    0 
 app/src/main/res/layout/activity_main.xml                                           |    1 
 app/src/main/res/layout/profile_layout.xml                                          |    1 
 im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java                     |    1 
 app/build.gradle                                                                    |    8 +
 app/src/main/res/values/dimens.xml                                                  |    1 
 lib/src/main/cpp/test_items/driving_curve.cpp                                       |    1 
 app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java     |    2 
 app/src/main/res/values/strings.xml                                                 |    1 
 app/src/main/res/drawable/gps.png                                                   |    0 
 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java             |    2 
 app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java  |    2 
 im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java                        |    1 
 app/src/main/java/safeluck/drive/evaluation/app.java                                |   22 +++
 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt       |   38 ++++++
 app/src/main/java/safeluck/drive/evaluation/MainActivity.java                       |    8 +
 app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java                |   11 +
 app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java     |   59 +++++----
 app/src/main/res/layout/layout_net_train.xml                                        |    5 
 app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java         |    2 
 app/src/main/java/safeluck/drive/evaluation/DB/Constant.java                        |    4 
 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java      |    4 
 app/src/main/res/layout/networktoolbar.xml                                          |   49 ++++++++
 31 files changed, 280 insertions(+), 52 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 757bef6..2f7d9fa 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,4 +1,6 @@
 apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android-extensions'
+apply plugin: 'kotlin-android'
 
 android {
     compileSdkVersion 28
@@ -59,4 +61,10 @@
     implementation 'com.google.code.gson:gson:2.8.6'
     implementation 'com.facebook.stetho:stetho:1.5.0'
     implementation project(path: ':im_lib')
+    implementation "androidx.core:core-ktx:+"
+    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0"
+    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+}
+repositories {
+    mavenCentral()
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
index cc7a81b..711a645 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
@@ -9,4 +9,8 @@
 public class Constant {
     public static final String CRITERIAFOR_I_JSON = "criteria_I.json";
     public static final String CRITERIAFOR_II_JSON = "criteria_II.json";
+    public static final String RTK_CONFIG_UPDATE_JSON = "RTK_CONFIG_UPDATE_JSON";
+    public static final String RTK_CONFIG_PHONE = "RTK_CONFIG_PHONE";
+    public static final String RTK_CONFIG_IMEI = "RTK_CONFIG_IMEI";
+    public static final String RTK_CONFIG_SN = "sn";
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
index 98a58fd..a97efd0 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
@@ -1,6 +1,7 @@
 package safeluck.drive.evaluation.DB.appstatusdb;
 
 import android.content.Context;
+import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.work.Worker;
@@ -34,6 +35,7 @@
     public Result doWork() {
         String[] str = getInputData().getStringArray(Constant.APP_STATUS);
         JSONObject jsonObject = null;
+        Log.i(TAG,"doWork:"+str[0]+": "+str[1]);
         try {
             jsonObject = new JSONObject(str[1]);
             switch (str[0]) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java
index e0428c1..31d00e6 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java
@@ -18,6 +18,8 @@
 
     @Update
     void update(RTKConfig rtkConfig);
+    @Query("Update rtkconfig_table SET sn=:sn ,imei=:imei ,phone=:phone where _id =0")
+    void update(String sn,String imei,String phone);
 
 
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
new file mode 100644
index 0000000..dc043ef
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
@@ -0,0 +1,38 @@
+package safeluck.drive.evaluation.DB.rtktb
+
+import android.content.Context
+import android.text.TextUtils
+import android.util.Log
+import androidx.work.Worker
+import androidx.work.WorkerParameters
+import org.json.JSONObject
+import safeluck.drive.evaluation.DB.Constant
+import safeluck.drive.evaluation.DB.WorkRoomDataBase
+
+class RTKConfigUpdateWorker(context:Context, workerParams: WorkerParameters) :Worker(context, workerParams){
+
+    val TAG:String = "RTKConfigUpdateWorker"
+
+    override fun doWork(): Result {
+
+        var data = inputData.getString(Constant.RTK_CONFIG_UPDATE_JSON)
+        Log.i(TAG,"鏇存柊RTK_config imei phone sn="+data)
+        var imei:String=""
+        var phone:String=""
+        var sn:String=""
+        if (!TextUtils.isEmpty(data)){
+            var jsonObject: JSONObject? = null
+            jsonObject = JSONObject(data)
+            sn = jsonObject.getString(Constant.RTK_CONFIG_SN)
+            Log.i(TAG,"sn="+sn)
+            imei = sn
+            phone = sn
+        }
+        var rtkConfigDao = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao.also {
+            it.update(sn, imei, phone)
+        }
+        return Result.success()
+    }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java
index 9928694..d446233 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java
@@ -1,6 +1,7 @@
 package safeluck.drive.evaluation.DB.rtktb;
 
 import android.content.Context;
+import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.work.Worker;
@@ -31,6 +32,7 @@
     @NonNull
     @Override
     public Result doWork() {
+
         try {
             InputStream inputStream = getApplicationContext().getAssets().open(Constant.RTK_CONFIG_JSON);
             InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index bc58479..049ab64 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -10,6 +10,8 @@
 
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.Window;
+import android.view.WindowManager;
 import android.widget.Toast;
 
 
@@ -156,7 +158,8 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         //鍏ㄥ睆
-
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
         setContentView(R.layout.activity_main);
         // TODO
         //  杩涜tcp杩炴帴
@@ -324,11 +327,13 @@
 
     @Override
     public void onConnecting() {
+
         MyLog.i(TAG,"TCP onConnecting");
     }
 
     @Override
     public void onConnected() {
+        ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.TCP_CONNECTED);
         MyLog.i(TAG,"TCP杩炴帴鎴愬姛");
         //TODO 鍒ゆ柇SPUtils 鏄惁淇濆瓨鏈塪es瀵嗙爜锛涘鏋滄病鏈夊垯杩涜娉ㄥ唽JKMessage0100锛屽鏋滄湁瀵嗙爜鍒欒繘琛岄壌鏉僇KMessage0101
         String hexPwd = (String) SPUtils.get(this,SPUtils.DES_HEX_PWD,"");
@@ -356,6 +361,7 @@
 
     @Override
     public void onConnectFailed() {
+        ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.TCP_DISCONNECT);
         MyLog.i(TAG,"TCP杩炴帴澶辫触");
     }
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 546250e..c57c2e7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -46,6 +46,7 @@
 import safeluck.drive.evaluation.DB.failitems.FailedProj_select;
 import safeluck.drive.evaluation.DB.gps.GpsInfoWorker;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfigUpdateWorker;
 import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository;
 import safeluck.drive.evaluation.bean.ExamPlatformData;
 import safeluck.drive.evaluation.cEventCenter.CEvent;
@@ -140,6 +141,7 @@
     }
 
     private String lastStr;
+    private String lastSn;
     @Override
     public void callBackMsg(final int cmd, String json) {
         String strConent = String.format("鏀跺埌鍛戒护[%d],Json鍐呭涓�%s", cmd, json);
@@ -264,6 +266,22 @@
                 CEventCenter.dispatchEvent(Constant.BIND_DEBUG_TXT,cmd,0,json);
                 break;
             case Constant.MCU_SN:
+                String sn = null;
+                try {
+                    JSONObject rtkConfigUpdtea = new JSONObject(json);
+                    sn = rtkConfigUpdtea.getString("sn");
+                    sn = rtkConfigUpdtea.put(safeluck.drive.evaluation.DB.Constant.RTK_CONFIG_SN,sn).toString();
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+                if (sn.equalsIgnoreCase(lastSn)){
+
+                }else{
+                    lastSn = sn;
+                    Data data = new Data.Builder().putString(safeluck.drive.evaluation.DB.Constant.RTK_CONFIG_UPDATE_JSON,sn).build();
+                    OneTimeWorkRequest rtkConfigUpdateWorker= new OneTimeWorkRequest.Builder(RTKConfigUpdateWorker.class).setInputData(data).build();
+                    WorkManager.getInstance(getAppContext()).enqueue(rtkConfigUpdateWorker);
+                }
                 CEventCenter.dispatchEvent(Constant.BIND_MCUINFO_TOPIC,cmd,0,json);
                 break;
             case Constant.IC_ID:
@@ -277,7 +295,6 @@
                     double longitude = jsSpeed.getDouble("longitude");
                     double altitude = jsSpeed.getDouble("altitude");
                     double speed = jsSpeed.getDouble("speed");
-                    Log.i(TAG, "RTK info speed: "+speed);
                     int  qf = jsSpeed.getInt("qf");
                     double track_ture = jsSpeed.getDouble("track_ture");
                     String utc = jsSpeed.getString("utc");
@@ -298,9 +315,7 @@
                     AttachInfo attachInfo = new AttachInfo();
                     attachInfo.attach_message_id = Integer.parseInt(String.valueOf(0x40));
                     attachInfo.attach_message_length = 4;
-                    Log.i(TAG, "attachInfo.attach_message_id ="+attachInfo.attach_message_id );
                     if (attachInfo.attach_message_id == 0x41){
-                        Log.i(TAG, "onClick: 41");
                         attachInfo.attach_data="00000000";
                     }else{
 
@@ -309,7 +324,6 @@
                     }
 
                     jkMessage0206.attachInfo = attachInfo;
-                    Log.i(TAG, "浣嶇疆涓婃姤="+jkMessage0206.toString());
                     MessageProcessor.getInstance().sendMessage(jkMessage0206);
 
                 } catch (JSONException e) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
index af9c2d0..ad36189 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -5,11 +5,17 @@
 
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.ViewModelProviders;
+import androidx.work.Data;
+import androidx.work.OneTimeWorkRequest;
+import androidx.work.WorkManager;
 
 import com.anyun.exam.lib.MyLog;
 
+import java.util.HashMap;
 import java.util.Random;
 
+import safeluck.drive.evaluation.Constant;
+import safeluck.drive.evaluation.DB.appstatusdb.AppStatusWorker;
 import safeluck.drive.evaluation.app;
 import safeluck.drive.evaluation.util.SPUtils;
 import safeluck.drive.evaluation.viewmodels.ExamPlatformModel;
@@ -19,6 +25,26 @@
     private static final ExamPlatformData ourInstance = new ExamPlatformData();
 
     private int exam_id =12345;//鑰冭瘯鍞竴ID
+
+    public static final int TCP_DISCONNECT = 1;
+    public static final int TCP_CONNECTED = 2;///2-鏈繛鎺ワ紙tcp杩炴帴涓嶄笂锛�
+    public static final int DEV_NOT_REGISTERED = 3;
+    public static final int DEV_REGISTERED = 4;
+    public static final int DEV_NOT_LOGIN = 5;
+    public static final int DEV_LOGIN = 6;
+    private static HashMap<Integer,String> examPlatformStrs = new HashMap<>();
+    static {
+        examPlatformStrs.put(TCP_DISCONNECT,"鏈繛鎺�");
+        examPlatformStrs.put(TCP_CONNECTED,"宸茶繛鎺�");
+        examPlatformStrs.put(DEV_NOT_REGISTERED,"鏈敞鍐�");
+        examPlatformStrs.put(DEV_REGISTERED,"宸叉敞鍐�");
+        examPlatformStrs.put(DEV_NOT_LOGIN,"鏈櫥褰�");
+        examPlatformStrs.put(DEV_LOGIN,"宸茬櫥褰�");
+    }
+    private static final String WORK_PLATFORM_STATUS = " work_platform";
+
+
+    private int examplatformStatus =1;//1-鏈繛鎺ワ紙tcp杩炴帴涓嶄笂锛�   3-鏈敞鍐岋紙璁惧娌℃湁娉ㄥ唽锛�   5-鏈櫥褰曪紙閴存潈鏈�氳繃锛�
 
     private String id;//韬唤璇�
 
@@ -115,4 +141,25 @@
         carPath = (String) SPUtils.get(app.getAppContext(),SPUtils.CAR_PATH,"");
         return carPath;
     }
+
+    public int getExamplatformStatus() {
+        return examplatformStatus;
+    }
+
+    public void setExamplatformStatus(int examplatformStatus) {
+        String[] conn_strs = new String[2];
+        conn_strs[0] = Constant.WORK_PLATFORM_STATUS_COLUMN;
+        conn_strs[1] = "{"+WORK_PLATFORM_STATUS+":"+examplatformStatus+"}";
+        //RTK骞冲彴杩炴帴鐘舵��
+        Data connStatusData = new Data.Builder().putStringArray(Constant.APP_STATUS,conn_strs).build();
+        OneTimeWorkRequest oneTimeWorkRequest = new OneTimeWorkRequest.Builder(AppStatusWorker.class).
+                setInputData(connStatusData).build();
+        WorkManager.getInstance(app.getAppContext()).enqueue(oneTimeWorkRequest);
+        this.examplatformStatus = examplatformStatus;
+    }
+
+    public String getExamplatformStatusStr(int work_platform) {
+
+        return examPlatformStrs.get(work_platform);
+    }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
index 731f010..b3e967a 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
@@ -204,6 +204,6 @@
     @Override
     public void onDetach() {
         super.onDetach();
-        CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_MCUINFO_TOPIC);
+        CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_MCUINFO_TOPIC);
     }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java
index 6fafe5d..375615e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java
@@ -16,6 +16,7 @@
 import androidx.appcompat.widget.Toolbar;
 import androidx.databinding.DataBindingUtil;
 
+import com.anyun.exam.lib.MyLog;
 import com.anyun.im_lib.util.ByteUtil;
 import com.google.gson.Gson;
 
@@ -46,49 +47,55 @@
     private TextView textView_turnLight,tv_speed,tv_engine;
     private Toolbar toolbar;
     private Gson gson= new Gson();
+    private Handler handler = new Handler();
     private LayoutCheckSignalBinding bingding;
     private List<Integer> gpios = new ArrayList<>();
     Drawable leftGreen ;
     Drawable leftGray ;
+    private int  index =0 ;
     private ICEventListener icEventListener = new ICEventListener() {
         @Override
         public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {
             if (msgCode==Constant.MCU_SN){
                 final MCUInfo mcuInfo = gson.fromJson((String)obj, MCUInfo.class);
                 if (mcuInfo != null){
-                    bingding.getRoot().post(new Runnable() {
-                        @Override
-                        public void run() {
-
+                        gpios.clear();
                             for (int i = 0; i < 16; i++) {
+
                                 gpios.add(      ByteUtil.getBitStatus(mcuInfo.getGpio(),i));
                             }
+                            MyLog.i("mcu info gpio"+mcuInfo.getGpio());
 
-                            bingding.tvRoateSpeed.setText(String.valueOf(mcuInfo.getEngine()));
-                            bingding.tvDangweiNum.setText(String.valueOf(mcuInfo.getSpeed()));
+                    handler.post(new Runnable() {
+                                @Override
+                                public void run() {
+                                    bingding.tvRoateSpeed.setText(String.valueOf(mcuInfo.getEngine()));
+                                    bingding.tvDangweiNum.setText(String.valueOf(mcuInfo.getSpeed()));
 
+                                    for (int i = 0; i < gpios.size(); i++) {
+                                        Log.i(TAG, "run: gpio["+i+"]="+gpios.get(i));
+                                    }
+                                    bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(gpios.get(0)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(gpios.get(1)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(gpios.get(2)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(3)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(4)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(gpios.get(5)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(gpios.get(6)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
 
-                            bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(gpios.get(0)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(gpios.get(1)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(gpios.get(2)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(3)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(4)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(gpios.get(5)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(gpios.get(6)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-
-                            bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(gpios.get(7)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvNullEngine.setCompoundDrawablesWithIntrinsicBounds(gpios.get(8)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvGearOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(9)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvGearTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(10)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvGearThree.setCompoundDrawablesWithIntrinsicBounds(gpios.get(11)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvGearFour.setCompoundDrawablesWithIntrinsicBounds(gpios.get(12)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvGearFive.setCompoundDrawablesWithIntrinsicBounds(gpios.get(13)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(14)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
-                            bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(15)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(gpios.get(7)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvNullEngine.setCompoundDrawablesWithIntrinsicBounds(gpios.get(8)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvGearOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(9)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvGearTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(10)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvGearThree.setCompoundDrawablesWithIntrinsicBounds(gpios.get(11)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvGearFour.setCompoundDrawablesWithIntrinsicBounds(gpios.get(12)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvGearFive.setCompoundDrawablesWithIntrinsicBounds(gpios.get(13)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(14)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                    bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(15)==VALIAD_NUM?leftGreen:leftGray,null,null,null);
+                                }
+                            });
                         }
-                    });
                 }
-            }
         }
     };
 
@@ -132,6 +139,6 @@
     @Override
     public void onDetach() {
         super.onDetach();
-        CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_MCUINFO_TOPIC);
+        CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_MCUINFO_TOPIC);
     }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
index a1c215b..1ee38f5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
@@ -8,6 +8,7 @@
 import android.graphics.Path;
 import android.os.Bundle;
 import android.os.Handler;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.SurfaceHolder;
@@ -21,6 +22,7 @@
 import androidx.appcompat.widget.Toolbar;
 
 
+import com.anyun.exam.lib.AYSdk;
 import com.anyun.exam.lib.MyLog;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
@@ -42,6 +44,7 @@
 import safeluck.drive.evaluation.Constant;
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.bean.ExamMap;
+import safeluck.drive.evaluation.bean.ExamPlatformData;
 import safeluck.drive.evaluation.bean.RealTimeCarPos;
 import safeluck.drive.evaluation.cEventCenter.CEventCenter;
 import safeluck.drive.evaluation.cEventCenter.ICEventListener;
@@ -284,7 +287,7 @@
                 paint.setColor(Color.BLACK);
 
                 Path path = new Path();
-
+        Log.i(TAG, "DrawMap: map.length:"+map.length);
                 if (map.length != 9) {
                     Log.d(TAG, "DrawMap X = " + String.format("%f", (float) (base_x + (map[0][0] - min_x) * scale_x)) + " Y = " + String.format("%f", (float) (base_y + (map[0][1] - min_y) * scale_y)));
                     path.moveTo((float) (base_x + (map[0][0] - min_x) * scale_x), (float) (base_y + (map[0][1] - min_y) * scale_y));
@@ -312,8 +315,10 @@
                 canvas2.drawPath(path, paint);
 
                 path.moveTo((float) (base_x + (car[body.get(0)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(0)][1] - min_y) * scale_y));
-                for (int i = 1; i < body.size(); i++)
+                for (int i = 1; i < body.size(); i++){
+                    Log.d(TAG, "for 寰幆 DrawMap to X = " + (float) (base_x + (car[body.get(i)][0] - min_x) * scale_x)+ " Y = " + (float) (base_y + (car[body.get(i)][1] - min_y) * scale_y));
                     path.lineTo((float) (base_x + (car[body.get(i)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(i)][1] - min_y) * scale_y));
+                }
 
                 path.close();
 
@@ -481,12 +486,29 @@
 //            3 - 渚ф柟鍋滆溅
 //            4 - 鏇茬嚎琛岄┒
 //            5 - 鐩磋杞集
+                    StringBuffer buffer=null;
+                    List<ExamMap> examMaps;
+                    String newmap = null;
+                    String mapPath = ExamPlatformData.getInstance().getMapPath();
+                    if (!TextUtils.isEmpty(mapPath)){
+                        MyLog.i("璋冪敤鏇存柊Map璺緞鍚庣殑鍦板浘"+mapPath);
+                        byte[] fileContent = FileUtil.readFile(mapPath);
+                        if (fileContent != null){
+                            newmap= new String(fileContent);
+                            Log.i(TAG, "鏂囦欢鍐呭锛�"+newmap);
+                        }else{
+                            MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�",mapPath));
+                        }
+                    }else{
+                        buffer = FileUtil.readAssetTxtFile(_mActivity,Constant.MAP);
+                    }
 
-
-                    StringBuffer buffer = FileUtil.readAssetTxtFile(_mActivity,Constant.MAP);
                     Type type = new TypeToken<List<ExamMap>>(){}.getType();
                     if (buffer != null){
-                        List<ExamMap> examMaps = gson.fromJson(buffer.toString().trim(), type);
+                       examMaps= gson.fromJson(buffer.toString().trim(), type);
+                    }else{
+                        examMaps = gson.fromJson(newmap.trim(),type);
+                    }
 
 
 
@@ -519,7 +541,7 @@
                                 break;
                             }
                         }
-                    }
+
                     DrawMap(mainAnt, map, car, body, tire);
                 }
             }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
index 93c7f01..2da26bd 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -83,7 +83,7 @@
     private int item_id;//鎵e垎鍒嗘暟鎬诲拰
     private ExamStatusViewModel examStatusViewModel;
     private static final int ADD_DATA = 1;
-    private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id;
+    private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform;
     private double speed=0.0;
     private ImageView iv_rtk_status,iv_head;
 
@@ -229,6 +229,7 @@
                 if (appStatus != null){
                     Log.i(TAG, "onChanged: "+appStatus.toString());
                     iv_rtk_status.getDrawable().setLevel(appStatus.getRtk_connect_status());
+                    tv_work_platform.setText(getString(R.string.platform_status,ExamPlatformData.getInstance().getExamplatformStatusStr(appStatus.getWork_platform())));
                     tv_sat_num.setText(String.valueOf(appStatus.getDefault_observe1()).length()==1?"0"+appStatus.getDefault_observe1():String.valueOf(appStatus.getDefault_observe1()));
                 }
             }
@@ -341,6 +342,7 @@
         houseView = view.findViewById(R.id.hv);
         tv_name = view.findViewById(R.id.tv_name);
         tv_id = view.findViewById(R.id.tv_ID);
+        tv_work_platform = view.findViewById(R.id.platform);
 
         iv_rtk_status = view.findViewById(R.id.iv_rtk_connect);
         iv_head = view.findViewById(R.id.iv_head);
diff --git a/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java b/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java
index 2874640..4be28e9 100644
--- a/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java
+++ b/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java
@@ -1,7 +1,13 @@
 package safeluck.drive.evaluation.im;
 
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+
+import com.anyun.exam.lib.MyLog;
 import com.anyun.im_lib.listener.OnEventListener;
 
+import safeluck.drive.evaluation.app;
 import safeluck.drive.evaluation.platformMessage.JKMessage0002;
 import safeluck.drive.evaluation.platformMessage.utils.MessageEscaper;
 
@@ -29,7 +35,10 @@
 
     @Override
     public boolean isNetWorkAvailable() {
-        return true;
+        ConnectivityManager connectivityManager = (ConnectivityManager) app.getAppContext().getSystemService(Context.CONNECTIVITY_SERVICE);
+        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
+        MyLog.i("IsNetworkAvaliable"+networkInfo!=null&&networkInfo.isConnected());
+        return networkInfo!=null&&networkInfo.isConnected();
     }
 
     /**
diff --git a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
index 3cf3798..68e5b1f 100644
--- a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
+++ b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
@@ -19,6 +19,7 @@
 import safeluck.drive.evaluation.Constant;
 import safeluck.drive.evaluation.DB.StudentInfoUpdateWork;
 import safeluck.drive.evaluation.app;
+import safeluck.drive.evaluation.bean.ExamPlatformData;
 import safeluck.drive.evaluation.platformMessage.JK2019MessageBase;
 import safeluck.drive.evaluation.platformMessage.JKMessage0001;
 import safeluck.drive.evaluation.platformMessage.JKMessage0100;
@@ -73,12 +74,18 @@
                 JKMessage0101 jkMessage0101 = new JKMessage0101();
                 jkMessage0101.des =((JKMessage8100) jk2019MessageBase).des;
                 jkMessage0101.timestamp = (int) System.currentTimeMillis();
+                ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_REGISTERED);
+            }else{
+                ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_REGISTERED);
             }
         }else if (jk2019MessageBase instanceof JKMessage8001){
             JKMessage8001 jkMessage8001 = (JKMessage8001) jk2019MessageBase;
             String hexMessageId = jkMessage8001.respMessageId;
             if (hexMessageId.equalsIgnoreCase("0101")){
                 MyLog.i(PlatFormConstant.TAG,"閴存潈鎴愬姛");
+                ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_LOGIN);
+            }else{
+                ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_NOT_LOGIN);
             }
         }else if (jk2019MessageBase instanceof JKMessage8201){
             JKMessage8201 jkMessage8201 = (JKMessage8201) jk2019MessageBase;
diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java
index 7a0bf74..b8723e1 100644
--- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java
+++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java
@@ -69,7 +69,7 @@
         }
         //璁$畻娑堟伅浣撻暱搴�
         String hex = super.toString();
-        Log.i(PlatFormConstant.TAG, "toString: 娑堟伅浣撻暱搴︼細"+hex);
+//        Log.i(PlatFormConstant.TAG, "toString: 娑堟伅浣撻暱搴︼細"+hex);
         int message_head_len = 19;
         if(this.isMultiPacket())
         {
diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java
index 184a749..81f86ac 100644
--- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java
+++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java
@@ -16,7 +16,6 @@
 
     @Override
     public String encode(String str) {
-        Log.i(TAG, "encode: "+str);
         if(str==null||"".equalsIgnoreCase(str))
         {
 //            str ="00000000000";
diff --git a/app/src/main/res/drawable/antenna.png b/app/src/main/res/drawable/antenna.png
index 8a96dfc..dc19910 100644
--- a/app/src/main/res/drawable/antenna.png
+++ b/app/src/main/res/drawable/antenna.png
Binary files differ
diff --git a/app/src/main/res/drawable/antenna_red.png b/app/src/main/res/drawable/antenna_red.png
index 88d8282..b39d956 100644
--- a/app/src/main/res/drawable/antenna_red.png
+++ b/app/src/main/res/drawable/antenna_red.png
Binary files differ
diff --git a/app/src/main/res/drawable/gps.png b/app/src/main/res/drawable/gps.png
index 7c9333a..444804c 100644
--- a/app/src/main/res/drawable/gps.png
+++ b/app/src/main/res/drawable/gps.png
Binary files differ
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 6f8b170..96d9db5 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -6,6 +6,7 @@
     android:layout_height="match_parent"
     tools:context=".MainActivity">
 
+
     <FrameLayout
         android:id="@+id/fl_container"
         android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/layout_net_train.xml b/app/src/main/res/layout/layout_net_train.xml
index 152bb34..4cf1317 100644
--- a/app/src/main/res/layout/layout_net_train.xml
+++ b/app/src/main/res/layout/layout_net_train.xml
@@ -5,7 +5,10 @@
   android:layout_width="0dp"
     android:layout_weight="4"
     android:layout_height="match_parent"
-    android:padding="5dp"
+    android:paddingTop="2dp"
+    android:paddingBottom="2dp"
+    android:paddingLeft="5dp"
+    android:paddingRight="5dp"
     android:gravity="center"
     android:orientation="vertical"
     android:background="@color/train_bg"
diff --git a/app/src/main/res/layout/layout_train_fragment.xml b/app/src/main/res/layout/layout_train_fragment.xml
index 8489c27..fba737e 100644
--- a/app/src/main/res/layout/layout_train_fragment.xml
+++ b/app/src/main/res/layout/layout_train_fragment.xml
@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ScrollView
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
     android:background="@color/home_bg_color">
-
+<include layout="@layout/networktoolbar"/>
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:id="@+id/ll"
             android:orientation="vertical">
-            <include  android:layout_marginBottom="10dp"  android:layout_width="match_parent" android:layout_height="120dp" android:id="@+id/profile" layout="@layout/profile_layout"/>
-            <include android:layout_marginBottom="10dp"  android:layout_width="match_parent" android:layout_height="170dp"  layout="@layout/layout_net_train"/>
+            <include  android:layout_marginBottom="2dp"  android:layout_width="match_parent" android:layout_height="110dp" android:id="@+id/profile" layout="@layout/profile_layout"/>
+            <include android:layout_marginBottom="2dp"  android:layout_width="match_parent" android:layout_height="140dp"  layout="@layout/layout_net_train"/>
 
-            <include android:layout_marginBottom="10dp" android:layout_width="match_parent" android:layout_height="240dp" layout="@layout/layout_stu_score"/>
+            <include android:layout_marginBottom="2dp" android:layout_width="match_parent" android:layout_height="match_parent" layout="@layout/layout_stu_score"/>
         </LinearLayout>
 
 
 
 
 
-</ScrollView>
\ No newline at end of file
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/networktoolbar.xml b/app/src/main/res/layout/networktoolbar.xml
new file mode 100644
index 0000000..fa052e0
--- /dev/null
+++ b/app/src/main/res/layout/networktoolbar.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout>
+    <com.google.android.material.appbar.AppBarLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:theme="@style/AppTheme.AppBarOverlay">
+
+        <androidx.appcompat.widget.Toolbar
+            android:id="@+id/toolbar"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/actionbarsizehalf"
+            android:background="?attr/colorPrimary"
+            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+            app:popupTheme="@style/AppTheme.NoActionBar.PopupOverlay"
+            app:titleTextAppearance="@style/Toolbar_TextAppearance_White">
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="02"
+                android:gravity="center"
+                android:drawableLeft="@drawable/gps"
+                android:textColor="@android:color/white" />
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/iv_rtk_connect"
+                android:layout_marginLeft="50dp"
+                android:src="@drawable/antennaxml"/>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:id="@+id/network_time"
+                android:singleLine="true"
+                android:textColor="@android:color/white"
+                android:text="12:34:33"/>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/platform"
+                android:singleLine="true"
+                android:layout_gravity="end"
+                android:textColor="@android:color/white"
+                android:text="@string/platform_status"/>
+        </androidx.appcompat.widget.Toolbar>
+    </com.google.android.material.appbar.AppBarLayout>
+</layout>
diff --git a/app/src/main/res/layout/profile_layout.xml b/app/src/main/res/layout/profile_layout.xml
index 54dd779..c6cac4f 100644
--- a/app/src/main/res/layout/profile_layout.xml
+++ b/app/src/main/res/layout/profile_layout.xml
@@ -124,6 +124,7 @@
     </LinearLayout>
 
     <RelativeLayout
+        android:visibility="gone"
         android:layout_width="0dp"
         android:layout_height="90dp"
         android:layout_marginLeft="10dp"
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index e2f7b21..f4c539b 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <dimen name="bottombar_height">0dp</dimen>
+    <dimen name="actionbarsizehalf">28dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9adfd76..f46b305 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -34,4 +34,5 @@
     <string name="mcu_info">鍗忓鐞嗗櫒淇℃伅锛�</string>
     <string name="chesu">杞﹂�燂細</string>
     <string name="engine">杞�燂細</string>
+    <string name="platform_status">鑰冭瘯骞冲彴锛�%1$s</string>
 </resources>
diff --git a/build.gradle b/build.gradle
index 7c33808..a9e1add 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,7 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 
 buildscript {
+    ext.kotlin_version = '1.3.70'
     repositories {
         google()
         jcenter()
@@ -12,8 +13,9 @@
         lifecycleVersion = '2.1.0'
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.4.0'
-        
+        classpath 'com.android.tools.build:gradle:3.5.0'
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
     }
diff --git a/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java b/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
index a94be4a..8c9d9d4 100644
--- a/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
+++ b/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
@@ -333,6 +333,7 @@
 
         if (channel == null){
             MyLog.i("PlatformMessage", "sendMsg fail,channel涓虹┖"+msg);
+            return;
         }
         try {
             MyLog.i("PlatformMessage", "sendMsg: "+ BytesUtils.bytesToHexString(msg));
diff --git a/im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java b/im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java
index 2270531..233d66a 100644
--- a/im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java
+++ b/im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java
@@ -9,7 +9,6 @@
     public static byte[] subArray(byte[] srcBytes, int begin, int length) {
         byte[] bytes = new byte[length];
         System.arraycopy(srcBytes,begin,bytes,0,length);
-        Log.i("ArrayUtils", "subArray: "+byte2HexStr(bytes));
         return bytes;
     }
 }
diff --git a/lib/src/main/cpp/test_items/driving_curve.cpp b/lib/src/main/cpp/test_items/driving_curve.cpp
index 3a3cd49..a2bd5d0 100644
--- a/lib/src/main/cpp/test_items/driving_curve.cpp
+++ b/lib/src/main/cpp/test_items/driving_curve.cpp
@@ -9,6 +9,7 @@
 #include "../utils/xconvert.h"
 
 #include <vector>
+#include <cstdlib>
 
 using namespace std;
 

--
Gitblit v1.8.0