From fff165b3215de255000cb133d51ceb03b5202bd6 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期五, 10 一月 2020 16:07:39 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge

---
 app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java        |    1 
 app/src/main/java/safeluck/drive/evaluation/Constant.java                            |    5 
 app/src/main/assets/rtk_config.json                                                  |    2 
 app/src/main/res/layout/layout_home_fragment.xml                                     |    2 
 app/src/main/res/values/strings.xml                                                  |    8 
 app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java       |   10 
 app/src/main/res/layout/layout_rtk_setting.xml                                       |   67 +++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java              |   10 +
 app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java          |   47 +++++
 app/src/main/java/safeluck/drive/evaluation/app.java                                 |   96 ++--------
 app/src/main/java/safeluck/drive/evaluation/MainActivity.java                        |  128 ++++++++++++-
 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java               |    3 
 app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java               |   24 ++
 app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLoginViewModel.java |   15 +
 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java          |   21 --
 app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java            |   61 ++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java       |    8 
 app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLogin.java          |   32 +++
 18 files changed, 417 insertions(+), 123 deletions(-)

diff --git a/app/src/main/assets/rtk_config.json b/app/src/main/assets/rtk_config.json
index 92c9e6b..4b05563 100644
--- a/app/src/main/assets/rtk_config.json
+++ b/app/src/main/assets/rtk_config.json
@@ -9,7 +9,7 @@
     "imei":"460123874561",
     "phone":"2019101500000001",
     "password":"123456789",
-    "registered":1,
+    "registered":0,
     "interval":1
   }
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index 2993eb3..ac559cd 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -45,11 +45,14 @@
     public static final int JUDGE_INFO = 0x000c;
 
     public static final String RTK_CONFIG_JSON = "rtk_config.json";
-    public static final String BIND_DRIVING_TOPIC = "driving";
+    public static final String BIND_DRIVING_TOPIC = "driving_topic";
     public static final long TEST_STU_ID = 1001;
 
     //I绫昏瘎鍒よ〃
     public static final int SUBJECT_I = 1;
     public static final String MAP = "map.json";
     public static final String VEHICLE = "vehiclemodel.json";
+    public static final String BIND_RTKCONFIG_TOPIC = "rtkconfig_topic";
+
+    public static final String BIND_CONNECT_RTK_TOPIC = "rtk_connect_login_topic";
 }
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 85d9de4..e0428c1 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
@@ -19,6 +19,5 @@
     @Update
     void update(RTKConfig rtkConfig);
 
-    @Query("SELECT * from rtkconfig_table")
-    RTKConfig getRTKConfigNoLive();
+
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java
index 4f67f92..60d2280 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java
@@ -12,18 +12,10 @@
     private static final String TAG = "RTKWorkRepository";
     private RTKConfigDao rtkConfigDao;
     private LiveData<RTKConfig> rtkConfig;
-    private RTKConfig rtkConfig1;
 
     public RTKWorkRepository(Application application) {
         rtkConfigDao = WorkRoomDataBase.getWorkRoomDataBase(application).getRTKConfigDao();
         rtkConfig = rtkConfigDao.getRTKConfig();
-        WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
-            @Override
-            public void run() {
-                MyLog.d(TAG,"鑾峰彇RTK閰嶇疆淇℃伅琛�");
-                rtkConfig1 = rtkConfigDao.getRTKConfigNoLive();
-            }
-        });
 
     }
 
@@ -49,16 +41,5 @@
         });
     }
 
-    public RTKConfig getRTKConfigNoLive() {
-        if (rtkConfig1 == null){
-            WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
-                @Override
-                public void run() {
-                    MyLog.d(TAG,"鍐嶆鑾峰彇RTK閰嶇疆淇℃伅琛�");
-                    rtkConfig1 = rtkConfigDao.getRTKConfigNoLive();
-                }
-            });
-        }
-        return rtkConfig1;
-    }
+
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index 98a0b6e..0db08b7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -19,21 +19,107 @@
 import me.yokeyword.fragmentation.SupportActivity;
 import safeluck.drive.evaluation.DB.Student;
 import safeluck.drive.evaluation.DB.WokViewModel;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
+import safeluck.drive.evaluation.cEventCenter.CEventCenter;
+import safeluck.drive.evaluation.cEventCenter.ICEventListener;
 import safeluck.drive.evaluation.fragment.HomeFragment;
+
+import com.anyun.exam.lib.AYSdk;
 import com.anyun.exam.lib.MyLog;
+import com.google.gson.Gson;
+
+import org.json.JSONException;
+import org.json.JSONObject;
 
 import java.util.List;
 
 import safeluck.drive.evaluation.util.PermissionManager;
 import safeluck.drive.evaluation.viewmodels.MainViewModel;
+import safeluck.drive.evaluation.viewmodels.RTKConnAndLogin;
+import safeluck.drive.evaluation.viewmodels.RTKConnAndLoginViewModel;
 
 public class MainActivity extends SupportActivity {
 
     private static final int PERMISSIONS_REQUEST_CODE = 1001;
     private String TAG = MainActivity.class.getCanonicalName();
 
-    private PermissionManager mPermissionsManager ;
-    String[] PERMISSIONS = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA};
+    private PermissionManager mPermissionsManager;
+    private RTKConfig mRTKConfig;//RTK閰嶇疆淇℃伅
+    private Gson gson = new Gson();
+    String[] PERMISSIONS = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA};
+    RTKConnAndLoginViewModel rtkConnAndLoginViewModel;
+    RTKConnAndLogin rtkConnAndLogin;
+    RTKConfigViewModel rtkConfigViewModel;
+
+    private ICEventListener icEventListener = new ICEventListener() {
+        @Override
+        public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {
+            if (msgCode == Constant.FETCH_RTK_PLATFORM_INFO) {
+                if (mRTKConfig != null) {
+                    String rtkjson = gson.toJson(mRTKConfig);
+
+                    //鍘婚櫎id瀛楁
+                    JSONObject jsonObject = null;
+                    try {
+                        jsonObject = new JSONObject(rtkjson);
+                    } catch (JSONException e) {
+                        e.printStackTrace();
+                    }
+                    jsonObject.remove("_id");
+                    rtkjson = null;
+                    rtkjson = jsonObject.toString();
+                    MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + rtkjson);
+                    AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO, rtkjson);
+                } else {
+                    MyLog.d(TAG, "RTKConfig鏈彇鍒版暟鎹�");
+                }
+            }
+            if (msgCode == Constant.RTK_PLATFORM_CONNECT_STATUS || msgCode == Constant.RTK_PLATFORM_REGISTER_RESULT) {
+                if (msgCode == Constant.RTK_PLATFORM_REGISTER_RESULT) {
+                    try {
+                        JSONObject jsonObject3 = new JSONObject((String) obj);
+                        int loginCode = jsonObject3.getInt("login_code");
+                        MyLog.d(TAG, "RTK骞冲彴鐧诲綍缁撴灉锛�" + loginCode);
+                        rtkConnAndLogin.setLogin_code(loginCode);
+
+                    } catch (JSONException e) {
+                        e.printStackTrace();
+                    }
+
+                } else {
+                    try {
+                        JSONObject jsonObject3 = new JSONObject((String) obj);
+                        int connect_status = jsonObject3.getInt("connected");
+                        MyLog.i(TAG, "RTK骞冲彴杩炴帴鐘舵�侊細" + connect_status);
+                        rtkConnAndLogin.setLogin_code(connect_status);
+
+                    } catch (JSONException e) {
+                        e.printStackTrace();
+                    }
+
+                }
+                rtkConnAndLoginViewModel.getRtkConnAndLogin().postValue(rtkConnAndLogin);
+            }
+            if (msgCode == Constant.RTK_PLATFORM_REGISTER_STATUS) {
+                try {
+                    JSONObject jsonObject = new JSONObject((String) obj);
+                    String rtkLoginPwd = jsonObject.getString("password");
+                    int reg_code = jsonObject.getInt("register_code");
+                    if (mRTKConfig != null) {
+
+                        mRTKConfig.setPassword(rtkLoginPwd);
+                        mRTKConfig.setRegistered(reg_code);
+                        rtkConfigViewModel.insertRTKConfig(mRTKConfig);
+                    }else{
+                        MyLog.i(TAG,"mRTKConfig == null");
+                    }
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    };
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -46,14 +132,25 @@
         wokViewModel.getStudents().observe(this, new Observer<List<Student>>() {
             @Override
             public void onChanged(List<Student> students) {
-                for (Student student:
+                for (Student student :
                         students) {
-                    Log.i(TAG, "onChanged: "+student.toString());
+                    Log.i(TAG, "onChanged: " + student.toString());
                 }
             }
         });
 
+        rtkConfigViewModel  = ViewModelProviders.of(this).get(RTKConfigViewModel.class);
+        rtkConfigViewModel.getRTKConfig().observe(this, new Observer<RTKConfig>() {
+            @Override
+            public void onChanged(RTKConfig rtkConfig) {
 
+                MyLog.i(TAG, "RTKConfig Changed: " + (rtkConfig != null ? rtkConfig.toString() : "null"));
+                mRTKConfig = rtkConfig;
+            }
+        });
+
+        rtkConnAndLoginViewModel = ViewModelProviders.of(this).get(RTKConnAndLoginViewModel.class);
+        rtkConnAndLogin = new RTKConnAndLogin();
 
 
         mPermissionsManager = new PermissionManager(this) {
@@ -66,7 +163,7 @@
             public void noAuthorization(int requestCode, String[] lackPermissions) {
                 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                 builder.setTitle("鎻愮ず");
-                builder.setMessage("缂哄皯"+lackPermissions+"鏉冮檺");
+                builder.setMessage("缂哄皯" + lackPermissions + "鏉冮檺");
                 builder.setPositiveButton("璁剧疆鏉冮檺", new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
@@ -83,40 +180,45 @@
         };
 
 
-
-
-        MyLog.i(TAG,"onCreate");
+        MyLog.i(TAG, "onCreate");
         MainViewModel mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class);
         mainViewModel.getJson().observe(this, new Observer<String>() {
             @Override
             public void onChanged(@Nullable String json) {
                 Toast.makeText(MainActivity.this, json, Toast.LENGTH_SHORT).show();
-                MyLog.i(TAG,"json=========="+json+" ThreadName:"+Thread.currentThread().getName());
+                MyLog.i(TAG, "json==========" + json + " ThreadName:" + Thread.currentThread().getName());
 
             }
         });
 
         //鍔犺浇鏍笷ragment
-        if (findFragment(HomeFragment.class) == null){
-            loadRootFragment(R.id.fl_container,HomeFragment.newInstance());
+        if (findFragment(HomeFragment.class) == null) {
+            loadRootFragment(R.id.fl_container, HomeFragment.newInstance());
         }
+
+        CEventCenter.onBindEvent(true, icEventListener, Constant.BIND_RTKCONFIG_TOPIC);//鍙戦�乺tk閰嶇疆娑堟伅
+        CEventCenter.onBindEvent(true, icEventListener, Constant.BIND_CONNECT_RTK_TOPIC);//鏀跺埌rtk杩炴帴 鐧诲綍缁撴灉
+
     }
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        CEventCenter.onBindEvent(false, icEventListener, Constant.BIND_RTKCONFIG_TOPIC);
+
+        CEventCenter.onBindEvent(false, icEventListener, Constant.BIND_CONNECT_RTK_TOPIC);
         Log.i(TAG, "onDestroy: ");
     }
 
     @Override
     protected void onResume() {
         super.onResume();
-        mPermissionsManager.checkPermissions(PERMISSIONS_REQUEST_CODE,PERMISSIONS);
+        mPermissionsManager.checkPermissions(PERMISSIONS_REQUEST_CODE, PERMISSIONS);
     }
 
     @Override
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-        mPermissionsManager.recheckPermissions(PERMISSIONS_REQUEST_CODE,permissions,grantResults);
+        mPermissionsManager.recheckPermissions(PERMISSIONS_REQUEST_CODE, permissions, grantResults);
     }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java b/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java
index 3de4266..5b04a49 100644
--- a/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java
+++ b/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java
@@ -9,6 +9,7 @@
 
 import me.yokeyword.fragmentation.SupportFragment;
 import safeluck.drive.evaluation.fragment.BaseDatasFragment;
+import safeluck.drive.evaluation.fragment.GpsInfoFragment;
 import safeluck.drive.evaluation.fragment.RTKConfigFragment;
 import safeluck.drive.evaluation.fragment.JiaXiaoFragment;
 
@@ -20,7 +21,7 @@
  * All Rights Saved! Chongqing AnYun Tech co. LTD
  */
 public class SimpleFragmentAdapter  extends FragmentPagerAdapter {
-    private String[] mTitles = new String[]{"鍩虹鏁版嵁","RTK閰嶇疆","椹炬牎淇℃伅"};
+    private String[] mTitles = new String[]{"鍩虹鏁版嵁","RTK閰嶇疆","GPS淇℃伅"};
     public SimpleFragmentAdapter(FragmentManager fm) {
         super(fm);
     }
@@ -37,9 +38,12 @@
                 supportFragment = RTKConfigFragment.newInstance();
                 //ftp
                 break;
+//            case 2:
+//                supportFragment = JiaXiaoFragment.newInstance();
+//                //椹炬牎淇℃伅
+//                break;
             case 2:
-                supportFragment = JiaXiaoFragment.newInstance();
-                //椹炬牎淇℃伅
+                supportFragment = GpsInfoFragment.newInstance();
                 break;
                 default:break;
         }
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 6465d57..b346f70 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -1,6 +1,7 @@
 package safeluck.drive.evaluation;
 
 import android.app.Application;
+import android.text.TextUtils;
 import android.widget.Toast;
 
 
@@ -16,6 +17,9 @@
 import com.anyun.exam.lib.crash.CrashHandler;
 import com.facebook.stetho.Stetho;
 import com.google.gson.Gson;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 
 
 import org.json.JSONException;
@@ -27,6 +31,8 @@
 import safeluck.drive.evaluation.DB.failitems.FailedProjRepository;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
 import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository;
+import safeluck.drive.evaluation.cEventCenter.CEvent;
+import safeluck.drive.evaluation.cEventCenter.CEventCenter;
 import safeluck.drive.evaluation.util.FileUtil;
 import safeluck.drive.evaluation.util.SystemUtil;
 
@@ -67,17 +73,7 @@
             Stetho.initializeWithDefaults(this);
 
 
-            //RTK閰嶇疆淇℃伅
-//            rtkConfig = new RTKConfig();
-//            rtkConfig.setCity(12);
-//            rtkConfig.setImei("460123874561");
-//            rtkConfig.setInterval(1);
-//            rtkConfig.setIp("47.93.80.84");
-//            rtkConfig.setModel("123");
-//            rtkConfig.setPhone("2019101500000001");
-//            rtkConfig.setPort(12125);
-//            rtkConfig.setProvince(23);
-//            rtkConfig.setSn("2019101500000001");
+
             //鏁版嵁搴撴搷浣�
             MyLog.i(TAG, "onCreate111");
             failedProjRepository = new FailedProjRepository(this);
@@ -104,70 +100,34 @@
         MyLog.d(TAG, String.format("鏀跺埌鍛戒护[%d],Json鍐呭涓�%s", cmd, json));
         switch (cmd) {
             case Constant.NDK_START:
-                Toast.makeText(this, "NDK start", Toast.LENGTH_SHORT).show();
+
                 break;
             case Constant.RTK_PLATFORM_REGISTER_STATUS:
+                //RTK骞冲彴娉ㄥ唽鐘舵�侊紝闇�瑕佷繚瀛樻暟鎹簱
+                CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json);
 
-                failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(26), Constant.TEST_STU_ID));
-                rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
-
-                try {
-                    JSONObject jsonObject = new JSONObject(json);
-                    String rtkLoginPwd = jsonObject.getString("password");
-                    int reg_code = jsonObject.getInt("register_code");
-                    rtkConfig.setPassword(rtkLoginPwd);
-                    rtkConfig.setRegistered(reg_code);
-                } catch (JSONException e) {
-                    e.printStackTrace();
-                }
-                rtkWorkRepository.insertRTKConfig(rtkConfig);
                 break;
             case Constant.RTK_PLATFORM_REGISTER_RESULT:
 
-                failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(26), Constant.TEST_STU_ID));
-
-                try {
-                    JSONObject jsonObject = new JSONObject(json);
-                    int rtklogincode = jsonObject.getInt("login_code");
-                    rtkConfig.setRegistered(rtklogincode);
-                } catch (JSONException e) {
-                    e.printStackTrace();
-                }
+                //RTK骞冲彴鐧诲綍缁撴灉
+                CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json);
 
 
                 break;
             case Constant.FETCH_RTK_PLATFORM_INFO:
-                rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
-                if (gson == null) {
-                    gson = new Gson();
-                }
-                if (rtkConfig==null){
-
-                    rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
-                }
-                if (rtkConfig != null){
-                    String rtkjson = gson.toJson(rtkConfig);
-                    MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + rtkjson);
-
-                    //鍘婚櫎id瀛楁
-                    JSONObject jsonObject = null;
-                    try {
-                        jsonObject = new JSONObject(rtkjson);
-                    } catch (JSONException e) {
-                        e.printStackTrace();
-                    }
-                    jsonObject.remove("_id");
-                    rtkjson = null;
-                    rtkjson = jsonObject.toString();
-                    MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + rtkjson);
-                    AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO, rtkjson);
-                }
-
+                CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,cmd,0,"");
                 break;
             case Constant.JUDGE_INFO:
 
+                if(!TextUtils.isEmpty(json)){
+                    JsonArray jsonArray = JsonParser.parseString(json).getAsJsonArray();
+                    for (int i = 0; i < jsonArray.size(); i++) {
+                        JsonObject jsonObject = jsonArray.get(i).getAsJsonObject();
+                        int emp_id = jsonObject.get("wrong_id").getAsInt();
 
-                failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd, Constant.TEST_STU_ID));
+                        failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID));
+                    }
+                }
 
                 break;
             case Constant.EXAM_STATUS_REPLY:
@@ -175,20 +135,8 @@
                 failedProjRepository.deleteAll();
                 break;
             case Constant.RTK_PLATFORM_CONNECT_STATUS:
-                rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
 
-                try {
-                    JSONObject jsonObject3 = new JSONObject(json);
-                    String ip = jsonObject3.getString("ip");
-                    int port = jsonObject3.getInt("port");
-                    int reg_code = jsonObject3.getInt("connected");
-                    rtkConfig.setRegistered(reg_code);
-                    rtkConfig.setIp(ip);
-                    rtkConfig.setPort(port);
-                } catch (JSONException e) {
-                    e.printStackTrace();
-                }
-                rtkWorkRepository.insertRTKConfig(rtkConfig);
+                CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json);
                 break;
             case Constant.FETCH_MAP_INFO:
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java
index 8ce6107..20f7fc7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseSettingFragment.java
@@ -59,6 +59,7 @@
         tabLayout.addTab(tabLayout.newTab());
         tabLayout.addTab(tabLayout.newTab());
         tabLayout.addTab(tabLayout.newTab());
+//        tabLayout.addTab(tabLayout.newTab());
         tb = view.findViewById(R.id.toolbar);
         tb.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp);
         tb.setNavigationOnClickListener(new View.OnClickListener() {
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java
new file mode 100644
index 0000000..93ea834
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java
@@ -0,0 +1,61 @@
+package safeluck.drive.evaluation.fragment;
+
+import android.os.Bundle;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
+
+import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
+import safeluck.drive.evaluation.R;
+import safeluck.drive.evaluation.util.Utils;
+
+/**FTP閰嶇疆UI
+ * MyApplication2
+ * Created by lzw on 2019/3/20. 11:22:39
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class GpsInfoFragment extends SupportFragment{
+
+    private static final String TAG = "RTKConfigFragment";
+
+    private EditText et_ip,et_port,et_city_id,et_city_province,et_phone;
+    private RTKConfigViewModel rtkConfigViewModel;
+    private RTKConfig mRtkConfig;
+
+    public static SupportFragment newInstance(){
+        return new GpsInfoFragment();
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+
+
+
+        return initView();
+    }
+
+    private View initView() {
+        TextView textView = new TextView(_mActivity);
+        ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        textView.setText("鏀跺埌鍛戒护[3],Json鍐呭涓簕\"connected\":0,\"ip\":\"47.93.80.84\",\"port\":12125}");
+        textView.setTextSize(Utils.dp2Px(20));
+        textView.setLayoutParams(layoutParams);
+        textView.setGravity(Gravity.CENTER_VERTICAL);
+        return textView;
+    }
+
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
index abd31ce..e32bcda 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
@@ -7,6 +7,7 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.TextView;
 
 
 import androidx.annotation.NonNull;
@@ -18,6 +19,7 @@
 
 import me.yokeyword.fragmentation.ISupportFragment;
 import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.BuildConfig;
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.util.DimenUtil;
 
@@ -29,6 +31,8 @@
  * All Rights Saved! Chongqing AnYun Tech co. LTD
  */
 public class HomeFragment extends SupportFragment implements View.OnClickListener {
+
+    private TextView tv_app_version;
     public static ISupportFragment newInstance() {
         return new HomeFragment();
     }
@@ -47,6 +51,9 @@
         view.findViewById(R.id.car_train).setOnClickListener(this);
         view.findViewById(R.id.system_setting).setOnClickListener(this);
         view.findViewById(R.id.exit_sys).setOnClickListener(this);
+        tv_app_version = view.findViewById(R.id.tv_app_version);
+
+        tv_app_version.setText(getResources().getString(R.string.version_name,BuildConfig.VERSION_NAME));
     }
 
 
@@ -99,13 +106,18 @@
                 break;
             case R.id.system_setting:
                 //鎵撳紑杈撳叆瀵嗙爜鐣岄潰
-                PasswordFragment passwordFragment = findFragment(PasswordFragment.class);
-                if (passwordFragment == null) {
-                    passwordFragment = (PasswordFragment) PasswordFragment.newInstance();
-                    start(passwordFragment);
-                } else {
-                    start(passwordFragment);
+//                PasswordFragment passwordFragment = findFragment(PasswordFragment.class);
+//                if (passwordFragment == null) {
+//                    passwordFragment = (PasswordFragment) PasswordFragment.newInstance();
+//                    start(passwordFragment);
+//                } else {
+//                    start(passwordFragment);
+//                }
+                BaseSettingFragment sysSetingFragment = findFragment(BaseSettingFragment.class);
+                if (sysSetingFragment == null) {
+                    sysSetingFragment = (BaseSettingFragment) BaseSettingFragment.newInstance();
                 }
+                start(sysSetingFragment);
 
                 break;
         }
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 9c1603d..f239c8a 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -17,6 +17,7 @@
 import androidx.lifecycle.ViewModelProviders;
 
 import com.anyun.exam.lib.AYSdk;
+import com.anyun.exam.lib.MyLog;
 import com.google.gson.Gson;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
@@ -35,6 +36,7 @@
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.adapter.ScoreAdapter;
 import safeluck.drive.evaluation.bean.ScoreBean;
+import safeluck.drive.evaluation.cEventCenter.CEventCenter;
 
 /**
  * 鑱旂綉璁粌UI
@@ -85,6 +87,7 @@
     }
 
     private void initView(View view) {
+        sendRTKConfig2RemoteService();
         mListView = view.findViewById(R.id.lv);
         mListView.setFocusable(false);
         view.findViewById(R.id.view_map).setOnClickListener(this);
@@ -96,7 +99,10 @@
         mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item,null));
 
     }
-
+    private void sendRTKConfig2RemoteService() {
+        MyLog.d(TAG,"涓诲姩鎺ㄩ�丷TKConfig");
+        CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,Constant.FETCH_RTK_PLATFORM_INFO,0,"");
+    }
     @Override
     public void onClick(View v) {
         switch (v.getId()){
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java
index e6506df..4d424ba 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java
@@ -1,5 +1,6 @@
 package safeluck.drive.evaluation.fragment;
 
+import android.content.Context;
 import android.os.Bundle;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -11,13 +12,20 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.EditText;
+import android.widget.TextView;
 
+import com.anyun.exam.lib.MyLog;
 import com.google.gson.Gson;
 
 import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.Constant;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
+import safeluck.drive.evaluation.cEventCenter.CEventCenter;
+import safeluck.drive.evaluation.cEventCenter.ICEventListener;
+import safeluck.drive.evaluation.viewmodels.RTKConnAndLogin;
+import safeluck.drive.evaluation.viewmodels.RTKConnAndLoginViewModel;
 
 /**FTP閰嶇疆UI
  * MyApplication2
@@ -30,6 +38,8 @@
     private static final String TAG = "RTKConfigFragment";
 
     private EditText et_ip,et_port,et_city_id,et_city_province,et_phone;
+    //              RTK娉ㄥ唽鐘舵�併�丷TK杩炴帴鐘舵�併��
+    private TextView tv_reg,tv_connect,tv_model,tv_sn,tv_imei,tv_login;
     private RTKConfigViewModel rtkConfigViewModel;
     private RTKConfig mRtkConfig;
 
@@ -55,8 +65,25 @@
                 et_city_province.setText(String.valueOf(rtkConfig.getProvince()));
                 et_port.setText(String.valueOf(rtkConfig.getPort()));
                 et_phone.setText(rtkConfig.getPhone());
+                tv_sn.setText(getResources().getString(R.string.rtk_config_sn,rtkConfig.getSn()));
+                tv_model.setText(getResources().getString(R.string.rtk_config_model,rtkConfig.getModel()));
+                tv_imei.setText(getResources().getString(R.string.rtk_config_imei,rtkConfig.getImei()));
+                tv_reg.setText(getResources().getString(R.string.rtk_register_status,rtkConfig.getRegistered()));
+
             }
         });
+
+
+        RTKConnAndLoginViewModel rtkConnAndLoginViewModel = ViewModelProviders.of(this).get(RTKConnAndLoginViewModel.class);
+        rtkConnAndLoginViewModel.getRtkConnAndLogin().observe(this, new Observer<RTKConnAndLogin>() {
+            @Override
+            public void onChanged(RTKConnAndLogin rtkConnAndLogin) {
+                MyLog.i(TAG,"骞冲彴鐧诲綍缁撴灉鍙婅繛鎺ョ姸鎬�"+rtkConnAndLogin.toString());
+                tv_connect.setText(getResources().getString(R.string.rtk_connect_status,rtkConnAndLogin.getConnect_status()));
+                tv_connect.setText(getResources().getString(R.string.rtk_config_login,rtkConnAndLogin.getLogin_code()));
+            }
+        });
+
         return view;
     }
 
@@ -67,6 +94,13 @@
         et_city_province = view.findViewById(R.id.et_provice_id);
         et_phone = view.findViewById(R.id.et_phone);
         et_port = view.findViewById(R.id.rtk_addr_port);
+
+        tv_connect = view.findViewById(R.id.tv_rtk_connect);//RTK骞冲彴杩炴帴鐘舵��
+        tv_imei = view.findViewById(R.id.tv_rtk_imei);
+        tv_login = view.findViewById(R.id.tv_rtk_login);//RTK骞冲彴鐧诲綍缁撴灉
+        tv_model = view.findViewById(R.id.tv_rtk_model);
+        tv_reg = view.findViewById(R.id.tv_rtk_reg);//RTK骞冲彴娉ㄥ唽鐘舵��
+        tv_sn = view.findViewById(R.id.tv_rtk_sn);
     }
 
     @Override
@@ -84,4 +118,17 @@
                 break;
         }
     }
+
+
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+    }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 4733a3a..e51a495 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -16,6 +16,8 @@
 import android.widget.ListView;
 import android.widget.Toast;
 
+import com.anyun.exam.lib.MyLog;
+
 import java.util.ArrayList;
 import java.util.EventListener;
 import java.util.List;
@@ -99,7 +101,7 @@
         return view;
     }
     private void initView(View view) {
-
+        sendRTKConfig2RemoteService();
         mListView = view.findViewById(R.id.lv);
         mListView.setFocusable(false);//listview涓嶈幏鍙栫劍鐐癸紝涓嶇劧鐨勮瘽scrollview浼氶《鍒板簳閮�
         view.findViewById(R.id.view_map).setOnClickListener(this);
@@ -112,6 +114,12 @@
         mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item,null));
 
 
+
+    }
+
+    private void sendRTKConfig2RemoteService() {
+        MyLog.d(TAG,"涓诲姩鎺ㄩ�丷TKConfig");
+        CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,Constant.FETCH_RTK_PLATFORM_INFO,0,"");
     }
 
     @Override
diff --git a/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLogin.java b/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLogin.java
new file mode 100644
index 0000000..b80d107
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLogin.java
@@ -0,0 +1,32 @@
+package safeluck.drive.evaluation.viewmodels;
+
+import androidx.annotation.NonNull;
+
+public class RTKConnAndLogin {
+    private int login_code = 1;//RTK骞冲彴鐧诲綍缁撴灉 0-鎴愬姛 鍏朵粬澶辫触
+    private int connect_status;//RTK骞冲彴杩炴帴鐘舵��
+
+    public int getLogin_code() {
+        return login_code;
+    }
+
+    public void setLogin_code(int login_code) {
+        this.login_code = login_code;
+    }
+
+    public int getConnect_status() {
+        return connect_status;
+    }
+
+    public void setConnect_status(int connect_status) {
+        this.connect_status = connect_status;
+    }
+
+    @Override
+    public String toString() {
+        return "RTKConnAndLogin{" +
+                "login_code=" + login_code +
+                ", connect_status=" + connect_status +
+                '}';
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLoginViewModel.java b/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLoginViewModel.java
new file mode 100644
index 0000000..5604021
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/viewmodels/RTKConnAndLoginViewModel.java
@@ -0,0 +1,15 @@
+package safeluck.drive.evaluation.viewmodels;
+
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.ViewModel;
+
+public class RTKConnAndLoginViewModel extends ViewModel {
+    private MutableLiveData<RTKConnAndLogin> rtkConnAndLogin;
+
+    public MutableLiveData<RTKConnAndLogin> getRtkConnAndLogin(){
+        if (rtkConnAndLogin == null){
+            rtkConnAndLogin = new MutableLiveData<>();
+        }
+        return rtkConnAndLogin;
+    }
+}
diff --git a/app/src/main/res/layout/layout_home_fragment.xml b/app/src/main/res/layout/layout_home_fragment.xml
index 85475b2..bc27716 100644
--- a/app/src/main/res/layout/layout_home_fragment.xml
+++ b/app/src/main/res/layout/layout_home_fragment.xml
@@ -91,6 +91,8 @@
         style="@style/home_fragment_text"
         android:text="@string/version_name"
         android:padding="10dp"
+        android:id="@+id/tv_app_version"
+        android:textSize="20sp"
         android:textColor="@color/home_version_show"
         android:layout_alignParentBottom="true"
         android:layout_alignParentEnd="true"/>
diff --git a/app/src/main/res/layout/layout_rtk_setting.xml b/app/src/main/res/layout/layout_rtk_setting.xml
index 7be4603..83faf92 100644
--- a/app/src/main/res/layout/layout_rtk_setting.xml
+++ b/app/src/main/res/layout/layout_rtk_setting.xml
@@ -98,6 +98,73 @@
         android:layout_marginBottom="10dp"
         android:background="@color/colorAccent"
         />
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <TextView
+            android:textColor="@android:color/black"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_rtk_reg"
+            android:text="@string/rtk_register_status"
+            android:layout_weight="1"/>
+        <TextView
+            android:textColor="@android:color/black"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_rtk_connect"
+            android:text="@string/rtk_connect_status"
+            android:layout_weight="1"/>
+        <TextView
+            android:textColor="@android:color/black"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_rtk_imei"
+            android:text="@string/rtk_config_imei"
+            android:layout_weight="1"/>
+
+    </LinearLayout>
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1px"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="10dp"
+        android:background="@color/colorAccent"
+        />
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <TextView
+            android:textColor="@android:color/black"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_rtk_login"
+            android:text="@string/rtk_config_login"
+            android:layout_weight="1"/> <TextView
+            android:textColor="@android:color/black"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_rtk_model"
+            android:text="@string/rtk_config_model"
+            android:layout_weight="1"/>
+        <TextView
+            android:textColor="@android:color/black"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_rtk_sn"
+            android:text="@string/rtk_config_sn"
+            android:layout_weight="1"/>
+
+    </LinearLayout>
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1px"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="10dp"
+        android:background="@color/colorAccent"
+        />
     <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 47b5726..55e1578 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -4,7 +4,7 @@
     <string name="setting">绯荤粺璁剧疆</string>
     <string name="vehicle_train">鍗曟満璁粌</string>
     <string name="vehicle_net">鑱旂綉鑰冭瘯</string>
-    <string name="version_name">v3.1</string>
+    <string name="version_name">v%1$s</string>
     <string name="user_id">韬唤璇佸彿:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</string>
     <string name="inspector">鑰冩牳鍛樼紪鍙�:</string>
     <string name="sys_setting">绯荤粺閰嶇疆</string>
@@ -18,4 +18,10 @@
     <string name="request_permission">This sample needs camera permission.</string>
     <string name="camera_error">This device doesn\'t support Camera2 API.</string>
     <string name="rtk_addr_des">RTK骞冲彴鍦板潃锛�</string>
+    <string name="rtk_register_status">RTK娉ㄥ唽鐘舵�侊細%1$d</string>
+    <string name="rtk_config_imei">IMEI:%1$s</string>
+    <string name="rtk_config_model">Model:%1$s</string>
+    <string name="rtk_config_sn">SN:%1$s</string>
+    <string name="rtk_connect_status">RTK杩炴帴鐘舵�侊細%1$d</string>
+    <string name="rtk_config_login">RTK鐧诲綍缁撴灉锛�%1$d</string>
 </resources>

--
Gitblit v1.8.0