app/src/main/java/safeluck/drive/evaluation/app.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/util/FileUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/layout_base_datas.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/java/safeluck/drive/evaluation/app.java
@@ -47,6 +47,7 @@ import safeluck.drive.evaluation.DB.gps.GpsInfoWorker; import safeluck.drive.evaluation.DB.rtktb.RTKConfig; import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository; import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.cEventCenter.CEvent; import safeluck.drive.evaluation.cEventCenter.CEventCenter; import safeluck.drive.evaluation.im.IMSClientBootstrap; @@ -322,13 +323,26 @@ new Thread(new Runnable() { @Override public void run() { StringBuffer vebuffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.VEHICLE); if (vebuffer != null){ AYSdk.getInstance().sendCmd(Constant.PUSH_VECHILE_PROFILE,vebuffer.toString()); String carPath = ExamPlatformData.getInstance().getCarModelPath(); if (!TextUtils.isEmpty(carPath)){ MyLog.i("使用更新后的Car模型地图"+carPath); byte[] bytes = FileUtil.readFile(carPath); if (bytes != null){ String str = new String(bytes); AYSdk.getInstance().sendCmd(Constant.PUSH_VECHILE_PROFILE,str); }else{ MyLog.i(String.format("文件:%s不存在",carPath)); } }else{ MyLog.d(TAG,String.format("车辆模型模型未拷入[%s]目录下", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName())); StringBuffer vebuffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.VEHICLE); if (vebuffer != null){ AYSdk.getInstance().sendCmd(Constant.PUSH_VECHILE_PROFILE,vebuffer.toString()); }else{ MyLog.d(TAG,String.format("车辆模型模型未拷入[%s]目录下", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName())); } } } }).start(); } @@ -337,14 +351,29 @@ new Thread(new Runnable() { @Override public void run() { StringBuffer buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.MAP); if (buffer != null){ AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,buffer.toString()); String mapPath = ExamPlatformData.getInstance().getMapPath(); if (!TextUtils.isEmpty(mapPath)){ MyLog.i("调用更新Map路径后的地图"+mapPath); byte[] fileContent = FileUtil.readFile(mapPath); if (fileContent != null){ String str = new String(fileContent); Log.i(TAG, "文件内容:"+str); AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,str); }else{ MyLog.i(String.format("文件:%s不存在",mapPath)); } }else{ MyLog.d(TAG,String.format("地图模型未拷入[%s]目录下", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName())); MyLog.i("读取Assert目录下初始化的地图"); StringBuffer buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.MAP); if (buffer != null){ AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,buffer.toString()); }else{ MyLog.d(TAG,String.format("地图模型未拷入[%s]目录下", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName())); } } } }).start(); app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -24,6 +24,8 @@ private String ip; private int port; private String mapPath;//绝对路径包含文件名的path private String carPath;//绝对路径包含文件名的path public static ExamPlatformData getInstance() { return ourInstance; @@ -89,4 +91,28 @@ public int getExam_id() { return exam_id; } public void setNewMapPath(String path) { this.mapPath = path; SPUtils.put(app.getAppContext(),SPUtils.MAP_PATH,mapPath); } public String getMapPath(){ mapPath = (String) SPUtils.get(app.getAppContext(),SPUtils.MAP_PATH,""); return mapPath; } /** * 设置保存地图模型文件(坐标点—)的路径 * @param car_path */ public void setCarModelPath(String car_path) { this.carPath = car_path; SPUtils.put(app.getAppContext(),SPUtils.CAR_PATH,car_path); } public String getCarModelPath(){ carPath = (String) SPUtils.get(app.getAppContext(),SPUtils.CAR_PATH,""); return carPath; } } app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
@@ -1,9 +1,10 @@ package safeluck.drive.evaluation.fragment; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProviders; import android.util.Log; import android.view.LayoutInflater; @@ -18,7 +19,6 @@ import com.anyun.exam.lib.util.ByteUtil; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import me.yokeyword.fragmentation.SupportFragment; @@ -26,8 +26,8 @@ import safeluck.drive.evaluation.MainActivity; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.util.CThreadPoolExecutor; import safeluck.drive.evaluation.util.FileUtil; import safeluck.drive.evaluation.viewmodels.ExamPlatformModel; /** * 基础数据设置 @@ -40,11 +40,13 @@ public class BaseDatasFragment extends SupportFragment implements View.OnClickListener { private static final String TAG = BaseDatasFragment.class.getSimpleName(); private static final int REQUEST_CODE_MAP = 100; private static final int REQUEST_CODE_CAR = 101; private int request_code = REQUEST_CODE_MAP; private Button btn_inspect_signal; private Button btn_config_signal; private Button btn_mcu_upgrade; private Button btn_mcu_upgrade,btn_map_select; private EditText et_ip,et_port; // private ExamPlatformModel examPlatformModel; public static SupportFragment newInstance() { return new BaseDatasFragment(); } @@ -56,7 +58,6 @@ View view = inflater.inflate(R.layout.layout_base_datas, container, false); initView(view); // examPlatformModel = ViewModelProviders.of(this).get(ExamPlatformModel.class); return view; } @@ -68,7 +69,10 @@ et_port.setText(ExamPlatformData.getInstance().getPlatformPort()+""); btn_inspect_signal = view.findViewById(R.id.btn_inpsect_signal); btn_mcu_upgrade = view.findViewById(R.id.btn_mcu_upgrade); btn_map_select = view.findViewById(R.id.btn_map_select); view.findViewById(R.id.btn_car_select).setOnClickListener(this); btn_mcu_upgrade.setOnClickListener(this); btn_map_select.setOnClickListener(this); btn_inspect_signal.setOnClickListener(this); btn_config_signal = view.findViewById(R.id.btn_signal_conf); btn_config_signal.setOnClickListener(this); @@ -109,8 +113,66 @@ ExamPlatformData.getInstance().insertPlatformPort(Integer.parseInt(et_port.getText().toString().trim())); } break; case R.id.btn_car_select://车辆模型和地图公用一套代码 区别在于REQUEST_CODE request_code = REQUEST_CODE_CAR; openFileMgr(); break; case R.id.btn_map_select: request_code = REQUEST_CODE_MAP; openFileMgr(); break; default: break; } } private void openFileMgr() { Intent intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult(intent, request_code); } catch (android.content.ActivityNotFoundException e) { e.printStackTrace(); Toast.makeText(_mActivity, "请安装文件管理器", Toast.LENGTH_SHORT).show(); } } @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); } } }); }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); } } }); } } } app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -119,7 +119,7 @@ String icStr = jsSpeed.getString("serialno"); if (result == 0) { JKMessage0201 jkMessage0201 = new JKMessage0201(); jkMessage0201.currentExam = 1; jkMessage0201.currentExam = 0; jkMessage0201.id = icStr; MessageProcessor.getInstance().sendMessage(jkMessage0201); } app/src/main/java/safeluck/drive/evaluation/util/FileUtil.java
@@ -293,4 +293,28 @@ return "M" + sb.toString(); } public static byte[] readFile(String path) { InputStream inputStream = null; File file = new File(path); if (!file.exists()){ return null; } try { inputStream = new FileInputStream(file); } catch (IOException e) { e.printStackTrace(); } byte[] data = new byte[0]; try { data = toByteArray(inputStream); } catch (IOException e) { e.printStackTrace(); } try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } return data; } } app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java
@@ -2,12 +2,12 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Map; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Map; import android.content.Context; import android.content.SharedPreferences; import android.content.Context; import android.content.SharedPreferences; public class SPUtils { @@ -18,6 +18,8 @@ public static final String DES_HEX_PWD = "des_pwd"; public static final String PLATFORM_IP = "platform_ip"; public static final String PLATFORM_PORT = "platform_port"; public static final String MAP_PATH = "map_path"; public static final String CAR_PATH = "car_path"; /** * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法 app/src/main/res/layout/layout_base_datas.xml
@@ -178,11 +178,25 @@ <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="升级单片机" android:text="协处理器升级" android:padding="5dp" android:id="@+id/btn_mcu_upgrade" android:layout_marginLeft="15dp" android:background="@drawable/btn_bg_baseset"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="考试地图选择" android:padding="5dp" android:id="@+id/btn_map_select" android:layout_marginLeft="15dp" android:background="@drawable/btn_bg_baseset"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="车辆模型选择" android:padding="5dp" android:id="@+id/btn_car_select" android:layout_marginLeft="15dp" android:background="@drawable/btn_bg_baseset"/> </TableRow> </TableLayout> </LinearLayout> im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
@@ -216,7 +216,7 @@ } break; case IMSConfig.CONNECT_STATE_SUCCESSFUL: Log.i(TAG, String.format("onConnectStatusCallback: ims连接成功,host[%s],port[%s]",currentHost,currentPort)); MyLog.i(String.format("onConnectStatusCallback: ims连接成功,host[%s],port[%s]",currentHost,currentPort)); if (imsConnectStatusCallback != null){ imsConnectStatusCallback.onConnected(); } @@ -232,7 +232,7 @@ break; case IMSConfig.CONNECT_STATE_FAILURE: default: Log.i(TAG, "onConnectStatusCallback: ims连接失败"); MyLog.i( "onConnectStatusCallback: ims连接失败"); if (imsConnectStatusCallback != null){ imsConnectStatusCallback.onConnectFailed(); } @@ -447,7 +447,7 @@ @Override public void run() { Log.i(TAG, "执行重连任务"); MyLog.i(TAG, "执行重连任务"); if (!isFirst){ onConnectStatusCallback(IMSConfig.CONNECT_STATE_FAILURE); } @@ -527,7 +527,7 @@ if(connectStatus != IMSConfig.CONNECT_STATE_CONNECTING){ onConnectStatusCallback(IMSConfig.CONNECT_STATE_CONNECTING); } Log.i(TAG, String.format("正在进行connectServer【%s】的第[%d]连接,当前重连延时时长为[%dms]: ",serverUrl,j,j*getReconnectInterval())); MyLog.i( String.format("正在进行connectServer【%s】的第[%d]连接,当前重连延时时长为[%dms]: ",serverUrl,j,j*getReconnectInterval())); try { currentPort = Integer.parseInt(address[1]); currentHost = address[0];