app/src/main/assets/lightallanswers.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/assets/lightdefault.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightUseQuestions.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightUseQuestionsDao.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/bean/AbsInitialData.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/LightExamFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/fragment_light_exam_list.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/assets/lightallanswers.json
@@ -9,7 +9,7 @@ { "id":1, "question_id":0, "answer": "开启大灯,远近光灯都可以", "answer": "开启大灯,远、近光灯都可以", "choose":0 }, { @@ -39,7 +39,7 @@ { "id":6, "question_id":5, "answer": "开启示宽灯和危险警示灯", "answer": "示宽灯+危险警示灯", "choose":1 }, { app/src/main/assets/lightdefault.json
@@ -37,7 +37,7 @@ { "id":5, "question": "夜间在道路上发生故障,妨碍交通又难以移动", "answer": "开启示宽灯和危险警示灯", "answer": "示宽灯+危险警示灯", "flag":0 }, { app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightUseQuestions.java
@@ -49,4 +49,14 @@ public void setFlag(int flag) { this.flag = flag; } @Override public String toString() { return "LightUseQuestions{" + "id=" + id + ", question='" + question + '\'' + ", answer='" + answer + '\'' + ", flag=" + flag + '}'; } } app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightUseQuestionsDao.java
@@ -33,4 +33,6 @@ LiveData<List<LightUseQuestions>> getLightUseQuestions(); @Query("SELECT * FROM lightUseQuest") List<LightUseQuestions> lightUseQuestionsNoLive(); } app/src/main/java/safeluck/drive/evaluation/bean/AbsInitialData.java
@@ -15,6 +15,7 @@ import safeluck.drive.evaluation.app; import safeluck.drive.evaluation.util.CThreadPoolExecutor; import safeluck.drive.evaluation.util.DataInitKt; import static safeluck.drive.evaluation.util.DataInitKt.sendJudgeArgs; @@ -107,14 +108,17 @@ //需要延迟发送,因为前面有http请求 executorService.schedule(()->{ Log.i("AYJiaKao","延迟发送"); if (DataInitKt.getSendVehiSucc() && (DataInitKt.getSendMapSucc() || DataInitKt.getSendRoadMapSucc())){ // if (DataInitKt.getSendVehiSucc() && (DataInitKt.getSendMapSucc() || DataInitKt.getSendRoadMapSucc())){ CThreadPoolExecutor.runInBackground(()->{ sendLightsAndExamStatus(); }else{ }); // }else{ MyLog.i(DataInitKt.getSendRoadMapSucc()?String.format("道路地图发送成功"):"道路地图发送失败"); MyLog.i(DataInitKt.getSendMapSucc()?String.format("场地地图发送成功"):"场地地图发送失败"); MyLog.i(DataInitKt.getSendVehiSucc()?String.format("车辆模型发送成功"):"车辆模型发送失败"); Toast.makeText(app.getAppContext(), "地图或车模型不存在,请检查平台配置或手工配置", Toast.LENGTH_SHORT).show(); } // } },2, TimeUnit.SECONDS); app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java
@@ -1,14 +1,12 @@ package safeluck.drive.evaluation.bean; import java.util.ArrayList; import java.util.List; import safeluck.drive.evaluation.util.FileUtil; public class SimulateNightBean { /** * exam : 0 * question : [{"item":1,"tts":"打开车灯"},{"item":2,"tts":"通过人行道"}] * question : [{"item":100,"process":[],"solution":[-1],"tts":"下面将进行模拟夜间行驶场景灯光使用的考试,请按语音指令在5秒内做出相应的灯光操作"},{"item":1,"process":[3],"solution":[1],"tts":"请打开前照灯"},{"item":2,"process":[3],"solution":[1],"tts":"夜间在没有路灯,照明不良条件下行驶"},{"item":7,"process":[3],"solution":[1],"tts":"夜间在道路上发生故障,妨碍交通又难以移动"},{"item":10,"process":[3],"solution":[1],"tts":"路边临时停车"},{"item":9,"process":[3],"solution":[1],"tts":"夜间通过没有交通信号灯控制的路口"},{"item":101,"process":[],"solution":[-1],"tts":"模拟夜间考试完成请关闭所有灯光,请起步继续完成考试"}] */ private int exam; @@ -32,18 +30,82 @@ public static class QuestionBean { /** * item : 1 * tts : 打开车灯 * item : 100 * process : [] * solution : [-1] * tts : 下面将进行模拟夜间行驶场景灯光使用的考试,请按语音指令在5秒内做出相应的灯光操作 */ private int item; private String tts; private List<Integer> process; private List<Integer> solution; public QuestionBean(int i, String s) { this.item =i; this.item =i; this.tts = s; if (i>=100){ }else{ if (process == null){ this.process = new ArrayList<>(); } this.process.add(-1); if (solution == null){ this.solution = new ArrayList<>(); } this.solution.add(-1); } } public void parseSolutionAndProcess(String content){ solution.clear(); process.clear(); if (content.contains("+")){ String regx = "\\+"; String[] strs = content.split(regx); for (int i = 0; i < strs.length; i++) { if (strs[i].contains("大灯")){ //1近光灯 solution.add(1); }else if (strs[i].contains("小灯")){ //3示廓灯 solution.add(3); }else if (strs[i].contains("警示灯")){ //7危险警示灯 solution.add(7); }else if (strs[i].contains("雾灯")){ //4雾灯 solution.add(4); }else if (strs[i].contains("左转向")){ //5左转信号 solution.add(5); }else if (strs[i].contains("右转向")){ //6右转信号 solution.add(6); } } }else if (content.contains("变换")){ process.add(8); solution.add(1); }else if (content.equalsIgnoreCase("开启远光灯")){ solution.add(2); }else if (content.equalsIgnoreCase("开启近光灯")){ solution.add(1); }else if (content.contains("远、近光灯")){ solution.add(1); solution.add(2); }else if (content.contains("注意是近光")){ solution.add(1); }else if (content.equalsIgnoreCase("开启危险警示灯")){ solution.add(7); }else if (content.equalsIgnoreCase("先开左转向灯,后变换远近光灯")){ process.add(5); solution.add(8); } } public int getItem() { return item; } @@ -60,20 +122,92 @@ this.tts = tts; } @Override public String toString() { return "QuestionBean{" + "item=" + item + ", tts='" + tts + '\'' + '}'; public List<Integer> getProcess() { return process; } public void setProcess(List<Integer> process) { this.process = process; } public List<Integer> getSolution() { return solution; } public void setSolution(List<Integer> solution) { this.solution = solution; } } @Override public String toString() { return "SimulateNightBean{" + "exam=" + exam + ", question=" + FileUtil.ListToString(question) + '}'; } // /** // * exam : 0 // * question : [{"item":1,"tts":"打开车灯"},{"item":2,"tts":"通过人行道"}] // */ // // private int exam; // private List<QuestionBean> question; // // public int getExam() { // return exam; // } // // public void setExam(int exam) { // this.exam = exam; // } // // public List<QuestionBean> getQuestion() { // return question; // } // // public void setQuestion(List<QuestionBean> question) { // this.question = question; // } // // public static class QuestionBean { // /** // * item : 1 // * tts : 打开车灯 // */ // // private int item; // private String tts; // // public QuestionBean(int i, String s) { // this.item =i; // this.tts = s; // } // // public int getItem() { // return item; // } // // public void setItem(int item) { // this.item = item; // } // // public String getTts() { // return tts; // } // // public void setTts(String tts) { // this.tts = tts; // } // // @Override // public String toString() { // return "QuestionBean{" + // "item=" + item + // ", tts='" + tts + '\'' + // '}'; // } // } // // @Override // public String toString() { // return "SimulateNightBean{" + // "exam=" + exam + // ", question=" + FileUtil.ListToString(question) + // '}'; // } } app/src/main/java/safeluck/drive/evaluation/fragment/LightExamFragment.java
@@ -55,11 +55,13 @@ import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.adapter.LightExamSelectAdapter; import safeluck.drive.evaluation.adapter.LightExamUseAdapter; import safeluck.drive.evaluation.app; import safeluck.drive.evaluation.bean.AnswerStatus; import safeluck.drive.evaluation.bean.Question2Answers; import safeluck.drive.evaluation.customview.MyDecoration; import safeluck.drive.evaluation.util.CThreadPoolExecutor; import safeluck.drive.evaluation.util.DataInitKt; /** * DriveJudge @@ -294,7 +296,10 @@ OneTimeWorkRequest oneTimeWorkRequest = OneTimeWorkRequest.from(LightUseInitWorker.class); WorkManager.getInstance(_mActivity).enqueue(oneTimeWorkRequest); break; case R.id.btn_sure: case R.id.btn_light_sure: CThreadPoolExecutor.runInBackground(()->{ DataInitKt.sendExamLightsAndExamStatus(app.getAppContext()); }); break; } } app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt
@@ -23,6 +23,7 @@ import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig import safeluck.drive.evaluation.app import safeluck.drive.evaluation.bean.* import safeluck.drive.evaluation.bean.SimulateNightBean.QuestionBean import safeluck.drive.evaluation.httpmodule.HttpCarRespBean import safeluck.drive.evaluation.httpmodule.HttpRequetBean import safeluck.drive.evaluation.httpmodule.HttpRoadMapRsp @@ -78,19 +79,39 @@ val examType = ExamPlatformData.getInstance().examType simulateNightBean.setExam(0) val list = ExamPlatformData.getInstance().simulate_light_tips tempQs.clear() val list = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).lightUseQuestionsDao.lightUseQuestionsNoLive() Log.i("AYJiaKao",list.size.toString()) tempQs.add(QuestionBean(100, "下面将进行模拟夜间行驶场景灯光使用的考试,请按语音指令在5秒内做出相应的灯光操作"))//提示下面将进行灯光考试 tempQs.add(list[list.size-2])//提示下面将进行灯光考试 tempQs.add(list[0]) val a = Utils.getRandomInts(4, 10) for (i in a.indices) { tempQs.add(list[a[i]]) if (list.size>5){ var questbean = QuestionBean(list[0].id,list[0].question) questbean.parseSolutionAndProcess(list[0].answer) tempQs.add(questbean) val a = Utils.getRandomInts(4, list.size) for (i in a.indices) { var te = list[a[i]] Log.i("AYJiaKao",te.toString()) var questbean = QuestionBean(te.id,te.question) questbean.parseSolutionAndProcess(te.answer) tempQs.add(questbean) } }else{ for (i in list.indices){ var questbean = QuestionBean(list[i].id,list[i].question) questbean.parseSolutionAndProcess(list[i].answer) tempQs.add(questbean) } tempQs.add(list[list.size-1])//提示灯光考试结束 } tempQs.add(QuestionBean(101, "模拟夜间考试完成请关闭所有灯光,请起步继续完成考试"))//提示灯光考试结束 simulateNightBean.setQuestion(tempQs) MyLog.i("开始发送灯光,考试项共有"+simulateNightBean.question.size) AYSdk.getInstance().sendCmd(0x8012, gson.toJson(simulateNightBean)) MyLog.i("开始发送灯光,gson="+gson.toJson(simulateNightBean)) // AYSdk.getInstance().sendCmd(0x8012, gson.toJson(simulateNightBean)) //发送考试状态 MyLog.i("查到的考试type=$examType") app/src/main/res/layout/fragment_light_exam_list.xml
@@ -72,7 +72,7 @@ android:layout_height="@dimen/ui_margin_50dp" android:textColor="@android:color/white" android:textSize="28sp" android:text="可以更换的题目"/> android:text="题目库"/> <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent"