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