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/fragment/BaseDatasFragment.java | 187 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 161 insertions(+), 26 deletions(-)
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);
+ }
}
--
Gitblit v1.8.0