From b5044d0daf6e6b5702b824d8f6f97c23fec454a0 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期五, 28 二月 2020 09:24:52 +0800
Subject: [PATCH] 提交mcu  info ,修改崩溃bug

---
 app/src/main/java/safeluck/drive/evaluation/Constant.java                   |    1 
 app/src/main/java/safeluck/drive/evaluation/app.java                        |    1 
 app/src/main/res/values/strings.xml                                         |    1 
 app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java |  187 +++++++++++++++++++++++---
 app/src/main/java/safeluck/drive/evaluation/bean/MCUInfo.java               |   68 +++++++++
 app/src/main/res/layout/layout_base_datas.xml                               |  115 ++++++++++++++++
 6 files changed, 347 insertions(+), 26 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index 4db9a15..28397fc 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -80,5 +80,6 @@
     public static final String STU_INFO_PLATFORM = "STU_INFO_PLATFORM";
     public static final int SHUTDOWN_TIME = 16;
     public static final int READ_PHYSICAL_ID = 0x8011;//4锛�	璇诲彇IC鍗�
+    public static final String BIND_MCUINFO_TOPIC = "bind_mcu_info_topic";
     public static String exam_enter_exitdata="exam_enter_exitdata";
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 1fbb278..7efed75 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -264,6 +264,7 @@
                 CEventCenter.dispatchEvent(Constant.BIND_DEBUG_TXT,cmd,0,json);
                 break;
             case Constant.MCU_SN:
+                CEventCenter.dispatchEvent(Constant.BIND_MCUINFO_TOPIC,cmd,0,json);
                 break;
             case Constant.IC_ID:
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/MCUInfo.java b/app/src/main/java/safeluck/drive/evaluation/bean/MCUInfo.java
new file mode 100644
index 0000000..109579b
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/MCUInfo.java
@@ -0,0 +1,68 @@
+package safeluck.drive.evaluation.bean;
+
+public class MCUInfo {
+
+    /**
+     * version : 414B535F335F30315F32303139313132395FB2FAB2E2
+     * selftest : 0
+     * gpio : 0
+     * speed : 0
+     * engine : 0
+     * sn : 0314200100000005
+     */
+
+    private String version;
+    private int selftest;
+    private int gpio;
+    private int speed;
+    private int engine;
+    private String sn;
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public int getSelftest() {
+        return selftest;
+    }
+
+    public void setSelftest(int selftest) {
+        this.selftest = selftest;
+    }
+
+    public int getGpio() {
+        return gpio;
+    }
+
+    public void setGpio(int gpio) {
+        this.gpio = gpio;
+    }
+
+    public int getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(int speed) {
+        this.speed = speed;
+    }
+
+    public int getEngine() {
+        return engine;
+    }
+
+    public void setEngine(int engine) {
+        this.engine = engine;
+    }
+
+    public String getSn() {
+        return sn;
+    }
+
+    public void setSn(String sn) {
+        this.sn = sn;
+    }
+}
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 5f85b3e..b73577a 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
@@ -1,10 +1,13 @@
 package safeluck.drive.evaluation.fragment;
 
+import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
 
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -12,20 +15,32 @@
 import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.EditText;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import com.anyun.exam.lib.AYSdk;
 import com.anyun.exam.lib.MyLog;
 import com.anyun.exam.lib.util.ByteUtil;
+import com.google.gson.Gson;
+import com.safeluck.aykj.utils.BytesUtils;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Field;
 import java.nio.charset.Charset;
 
 import me.yokeyword.fragmentation.SupportFragment;
 import safeluck.drive.evaluation.Constant;
+import safeluck.drive.evaluation.DB.appstatusdb.AppStatus;
+import safeluck.drive.evaluation.DB.appstatusdb.AppStatusViewModel;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
 import safeluck.drive.evaluation.MainActivity;
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.bean.ExamPlatformData;
+import safeluck.drive.evaluation.bean.MCUInfo;
+import safeluck.drive.evaluation.cEventCenter.CEventCenter;
+import safeluck.drive.evaluation.cEventCenter.ICEventListener;
 import safeluck.drive.evaluation.util.CThreadPoolExecutor;
 import safeluck.drive.evaluation.util.FileUtil;
 
@@ -47,6 +62,51 @@
     private Button btn_config_signal;
     private Button btn_mcu_upgrade,btn_map_select;
     private EditText et_ip,et_port;
+    private Gson gson;
+    StringBuffer stringBuffer = new StringBuffer();
+    private EditText et_ip_rtk,et_port_rtk,et_city_id,et_city_province,et_phone;
+    private TextView tv_mcu;
+    //              RTK娉ㄥ唽鐘舵�併�丷TK杩炴帴鐘舵�併��
+//    private TextView tv_reg,tv_connect,tv_model,tv_sn,tv_imei,tv_login;
+    private RTKConfigViewModel rtkConfigViewModel;
+    private RTKConfig mRtkConfig;
+    private AppStatusViewModel appStatusViewModel;
+    private ICEventListener icEventListener = new ICEventListener() {
+        @Override
+        public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {
+            if (msgCode == Constant.MCU_SN){
+                String mcuinfoStr = (String)obj;
+                if (gson != null){
+                    final MCUInfo mcuInfo=gson.fromJson(mcuinfoStr, MCUInfo.class);
+                    stringBuffer.delete(0,stringBuffer.toString().length());
+
+                            Field [] fields = mcuInfo.getClass().getDeclaredFields();
+                            for (int i = 0; i < fields.length; i++) {
+                                fields[i].setAccessible(true);
+                                try {
+                                    if (fields[i].getName().equalsIgnoreCase("version")){
+                                        String version = (String) fields[i].get(mcuInfo);
+                                        version = new String(BytesUtils.hexStringToBytes(version),"GBK");
+                                        stringBuffer.append("   "+fields[i].getName() + ":" + version);
+                                    }else
+                                    stringBuffer.append("   "+fields[i].getName() + ":" + fields[i].get(mcuInfo));
+                                } catch (IllegalAccessException e) {
+                                    e.printStackTrace();
+                                } catch (UnsupportedEncodingException e) {
+                                    e.printStackTrace();
+                                }
+                            }
+                            tv_mcu.post(new Runnable() {
+                                @Override
+                                public void run() {
+                                    tv_mcu.setText(getString(R.string.mcu_info)+stringBuffer.toString());
+                                }
+                            });
+                }
+            }
+        }
+    };
+
     public static SupportFragment newInstance() {
         return new BaseDatasFragment();
     }
@@ -58,10 +118,43 @@
 
         View view = inflater.inflate(R.layout.layout_base_datas, container, false);
         initView(view);
+        rtkConfigViewModel= ViewModelProviders.of(this).get(RTKConfigViewModel.class);
+        rtkConfigViewModel.getRTKConfig().observe(this, new Observer<RTKConfig>() {
+            @Override
+            public void onChanged(RTKConfig rtkConfig) {
+                if (rtkConfig != null){
+                    Log.i(TAG, "RTKConfig Changed: "+rtkConfig.toString());
+                    mRtkConfig = rtkConfig;
+                    et_ip_rtk.setText(rtkConfig.getIp());
+                    et_city_id.setText(String.valueOf(rtkConfig.getCity()));
+                    et_city_province.setText(String.valueOf(rtkConfig.getProvince()));
+                    et_port_rtk.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()));
+                }
+
+
+            }
+        });
+
+        appStatusViewModel = ViewModelProviders.of(this).get(AppStatusViewModel.class);
+        appStatusViewModel.getAppStatus().observe(this, new Observer<AppStatus>() {
+            @Override
+            public void onChanged(AppStatus appStatus) {
+                if (appStatus != null){
+//                    tv_login.setText(getResources().getString(R.string.rtk_config_login,appStatus.getRtk_login_code()));
+//                    tv_connect.setText(getResources().getString(R.string.rtk_connect_status,appStatus.getRtk_connect_status()));
+                }
+            }
+        });
         return view;
     }
 
     private void initView(View view) {
+        gson = new Gson();
         view.findViewById(R.id.btn_save_platform).setOnClickListener(this);
         et_ip = view.findViewById(R.id.et_platform_ip);
         et_port = view.findViewById(R.id.et_platform_port);
@@ -76,6 +169,21 @@
         btn_inspect_signal.setOnClickListener(this);
         btn_config_signal = view.findViewById(R.id.btn_signal_conf);
         btn_config_signal.setOnClickListener(this);
+
+
+        et_ip_rtk = view.findViewById(R.id.rtk_addr_ip);
+        et_city_id = view.findViewById(R.id.et_city_id);
+        et_city_province = view.findViewById(R.id.et_provice_id);
+        et_phone = view.findViewById(R.id.et_phone);
+        et_port_rtk = view.findViewById(R.id.rtk_addr_port);
+        tv_mcu = view.findViewById(R.id.tv_mcu_info);
+
+//        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
@@ -112,6 +220,15 @@
                     ExamPlatformData.getInstance().insertPlatformIp(et_ip.getText().toString().trim());
                     ExamPlatformData.getInstance().insertPlatformPort(Integer.parseInt(et_port.getText().toString().trim()));
                 }
+
+                if (mRtkConfig != null){
+                    mRtkConfig.setPort(Integer.parseInt(et_port_rtk.getText().toString().trim()));
+                    mRtkConfig.setCity(Integer.parseInt(et_city_id.getText().toString().trim()));
+                    mRtkConfig.setProvince(Integer.parseInt(et_city_province.getText().toString().trim()));
+                    mRtkConfig.setIp(et_ip_rtk.getText().toString().trim());
+                    mRtkConfig.setPhone(et_phone.getText().toString().trim());
+                    rtkConfigViewModel.insertRTKConfig(mRtkConfig);
+                }
                 break;
             case R.id.btn_car_select://杞﹁締妯″瀷鍜屽湴鍥惧叕鐢ㄤ竴濂椾唬鐮� 鍖哄埆鍦ㄤ簬REQUEST_CODE
                 request_code = REQUEST_CODE_CAR;
@@ -142,37 +259,55 @@
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (REQUEST_CODE_MAP == requestCode){
-           final Uri uri= data.getData();
-            Log.i(TAG, "onActivityResult: "+uri.getPath());
-            ExamPlatformData.getInstance().setNewMapPath(uri.getPath());
-            CThreadPoolExecutor.runInBackground(new Runnable() {
-                @Override
-                public void run() {
-                    byte[] fileContent = FileUtil.readFile(uri.getPath());
-                    if (fileContent != null){
-                        String str = new String(fileContent);
-                        Log.i(TAG, "鏂囦欢鍐呭锛�"+str);
-                        AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,str);
+            if (data != null){
+                final Uri uri= data.getData();
+                Log.i(TAG, "onActivityResult: "+uri.getPath());
+                ExamPlatformData.getInstance().setNewMapPath(uri.getPath());
+                CThreadPoolExecutor.runInBackground(new Runnable() {
+                    @Override
+                    public void run() {
+                        byte[] fileContent = FileUtil.readFile(uri.getPath());
+                        if (fileContent != null){
+                            String str = new String(fileContent);
+                            Log.i(TAG, "鏂囦欢鍐呭锛�"+str);
+                            AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,str);
+                        }
                     }
-                }
-            });
+                });
+            }
+
 
         }else if (requestCode == REQUEST_CODE_CAR){
-            final Uri uri= data.getData();
-            Log.i(TAG, "onActivityResult: "+uri.getPath());
-            ExamPlatformData.getInstance().setCarModelPath(uri.getPath());
-            CThreadPoolExecutor.runInBackground(new Runnable() {
-                @Override
-                public void run() {
-                    byte[] fileContent = FileUtil.readFile(uri.getPath());
-                    if (fileContent != null){
-                        String str = new String(fileContent);
-                        Log.i(TAG, "鏂囦欢鍐呭锛�"+str);
-                        AYSdk.getInstance().sendCmd(Constant.PUSH_VECHILE_PROFILE,str);
+            if (data != null){
+                final Uri uri= data.getData();
+                Log.i(TAG, "onActivityResult: "+uri.getPath());
+                ExamPlatformData.getInstance().setCarModelPath(uri.getPath());
+                CThreadPoolExecutor.runInBackground(new Runnable() {
+                    @Override
+                    public void run() {
+                        byte[] fileContent = FileUtil.readFile(uri.getPath());
+                        if (fileContent != null){
+                            String str = new String(fileContent);
+                            Log.i(TAG, "鏂囦欢鍐呭锛�"+str);
+                            AYSdk.getInstance().sendCmd(Constant.PUSH_VECHILE_PROFILE,str);
+                        }
                     }
-                }
-            });
+                });
+            }
+
 
         }
     }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_MCUINFO_TOPIC);
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+        CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_MCUINFO_TOPIC);
+    }
 }
diff --git a/app/src/main/res/layout/layout_base_datas.xml b/app/src/main/res/layout/layout_base_datas.xml
index 1310686..ab91696 100644
--- a/app/src/main/res/layout/layout_base_datas.xml
+++ b/app/src/main/res/layout/layout_base_datas.xml
@@ -54,6 +54,98 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:textColor="@android:color/black"
+                android:text="@string/rtk_addr_des"/>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="15dp"
+                android:text="IP锛�"/>
+            <EditText
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/rtk_addr_ip"
+                android:text="192.168.23.12"
+                android:background="@android:drawable/editbox_background_normal"/>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:text="Port锛�"/>
+            <EditText
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/rtk_addr_port"
+                android:text="8080"
+                android:background="@android:drawable/editbox_background_normal"/>
+        </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:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@android:color/black"
+                android:text="鐧诲綍淇℃伅锛�"/>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="15dp"
+                android:text="鐪両D锛�"/>
+            <EditText
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/et_provice_id"
+                android:text="12"
+                android:inputType="numberDecimal"
+                android:background="@android:drawable/editbox_background_normal"/>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:text="甯侷D锛�"/>
+            <EditText
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/et_city_id"
+                android:text="192"
+                android:inputType="numberDecimal"
+                android:background="@android:drawable/editbox_background_normal"/>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:text="鐢佃瘽锛�"/>
+            <EditText
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/et_phone"
+                android:text="19234567894"
+                android:inputType="numberDecimal"
+                android:background="@android:drawable/editbox_background_normal"/>
+        </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:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@android:color/black"
                 android:text="杞﹁浇淇″彿杈撳叆锛�"/>
             <TableLayout
                 android:layout_width="match_parent"
@@ -160,6 +252,7 @@
             android:layout_marginBottom="10dp"
             android:background="@color/colorAccent"
             />
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -207,6 +300,28 @@
             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_mcu_info"
+                android:text="@string/mcu_info"
+                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 3d93cb9..08c00e9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -31,4 +31,5 @@
     <string name="name">濮撳悕锛�</string>
     <string name="sex">鎬у埆锛�</string>
     <string name="begin_time">寮�濮嬫椂闂达細</string>
+    <string name="mcu_info">鍗忓鐞嗗櫒淇℃伅锛�</string>
 </resources>

--
Gitblit v1.8.0