app/src/main/assets/students_file.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/Constant.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/MainActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
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/SPUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/layout_base_datas.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/values/strings.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/assets/students_file.json
@@ -3,7 +3,7 @@ { "stu_id":1001, "ID": "410923198910162545", "name": "李四", "name": "", "sex":2, "head_url":"" app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -74,8 +74,11 @@ public static final int UPGRADE_MCU_CONTENT_FILE = 0x8100; public static final String MCU_FILE_NAME = "dfu.bin"; public static final int MCU_SN = 8; public static final int IC_ID = 0x0011;//4. 返回IC卡信息 public static final int SEND_CONFIG_SIGNAL = 0x8008; 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 String exam_enter_exitdata="exam_enter_exitdata"; } app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -163,16 +163,7 @@ String hosts = "[{\"host\":\"192.168.31.77\", \"port\":12125}]"; IMSClientBootstrap.getInstance().init(userId,token,hosts,1,this); WokViewModel wokViewModel = ViewModelProviders.of(this).get(WokViewModel.class); wokViewModel.getStudents().observe(this, new Observer<List<Student>>() { @Override public void onChanged(List<Student> students) { for (Student student : students) { Log.i(TAG, "onChanged: " + student.toString()); } } }); rtkConfigViewModel = ViewModelProviders.of(this).get(RTKConfigViewModel.class); rtkConfigViewModel.getRTKConfig().observe(this, new Observer<RTKConfig>() { app/src/main/java/safeluck/drive/evaluation/app.java
@@ -262,6 +262,10 @@ break; case Constant.MCU_SN: break; case Constant.IC_ID: CEventCenter.dispatchEvent(Constant.BIND_SPEED_TOPIC,cmd,0,json); break; } app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
New file @@ -0,0 +1,55 @@ package safeluck.drive.evaluation.bean; import android.content.Context; import java.util.Random; import safeluck.drive.evaluation.app; import safeluck.drive.evaluation.util.SPUtils; public class ExamPlatformData { private static final ExamPlatformData ourInstance = new ExamPlatformData(); private int exam_id =12345;//考试唯一ID public static ExamPlatformData getInstance() { return ourInstance; } private ExamPlatformData() { } public String getPlatformIP(){ return (String) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_IP,""); } public int getPlatformPort(){ return (int) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_PORT,0); } /** * 插入平台IP地址 * @param ip */ public void insertPlatformIp(String ip){ SPUtils.put(app.getAppContext(),SPUtils.PLATFORM_IP,ip); } /** * 插入平台端口号 * @param port */ public void insertPlatformPort(int port){ SPUtils.put(app.getAppContext(),SPUtils.PLATFORM_PORT,port); } public int getExamUniqueID(){ return exam_id; } } app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
@@ -9,6 +9,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.anyun.exam.lib.AYSdk; @@ -22,6 +23,7 @@ import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.util.FileUtil; /** @@ -38,6 +40,7 @@ private Button btn_inspect_signal; private Button btn_config_signal; private Button btn_mcu_upgrade; private EditText et_ip,et_port; public static SupportFragment newInstance() { return new BaseDatasFragment(); @@ -54,6 +57,9 @@ } private void initView(View view) { view.findViewById(R.id.btn_save_platform); et_ip = view.findViewById(R.id.et_platform_ip); et_port = view.findViewById(R.id.et_platform_port); btn_inspect_signal = view.findViewById(R.id.btn_inpsect_signal); btn_mcu_upgrade = view.findViewById(R.id.btn_mcu_upgrade); btn_mcu_upgrade.setOnClickListener(this); @@ -90,6 +96,10 @@ e.printStackTrace(); } break; case R.id.btn_save_platform: ExamPlatformData.getInstance().insertPlatformIp(et_ip.getText().toString().trim()); ExamPlatformData.getInstance().insertPlatformPort(Integer.parseInt(et_port.getText().toString().trim())); break; default: break; } app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -5,6 +5,7 @@ import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -37,6 +38,8 @@ import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.DB.Student; import safeluck.drive.evaluation.DB.WokViewModel; import safeluck.drive.evaluation.DB.appstatusdb.AppStatus; import safeluck.drive.evaluation.DB.appstatusdb.AppStatusViewModel; import safeluck.drive.evaluation.DB.exam_status.ExamStatusInitWorker; @@ -78,7 +81,7 @@ private int item_id;//扣分分数总和 private ExamStatusViewModel examStatusViewModel; private static final int ADD_DATA = 1; private TextView tv_speed,tv_total_score,tv_sat_num; private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id; private double speed=0.0; private ImageView iv_rtk_status,iv_head; @@ -86,6 +89,7 @@ private List<ScoreBean> mArrayList = new ArrayList<>(); private static final int SPEED_DATA = 2; private FailedProjViewModel failedProjViewModel; String icson;//返回的ic卡信息 json public static SupportFragment newInstance() { return new NetWorkTrainFragment(); @@ -105,6 +109,23 @@ } if (msg.what == SPEED_DATA){ tv_speed.setText(getResources().getString(R.string.speed,speed)); } if (msg.what == Constant.IC_ID){ try { JSONObject jsSpeed = new JSONObject(icson); int result = jsSpeed.getInt("result"); String icStr = jsSpeed.getString("serialno"); if (result == 0) { JKMessage0201 jkMessage0201 = new JKMessage0201(); jkMessage0201.currentExam = 1; jkMessage0201.id = icStr; MessageProcessor.getInstance().sendMessage(jkMessage0201); } }catch (JSONException e){ } } return false; } @@ -181,7 +202,21 @@ } }); WokViewModel wokViewModel = ViewModelProviders.of(this).get(WokViewModel.class); wokViewModel.getStudents().observe(this, new Observer<List<Student>>() { @Override public void onChanged(List<Student> students) { for (Student student : students) { MyLog.i(TAG, "onChanged: " + student.toString()); if (!TextUtils.isEmpty(student.getName())){ tv_name.setText(getString(R.string.name)+student.getName()); tv_id.setText(getString(R.string.user_id)+student.getID()); } } } }); AppStatusViewModel appStatusViewModel = ViewModelProviders.of(this).get(AppStatusViewModel.class); appStatusViewModel.getAppStatus().observe(this, new Observer<AppStatus>() { @@ -253,6 +288,8 @@ av_podao = view.findViewById(R.id.av1); av_zhijiao = view.findViewById(R.id.av4); houseView = view.findViewById(R.id.hv); tv_name = view.findViewById(R.id.tv_name); tv_id = view.findViewById(R.id.tv_ID); iv_rtk_status = view.findViewById(R.id.iv_rtk_connect); iv_head = view.findViewById(R.id.iv_head); @@ -306,7 +343,7 @@ JKMessage0202 jkMessage0202 = new JKMessage0202(); jkMessage0202.phone = "0314200100000004"; jkMessage0202.timeBCD = new Date(); jkMessage0202.curr_exam = 1; jkMessage0202.curr_exam = 0; jkMessage0202.ID = "123456789"; jkMessage0202.exam_id = 123456; MessageProcessor.getInstance().sendMessage(jkMessage0202); @@ -328,11 +365,9 @@ break; case R.id.profile: MyLog.i(TAG,"签到,获取身份证物理卡号"); AYSdk.getInstance().sendCmd(Constant.READ_PHYSICAL_ID,null); //TODO 获得物理卡号 发送JKMessage0201给平台,获取姓名、身份证、head_url JKMessage0201 jkMessage0201 = new JKMessage0201(); jkMessage0201.currentExam = 1; jkMessage0201.id = "123456789"; MessageProcessor.getInstance().sendMessage(jkMessage0201); break; } } @@ -372,8 +407,14 @@ private ICEventListener icEventListener = new ICEventListener() { @Override public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { speed = (double)obj; mHandler.obtainMessage(SPEED_DATA).sendToTarget(); if (msgCode == Constant.IC_ID){ icson = (String)obj; mHandler.obtainMessage(msgCode).sendToTarget(); }else{ speed = (double)obj; mHandler.obtainMessage(SPEED_DATA).sendToTarget(); } } }; @Override app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java
@@ -16,6 +16,8 @@ */ public static final String FILE_NAME = "share_data"; 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"; /** * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法 app/src/main/res/layout/layout_base_datas.xml
@@ -15,7 +15,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:text="BDS数据输入:"/> android:text="考试平台地址:"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -24,7 +24,8 @@ <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="192.168.23.12" android:text="47.93.157.103" android:id="@+id/et_platform_ip" android:background="@android:drawable/editbox_background_normal"/> <TextView android:layout_width="wrap_content" @@ -34,7 +35,8 @@ <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="8080" android:text="2020" android:id="@+id/et_platform_port" android:background="@android:drawable/editbox_background_normal"/> </LinearLayout> <View @@ -109,6 +111,7 @@ android:entries="@array/spinnerarr"/> </TableRow> <TableRow android:gravity="center_horizontal" android:visibility="gone" android:layout_marginBottom="10dp"> <TextView android:layout_width="wrap_content" @@ -193,6 +196,7 @@ <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_save_platform" android:text="保存"/> </LinearLayout> app/src/main/res/values/strings.xml
@@ -5,7 +5,7 @@ <string name="vehicle_train">单机训练</string> <string name="vehicle_net">联网考试</string> <string name="version_name">v%1$s</string> <string name="user_id">身份证号:                </string> <string name="user_id">身份证号:</string> <string name="inspector">考核员编号:</string> <string name="sys_setting">系统配置</string> <string name="sys_setting_sub">智能考培,助力驾考新旅程</string>