| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | 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注册状态、RTK连接状态、 |
| | | // 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(); |
| | | } |
| | |
| | | |
| | | 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); |
| | |
| | | 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 |
| | |
| | | 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; |
| | |
| | | @Override |
| | | public void onActivityResult(int requestCode, int resultCode, Intent data) { |
| | | if (REQUEST_CODE_MAP == requestCode){ |
| | | if (data != null){ |
| | | final Uri uri= data.getData(); |
| | | Log.i(TAG, "onActivityResult: "+uri.getPath()); |
| | | ExamPlatformData.getInstance().setNewMapPath(uri.getPath()); |
| | |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | }else if (requestCode == REQUEST_CODE_CAR){ |
| | | if (data != null){ |
| | | final Uri uri= data.getData(); |
| | | Log.i(TAG, "onActivityResult: "+uri.getPath()); |
| | | ExamPlatformData.getInstance().setCarModelPath(uri.getPath()); |
| | |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | } |