From c257c28cb70c9f204262f67e817a1793260e4bea Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期三, 11 三月 2020 00:42:54 +0800
Subject: [PATCH] 考试type保存,收到ndk_start的时候进行发送;随机生成五个模拟灯光测试项(第一个永远是开启前照灯);Random随机生成5个不重复的整数算法
---
app/src/main/java/safeluck/drive/evaluation/Constant.java | 2
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 2
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt | 34 +++++++++++
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 7 -
app/src/main/java/safeluck/drive/evaluation/util/Utils.java | 42 ++++++++++++++
app/src/main/java/safeluck/drive/evaluation/app.java | 9 ++
app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 3 +
app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java | 18 ++++++
app/src/main/java/safeluck/drive/evaluation/DB/Constant.java | 4 +
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 51 +++++++++++++----
app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java | 2
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java | 2
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java | 2
13 files changed, 156 insertions(+), 22 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index 704de3c..fcafc77 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -62,7 +62,7 @@
public static final String WORK_PLATFORM_STATUS_COLUMN = "WORK_PLATFORM_STATUS_COLUMN";
public static final int ENTER_OR_EXIT_ITEM = 0x000D;
- public static final int HAS_BEEN_START_EXAM = 1;
+ public static final int NONE_BEEN_START_EXAM = 0; //娌℃湁鑰冭瘯
public static final int REAL_TIME_CAR_POS = 0x000E;
public static final String REAL_TIME_POS_CAR_TOPIC = "real_time_car_pos_topic";
public static final String BIND_SPEED_TOPIC = "BIND_SPEED_TOPIC";
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
index 8a21f43..4295bbc 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
@@ -1,5 +1,7 @@
package safeluck.drive.evaluation.DB;
+import org.jetbrains.annotations.NotNull;
+
/**
* MyApplication2
* Created by lzw on 2019/11/26. 12:01:53
@@ -14,4 +16,6 @@
public static final String RTK_CONFIG_PHONE = "RTK_CONFIG_PHONE";
public static final String RTK_CONFIG_IMEI = "RTK_CONFIG_IMEI";
public static final String RTK_CONFIG_SN = "sn";
+ @NotNull
+ public static final String EXAM_STATUS_TYPE = "exam_status_type";
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java
index 7da0bb2..81da498 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java
@@ -27,7 +27,7 @@
private int enter;
- //琛ㄧず宸茬粡鐐瑰嚮浜嗗紑濮嬭�冭瘯锛屽苟涓旀敹鍒颁簡鑰冭瘯搴旂瓟 1-宸茬粡寮�濮嬭�冭瘯 0-鏈�冭瘯
+ //琛ㄧず宸茬粡鐐瑰嚮浜嗗紑濮嬭�冭瘯锛屽苟涓旀敹鍒颁簡鑰冭瘯搴旂瓟 0-鏈�冭瘯 2-鍦哄湴 3-妯℃嫙鐏厜锛岃矾鑰冿紝 4-璺��
private int startExam;
@Ignore
public ExamStatus(int map_id, int enter) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java
index 6a44694..7a8227f 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java
@@ -23,4 +23,6 @@
@Query("select startExam from exam_status where map_id=1")
LiveData<Integer> getStartExam();
+ @Query("select startExam from exam_status where map_id=1")
+ int getStartExamInt();
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt
new file mode 100644
index 0000000..66cc9f5
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt
@@ -0,0 +1,34 @@
+package safeluck.drive.evaluation.DB.exam_status
+
+import android.content.Context
+import android.util.Log
+import androidx.work.Data
+import androidx.work.Worker
+import androidx.work.WorkerParameters
+import com.anyun.exam.lib.AYSdk
+import org.json.JSONException
+import org.json.JSONObject
+import safeluck.drive.evaluation.DB.Constant
+import safeluck.drive.evaluation.DB.WorkRoomDataBase
+
+class ExamStatusOutWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
+ val TAG:String = "ExamStatusOutWorker"
+ override fun doWork(): Result {
+ val examType =WorkRoomDataBase.getWorkRoomDataBase(applicationContext).examStatusDao.startExamInt;
+ Log.i(TAG,"鏌ュ埌鐨勮�冭瘯type="+examType)
+ val data = Data.Builder().putInt(Constant.EXAM_STATUS_TYPE,examType).build()
+ if (examType != safeluck.drive.evaluation.Constant.NONE_BEEN_START_EXAM) {
+ try {
+ val jsonObject = JSONObject()
+ jsonObject.put("exam", 1)
+ jsonObject.put("type", examType)
+ val examJson = jsonObject.toString()
+ AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.EXAM_STATUS, examJson)
+ } catch (e: JSONException) {
+ e.printStackTrace()
+ }
+ }
+ return Result.success(data)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index bcc5755..0cda1f6 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -23,6 +23,8 @@
import me.yokeyword.fragmentation.SupportActivity;
import safeluck.drive.evaluation.DB.Student;
import safeluck.drive.evaluation.DB.WokViewModel;
+import safeluck.drive.evaluation.DB.exam_status.ExamStatus;
+import safeluck.drive.evaluation.DB.exam_status.ExamStatusViewModel;
import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel;
@@ -211,6 +213,7 @@
}
});
+
signalConfigViewModel = ViewModelProviders.of(this).get(SignalConfigViewModel.class);
signalConfigViewModel.getSignalConfigs().observe(this, new Observer<List<SingalConfig>>() {
@Override
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index e66e144..ed04816 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -9,8 +9,10 @@
import androidx.annotation.NonNull;
+import androidx.lifecycle.Observer;
import androidx.work.Data;
import androidx.work.OneTimeWorkRequest;
+import androidx.work.WorkInfo;
import androidx.work.WorkManager;
import com.anyun.exam.lib.AYSdk;
@@ -40,6 +42,7 @@
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
import safeluck.drive.evaluation.DB.appstatusdb.AppStatusWorker;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusInitWorker;
+import safeluck.drive.evaluation.DB.exam_status.ExamStatusOutWorker;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusWoker;
import safeluck.drive.evaluation.DB.failitems.FailedProj;
import safeluck.drive.evaluation.DB.failitems.FailedProjRepository;
@@ -157,8 +160,12 @@
case Constant.NDK_START:
sendVechileInfo();
sendMapInfo();
- CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json);
+ OneTimeWorkRequest examStatausOutWorker = OneTimeWorkRequest.from(ExamStatusOutWorker.class);
+ WorkManager.getInstance(getApplicationContext()).enqueue(examStatausOutWorker);
+
+
+ CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json);
break;
case Constant.RTK_PLATFORM_REGISTER_STATUS:
CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json);
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
index 55ff7c4..69cc989 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -232,7 +232,7 @@
public void initTTS(Context context){
if (speaker == null){
- speaker = new Speaker(context);
+ speaker = new Speaker(context,null);
}
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java b/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java
index 46cc690..a688ef4 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java
@@ -2,6 +2,8 @@
import java.util.List;
+import safeluck.drive.evaluation.util.FileUtil;
+
public class SimulateNightBean {
/**
@@ -57,5 +59,21 @@
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) +
+ '}';
}
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
index 00235ce..edbca12 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -36,6 +36,7 @@
import java.util.Collections;
import java.util.Date;
import java.util.List;
+import java.util.Random;
import me.yokeyword.fragmentation.SupportFragment;
import safeluck.drive.evaluation.Constant;
@@ -63,6 +64,7 @@
import safeluck.drive.evaluation.platformMessage.JKMessage0202;
import safeluck.drive.evaluation.platformMessage.JKMessage0203;
import safeluck.drive.evaluation.platformMessage.JKMessage0204;
+import safeluck.drive.evaluation.util.Utils;
/**
* 鑱旂綉璁粌UI
@@ -98,6 +100,8 @@
private static final int SPEED_DATA = 2;
private FailedProjViewModel failedProjViewModel;
String icson;//杩斿洖鐨刬c鍗′俊鎭� json
+ private Random random = new Random();
+ private List<SimulateNightBean.QuestionBean> tempQs= new ArrayList<>();
public static SupportFragment newInstance() {
return new NetWorkTrainFragment();
@@ -202,14 +206,14 @@
examStatusList.clear();
examStatusList.addAll(examStatus);
mHandler.obtainMessage(ADD_DATA).sendToTarget();
- if (examStatus.get(0).getStartExam() == Constant.HAS_BEEN_START_EXAM){
+ if (examStatus.get(0).getStartExam() != Constant.NONE_BEEN_START_EXAM){
btn_start_exam.setEnabled(false);
tv_stop.setEnabled(true);
- sendExamJson(Constant.HAS_BEEN_START_EXAM,exam_type);
}else{
btn_start_exam.setEnabled(true);
tv_stop.setEnabled(false);
}
+ exam_type = examStatus.get(0).getStartExam();
}
@@ -402,7 +406,13 @@
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_start:
- examStatusViewModel.updateStartExam(Constant.HAS_BEEN_START_EXAM);
+ //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯
+ final JKMessage0202 jkMessage0202 = new JKMessage0202();
+ jkMessage0202.phone = ExamPlatformData.getInstance().getPhone();
+ jkMessage0202.timeBCD = new Date();
+ jkMessage0202.ID = ExamPlatformData.getInstance().getID();
+
+ jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id();
failedProjViewModel.deleteAll();
if (myDialogFragment == null){
@@ -415,6 +425,9 @@
exam_type = 2;
sendExamJson(1,exam_type);
ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯");
+ jkMessage0202.curr_exam = 0;
+
+ MessageProcessor.getInstance().sendMessage(jkMessage0202);
}
@Override
@@ -425,9 +438,28 @@
simulateNightBean = new SimulateNightBean();
}
simulateNightBean.setExam(0);
- List<SimulateNightBean.QuestionBean> list = ExamPlatformData.getInstance().getSimulate_light_tips();
+
+ final List<SimulateNightBean.QuestionBean> list = ExamPlatformData.getInstance().getSimulate_light_tips();
simulateNightBean.setQuestion(list.subList(list.size()-2,list.size()-1));
AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean));
+ jkMessage0202.curr_exam = 1;
+
+ MessageProcessor.getInstance().sendMessage(jkMessage0202);
+
+ tempQs.add(list.get(0));
+ int [] a =Utils.getRandomInts(4,12);
+ for (int i = 0; i < a.length; i++) {
+ tempQs.add(list.get(a[i]));
+ }
+
+ simulateNightBean.setQuestion(tempQs);
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean));
+ tempQs.clear();
+ }
+ },10*1000);
}
});
@@ -435,14 +467,8 @@
iv_head.getDrawable().setLevel(1);
//娓呯┖sns
sns.clear();
- //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯
-// JKMessage0202 jkMessage0202 = new JKMessage0202();
-// jkMessage0202.phone = ExamPlatformData.getInstance().getPhone();
-// jkMessage0202.timeBCD = new Date();
-// jkMessage0202.curr_exam = 0;
-// jkMessage0202.ID = ExamPlatformData.getInstance().getID();
-// jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id();
-// MessageProcessor.getInstance().sendMessage(jkMessage0202);
+
+
break;
case R.id.tv_stop:
@@ -472,6 +498,7 @@
private void sendExamJson(int i,int type) {
try {
+ examStatusViewModel.updateStartExam(type);
JSONObject jsonObject = new JSONObject();
jsonObject.put("exam", i);
jsonObject.put("type", type);
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
index 5ed9ac4..a3c5826 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
@@ -129,7 +129,7 @@
/**======================娴嬭瘯鏁版嵁搴撶粨鏉�==================*/
- Speaker speaker = new Speaker(getActivity());
+ Speaker speaker = new Speaker(getActivity(),null);
speaker.speak("涓浗鍔犳补锛岄噸搴嗗姞娌�");
String userId = "100002";
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 5591fbc..95e0c0c 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -29,13 +29,10 @@
import org.json.JSONObject;
import java.util.ArrayList;
-import java.util.EventListener;
import java.util.List;
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.ExamStatus;
@@ -164,7 +161,7 @@
examStatusList.clear();
examStatusList.addAll(examStatus);
mHandler.obtainMessage(ADD_DATA).sendToTarget();
- if (examStatus.get(0).getStartExam() == Constant.HAS_BEEN_START_EXAM){
+ if (examStatus.get(0).getStartExam() == Constant.NONE_BEEN_START_EXAM){
btn_train.setEnabled(false);
tv_stop.setEnabled(true);
}else{
@@ -283,7 +280,7 @@
}
break;
case R.id.btn_start:
- examStatusViewModel.updateStartExam(Constant.HAS_BEEN_START_EXAM);
+ examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM);
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("exam", 1);
diff --git a/app/src/main/java/safeluck/drive/evaluation/util/Utils.java b/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
index 7b178a3..79f7ee8 100644
--- a/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
+++ b/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
@@ -8,6 +8,8 @@
import com.anyun.exam.lib.util.ByteUtil;
import com.safeluck.aykj.utils.BytesUtils;
+import java.util.Random;
+
/**
* MyApplication2
* Created by lzw on 2019/3/18. 13:13:42
@@ -116,4 +118,44 @@
byte checkcode = calCheckCode(dtas);
System.out.println(BytesUtils.toHexString(checkcode));
}
+
+
+
+ public static int[] getRandomInts(int size,int randomMax){
+ Random random = new Random();
+ int[] a=new int[size];
+ int index=0;
+
+ while(index<size){
+ System.out.println("---------------");
+ int temp=random.nextInt(randomMax);
+
+ if(temp!=0&&!contains(a,temp)){
+ a[index++]=temp;
+ }
+ }
+
+ for(int i=0;i<a.length;i++){
+ System.out.println(a[i]);
+ }
+
+
+ return a;
+
+ }
+
+
+
+ //璇ユ柟娉曞畬鎴愬垽鏂璽emp鍦╝鏁扮粍涓槸鍚﹀寘鍚�
+//鍖呭惈杩斿洖true
+ public static boolean contains(int[] a,int temp){
+
+ for(int i=0;i<a.length;i++){
+ if(a[i]==temp){
+ return true;
+ }
+ }
+
+ return false;
+ }
}
--
Gitblit v1.8.0