From c125fc0a5ee47ef32db587899d972491231167ee Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期四, 12 三月 2020 17:40:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
app/src/main/java/safeluck/drive/evaluation/Constant.java | 7
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 7
app/src/main/assets/map.json | 8
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt | 44 +
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java | 3
app/src/main/java/safeluck/drive/evaluation/worker/TimeWorker.kt | 21
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 523 +++++++++++++++++++----
app/src/main/java/safeluck/drive/evaluation/util/Utils.java | 56 ++
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java | 7
app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java | 372 +++++++++++++++-
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java | 2
app/src/main/java/safeluck/drive/evaluation/app.java | 4
app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 37
app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java | 1
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java | 9
app/src/main/res/layout/layout_net_train.xml | 2
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigViewModel.java | 2
app/src/main/java/safeluck/drive/evaluation/DB/Constant.java | 7
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 163 ++++++
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java | 14
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java | 6
app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java | 10
22 files changed, 1,117 insertions(+), 188 deletions(-)
diff --git a/app/src/main/assets/map.json b/app/src/main/assets/map.json
index 705fd4d..8d37d90 100644
--- a/app/src/main/assets/map.json
+++ b/app/src/main/assets/map.json
@@ -2,7 +2,7 @@
"id": 863,
"item": 1,
"point": [{
- "x-y": [-5.3706, 30.3648, -4.9011, 29.4905, -4.1911, 29.8586, -3.7009, 28.7631, -2.5941, 29.2631, -3.0647, 30.3601, -2.3782, 30.7019, -2.9159, 31.6925]
+ "x-y": [-9.3806, 37.3791, -8.9130, 36.4974, -8.1991, 36.8640, -7.6962, 35.7786, -6.6023, 36.2578, -7.0759, 37.3599, -6.4065, 37.7090, -6.8984, 38.6962]
}
]
},
@@ -10,7 +10,7 @@
"id": 864,
"item": 3,
"point": [{
- "x-y": [-5.3806, 30.3791, -4.9130, 29.4974, -4.1991, 29.8640, -3.6962, 28.7786, -2.6023, 29.2578, -3.0759, 30.3599, -2.4065, 30.7090, -2.8984, 31.6962]
+ "x-y": [-5.3806, 37.3791, -4.9130, 36.4974, -4.1991, 36.8640, -3.6962, 35.7786, -2.6023, 36.2578, -3.0759, 37.3599, -2.4065, 37.7090, -2.8984, 38.6962]
}
]
},
@@ -18,7 +18,7 @@
"id": 865,
"item": 2,
"point": [{
- "x-y": [-2.4065,30.709,-3.0759,30.3599,-2.6023,29.2578,-2.9669,29.0981,-3.4503,30.1946,-3.8247,30.0293,-3.3316,28.9383,-3.6962,28.7786,-4.1991,29.864]
+ "x-y": [-1.9065, 30.7090, -2.5759, 30.3599, -2.1023, 29.2578, -2.4669, 29.0981, -2.9503, 30.1946, -3.3247, 30.0293, -2.8316, 28.9383, -3.1962, 28.7786, -3.6991, 29.8640]
}
]
},
@@ -26,7 +26,7 @@
"id": 866,
"item": 5,
"point": [{
- "x-y": [-2.8984, 31.6962, -2.4065, 30.7090, -3.0759, 30.3599, -2.6023, 29.2578, -3.6962, 28.7786,-4.6667 ,30.7457]
+ "x-y": [1.1016, 31.6962, 1.5935, 30.7090, 0.9241, 30.3599, 1.3977, 29.2578, 0.3038, 28.7786, -0.6667, 30.7457]
}
]
},
diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index fcafc77..9e6c2d5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -1,5 +1,7 @@
package safeluck.drive.evaluation;
+import org.jetbrains.annotations.NotNull;
+
/**
* MyApplication2
* Created by lzw on 2020/1/7. 18:01:40
@@ -84,4 +86,9 @@
public static final String BIND_RTK_SPEED_TOPIC = "BIND_RTK_SPEED_TOPIC";
public static final int EXIT_CURRENT_ITEM = 0;//閫�鍑烘煇鍦哄湴
public static String exam_enter_exitdata="exam_enter_exitdata";
+ public static int Chang_di = 2;
+ public static int DaoLu_night = 3;
+ public static int DaoLu = 4;
+ @NotNull
+ public static final String TIME_MINUTE = "show_time_minute";
}
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 4295bbc..deb55f5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
@@ -18,4 +18,11 @@
public static final String RTK_CONFIG_SN = "sn";
@NotNull
public static final String EXAM_STATUS_TYPE = "exam_status_type";
+ public static final int EXAM_MAP_TYPE_REVERSE = 1;
+ public static final int EXAM_MAP_TYPE_RAMP = 2;
+ public static final int EXAM_MAP_TYPE_PARK = 3;
+ public static final int EXAM_MAP_TYPE_CURVE = 4;
+ public static final int EXAM_MAP_TYPE_ANGLE = 5;
+ public static final int FINISH_ITEM = 0;//璇ラ」鍦哄湴鑰冭瘯缁撴潫锛堝嚭鍦哄湴锛�
+ public static final int BEGIN_ITEM = 1;//璇ラ」鑰冭瘯寮�濮嬭繘鍏ュ満鍦�
}
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 81da498..31bb742 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
@@ -26,6 +26,16 @@
//1 杩涘叆锛堟鍦ㄨ繘琛岃�冭瘯锛� 2-寰呰��
private int enter;
+ public ExamStatus(int map_id) {
+ this.map_id = map_id;
+ }
+
+ public void setResult(int result) {
+ this.result = result;
+ }
+
+ private int result=-1;//璇ラ」鑰冭瘯缁撴灉 榛樿-1 娌℃湁缁撴灉锛� 0-鎴愬姛 1-澶辫触
+
//琛ㄧず宸茬粡鐐瑰嚮浜嗗紑濮嬭�冭瘯锛屽苟涓旀敹鍒颁簡鑰冭瘯搴旂瓟 0-鏈�冭瘯 2-鍦哄湴 3-妯℃嫙鐏厜锛岃矾鑰冿紝 4-璺��
private int startExam;
@@ -78,4 +88,8 @@
", startExam=" + startExam +
'}';
}
+
+ public int getResult() {
+ return result;
+ }
}
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 7a8227f..d6f81e8 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
@@ -2,6 +2,7 @@
import androidx.lifecycle.LiveData;
import androidx.room.Dao;
+import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
@@ -18,6 +19,8 @@
@Query("update exam_status set enter =:enter where map_id =:mapid")
void updateEnter(int enter,int mapid);
+ @Query("update exam_status set result =:result where map_id =:mapid")
+ void updateItemResult(int result,int mapid);
@Query("update exam_status set startExam =:startexam")
void updateStartExam(int startexam);
@@ -25,4 +28,7 @@
LiveData<Integer> getStartExam();
@Query("select startExam from exam_status where map_id=1")
int getStartExamInt();
+
+ @Query("delete from exam_status")
+ void deleteAll();
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java
index 3527b3b..0376acb 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java
@@ -26,11 +26,12 @@
@NonNull
@Override
public Result doWork() {
- MyLog.i(TAG,"exam_status琛╮eset 鍒濆鍖�");
- for (int i = 0; i < 5; i++) {
+ MyLog.i("exam_status琛╮eset 鍒濆鍖�");
+ WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getExamStatusDao().deleteAll();
+ for (int i = 0; i < 1; i++) {
examStatus.setEnter(2);//榛樿寰呰�冮」鐩�
examStatus.setStartExam(0);//榛樿娌℃湁寮�濮嬭�冭瘯
- examStatus.setMap_id(i+1);
+ examStatus.setMap_id(1);
WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getExamStatusDao().insert(examStatus);
}
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
index 66cc9f5..9e20043 100644
--- 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
@@ -2,20 +2,38 @@
import android.content.Context
import android.util.Log
+import android.widget.Toast
import androidx.work.Data
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.anyun.exam.lib.AYSdk
+import com.anyun.exam.lib.MyLog
+import com.google.gson.Gson
import org.json.JSONException
import org.json.JSONObject
import safeluck.drive.evaluation.DB.Constant
import safeluck.drive.evaluation.DB.WorkRoomDataBase
+import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig
+import safeluck.drive.evaluation.bean.SignalConfigRemote
class ExamStatusOutWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
val TAG:String = "ExamStatusOutWorker"
+ private var signalConfiglist: MutableList<SignalConfigRemote> = ArrayList()
+ private val gson = Gson()
+ private var singalConfigs :List<SingalConfig> = ArrayList()
override fun doWork(): Result {
val examType =WorkRoomDataBase.getWorkRoomDataBase(applicationContext).examStatusDao.startExamInt;
- Log.i(TAG,"鏌ュ埌鐨勮�冭瘯type="+examType)
+ singalConfigs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).signalConfigDao._getSignalConfigs()
+ for (i in singalConfigs.indices) {
+ val signalConfigRemote = SignalConfigRemote()
+ signalConfigRemote.func_id = i
+ signalConfigRemote.gpio_num = singalConfigs.get(i).getIndex()
+ signalConfigRemote.level = singalConfigs.get(i).getHighLevel()
+ signalConfiglist.add(signalConfigRemote)
+ }
+ var indexs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).signalConfigDao.allIndexs
+ sendSignalConfigsToRemote(indexs)
+ MyLog.i("鏌ュ埌鐨勮�冭瘯type="+examType)
val data = Data.Builder().putInt(Constant.EXAM_STATUS_TYPE,examType).build()
if (examType != safeluck.drive.evaluation.Constant.NONE_BEEN_START_EXAM) {
try {
@@ -31,4 +49,28 @@
return Result.success(data)
}
+ private fun sendSignalConfigsToRemote(indexs: List<Int>) {
+ if (signalConfiglist.size > 0) {
+ if (listContainsSameValue(indexs)) {
+ Log.i(TAG, "sendSignalConfigsToRemote: 鏈夌浉鍚岀殑index锛屼笉鑳藉彂閫�" + gson.toJson(signalConfiglist))
+ } else {
+ AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.SEND_CONFIG_SIGNAL, gson.toJson(signalConfiglist))
+ }
+ }
+ }
+
+ private fun listContainsSameValue(indexs: List<Int>): Boolean {
+ for (i in indexs.indices) { //鍙互榛樿鏄�0 0涓嶅垽鏂槸鍚︽湁鐩稿悓鐨刬ndex
+ if (indexs[i] == 0) {
+ continue
+ }
+ for (j in i + 1 until indexs.size) {
+ if (indexs[i] === indexs[j]) {
+ return true
+ }
+ }
+ }
+ return false
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java
index 1ef2a68..fd52cf7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java
@@ -46,4 +46,13 @@
", startExam=" + startExam +
'}';
}
+
+ /**
+ * 鏇存柊Exam_status琛ㄧ殑result
+ * @param i result 1=鎴愬姛锛�0-澶辫触
+ * @param map_id
+ */
+ public void updateItemExamResult(int i, int map_id) {
+ examStatusWorkRepo.updateItemResult(i,map_id);
+ }
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java
index 78458d5..b840c2e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java
@@ -32,10 +32,11 @@
jsonObject = new JSONObject(str);
int mapId = jsonObject.getInt("map_id");
int enter = jsonObject.getInt("enter");
+ int type = jsonObject.getInt("type");
ExamStatus examStatus = new ExamStatus();
examStatus.setEnter(enter);
examStatus.setMap_id(mapId);
- examStatus.setMap_item(1);
+ examStatus.setMap_item(type);
WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getExamStatusDao().insert(examStatus);
return Result.success();
} catch (JSONException e) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java
index a3b467b..2199a40 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java
@@ -40,6 +40,7 @@
WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
@Override
public void run() {
+
examStatusDao.updateStartExam(startex);
}
});
@@ -52,4 +53,13 @@
public LiveData<Integer> getStartExam() {
return startExam;
}
+
+ public void updateItemResult(final int i, final int map_id) {
+ WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
+ @Override
+ public void run() {
+ examStatusDao.updateItemResult(i,map_id);
+ }
+ });
+ }
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java
index 1f3cabf..52f779d 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java
@@ -26,6 +26,8 @@
List<Integer> getAllIndexs();
@Query("select * from signal_config")
+ List<SingalConfig> _getSignalConfigs();
+ @Query("select * from signal_config")
LiveData<List<SingalConfig>> getSignalConfigs();
@Insert(onConflict = OnConflictStrategy.REPLACE)
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigViewModel.java
index cccb148..b58f86b 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigViewModel.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigViewModel.java
@@ -22,6 +22,8 @@
workRepo.insertSignalConig(singalConfig);
}
+
+
public LiveData<List<SingalConfig>> getSignalConfigs(){
return signalConfigs;
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index 0cda1f6..3eca6b0 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -104,7 +104,6 @@
if (msgCode == Constant.NDK_START){
MyLog.i(TAG,"NDK_start,鍙戦�丷TK閰嶇疆");
sendRtkConfigInfo();
- sendSignalConfigsToRemote();
sendMcuUprgrade();
}
}
@@ -165,7 +164,7 @@
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
//鍒濆鍖杢ts
- ExamPlatformData.getInstance().initTTS(this);
+ ExamPlatformData.getInstance().initTTS(getApplicationContext());
// TODO
// 杩涜tcp杩炴帴
final String userId = "100002";
@@ -214,23 +213,23 @@
});
- signalConfigViewModel = ViewModelProviders.of(this).get(SignalConfigViewModel.class);
- signalConfigViewModel.getSignalConfigs().observe(this, new Observer<List<SingalConfig>>() {
- @Override
- public void onChanged(List<SingalConfig> singalConfigs) {
- signalConfiglist.clear();
- MyLog.i(TAG, "淇″彿閰嶇疆鍙戠敓鍙樺寲");
-
- for (int i = 0; i < singalConfigs.size(); i++) {
- SignalConfigRemote signalConfigRemote = new SignalConfigRemote();
- signalConfigRemote.setFunc_id(i);
- signalConfigRemote.setGpio_num(singalConfigs.get(i).getIndex());
- signalConfigRemote.setLevel(singalConfigs.get(i).getHighLevel());
- signalConfiglist.add(signalConfigRemote);
- }
- sendSignalConfigsToRemote();
- }
- });
+// signalConfigViewModel = ViewModelProviders.of(this).get(SignalConfigViewModel.class);
+// signalConfigViewModel.getSignalConfigs().observe(this, new Observer<List<SingalConfig>>() {
+// @Override
+// public void onChanged(List<SingalConfig> singalConfigs) {
+// signalConfiglist.clear();
+// MyLog.i(TAG, "淇″彿閰嶇疆鍙戠敓鍙樺寲");
+//
+// for (int i = 0; i < singalConfigs.size(); i++) {
+// SignalConfigRemote signalConfigRemote = new SignalConfigRemote();
+// signalConfigRemote.setFunc_id(i);
+// signalConfigRemote.setGpio_num(singalConfigs.get(i).getIndex());
+// signalConfigRemote.setLevel(singalConfigs.get(i).getHighLevel());
+// signalConfiglist.add(signalConfigRemote);
+// }
+// sendSignalConfigsToRemote();
+// }
+// });
mPermissionsManager = new PermissionManager(this) {
@Override
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index ed04816..db36839 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -329,7 +329,9 @@
jkMessage0206.speed = speed;
jkMessage0206.fangXiang = (int)track_ture;
jkMessage0206.rf = qf;
- utc =utc.substring(0,15);
+ if (utc.length()>16){
+ utc = utc.substring(0,16);
+ }
jkMessage0206.timeBCD = utc;
jkMessage0206.json =json;
jkMessage0206.length = jkMessage0206.json.length();
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 69cc989..0b425f3 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -42,9 +42,9 @@
private static List<SimulateNightBean.QuestionBean> simulate_light_tips = new ArrayList<>();
static {
examPlatformStrs.put(TCP_DISCONNECT,"鏈繛鎺�");
- examPlatformStrs.put(TCP_CONNECTED,"宸茶繛鎺�");
+ examPlatformStrs.put(TCP_CONNECTED,"鏈櫥褰�");
examPlatformStrs.put(DEV_NOT_REGISTERED,"鏈敞鍐�");
- examPlatformStrs.put(DEV_REGISTERED,"宸叉敞鍐�");
+ examPlatformStrs.put(DEV_REGISTERED,"鏈櫥褰�");
examPlatformStrs.put(DEV_NOT_LOGIN,"鏈櫥褰�");
examPlatformStrs.put(DEV_LOGIN,"宸茬櫥褰�");
@@ -69,7 +69,8 @@
simulate_light_tips.add(new SimulateNightBean.QuestionBean(6,"闆惧ぉ琛岄┒"));
simulate_light_tips.add(new SimulateNightBean.QuestionBean(7,"鎷辨ˉ銆佷汉琛岄亾"));
simulate_light_tips.add(new SimulateNightBean.QuestionBean(8,"澶滈棿鍦ㄩ亾璺笂鍙戠敓鏁呴殰锛屽Θ纰嶄氦閫氬張闅句互绉诲姩"));
- simulate_light_tips.add(new SimulateNightBean.QuestionBean(9," 澶滈棿閫氳繃鎬ュ集銆佸潯璺�佹嫳妗ャ�佷汉琛屾í閬撱�佹垨鑰呮病鏈変氦閫氫俊鍙风伅鎺у埗鐨勮矾鍙�"));
+ //銆佹嫳妗ャ�佷汉琛屾í閬撱�佹垨鑰呮病鏈変氦閫氫俊鍙风伅鎺у埗鐨勮矾鍙�
+ simulate_light_tips.add(new SimulateNightBean.QuestionBean(9," 澶滈棿閫氳繃鎬ュ集銆佸潯璺�"));
simulate_light_tips.add(new SimulateNightBean.QuestionBean(10,"娌℃湁浜ら�氭帶鍒剁伅涔嬭矾鍙�"));
simulate_light_tips.add(new SimulateNightBean.QuestionBean(11,"涓存椂鍋滆溅"));
simulate_light_tips.add(new SimulateNightBean.QuestionBean(12,"瓒呰溅"));
diff --git a/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java b/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java
index b1452c4..5b0b0ba 100644
--- a/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java
@@ -42,6 +42,7 @@
}
}
}).create();
+ dialog.setCancelable(false);
return dialog;
}
private Callback callback;
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
index a58a499..3b3d097 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java
@@ -8,6 +8,7 @@
import android.graphics.Path;
import android.os.Bundle;
import android.os.Handler;
+import android.text.LoginFilter;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
@@ -124,7 +125,7 @@
private int map_id;
private double gpsSpeed = 0;
-// double map[][] = {{1, 1}, {10, 1}, {10, 10}, {1, 10}};
+ double allMap[][][];
double map[][] = {{-2.4065, 30.7090}, {-3.0759, 30.3599}, { -2.6023, 29.2578}, {-3.3316,28.9383},{-3.8247,30.0293},
{-3.4503,30.1946}, {-2.9669,29.0981}, { -3.6962, 28.7786}, {-4.1991, 29.8640}};
double map_other[][] = {{-2.4065, 30.7090}, {-3.0759, 30.3599}, { -2.6023, 29.2578}, {-3.3316,28.9383},{-3.8247,30.0293},
@@ -208,7 +209,8 @@
});
}
- public void DrawMap(List<Double> mainAnt, final double[][] map, final double[][] car, List<Integer>body, List<Integer> tire) {
+ public void DrawMap(List<Double> mainAnt, final double[][] map, final double[][] car,
+ List<Integer>body, List<Integer> tire) {
if (canvas2 == null || bmp == null) {
return;
}
@@ -416,10 +418,252 @@
// }
// });
}
+ public void DrawMapAll(List<Double> mainAnt, final double[][][] map, final double[][] car,
+ List<Integer>body, List<Integer> tire) {
+ if (canvas2 == null || bmp == null) {
+ return;
+ }
+ long scale_x,scale_y;
+// _mActivity.runOnUiThread(new Runnable() {
+// @Override
+// public void run() {
+ double base_x = 300, base_y = 20;
+ double max_x = 0, min_x = 0, max_y = 0, min_y = 0;
+
+// Log.d(TAG, "DrawMap map size " + map.length + " car size " + car.length);
+
+
+ for (int x = 0; x < map.length; x++) {
+ for (int j = 0; j < map[x].length; j++) {
+ if (x == 0&&j==0) {
+ max_x = map[0][0][0];
+ min_x = map[0][0][0];
+ max_y = map[0][0][1];
+ min_y = map[0][0][1];
+ } else {
+// Log.i(TAG,String.format("map[%d][%d][0]=%f",x,j,map[x][j][0]));
+// Log.i(TAG,String.format("map[%d][%d][1]=%f",x,j,map[x][j][1]));
+// Log.i(TAG,String.format("max_x=%f,max_y=%f,min_x=%f,min_y=%f",max_x,max_y,min_x,min_y));
+ if (max_x < map[x][j][0]) {
+
+ max_x = map[x][j][0];
+ }
+ if (min_x > map[x][j][0]) {
+ min_x = map[x][j][0];
+ }
+ if (max_y < map[x][j][1]) {
+ max_y = map[x][j][1];
+ }
+ if (min_y > map[x][j][1]) {
+ min_y = map[x][j][1];
+ }
+ }
+ }
+ }
+
+// Log.d(TAG, "all 鍦板浘DrawMap max_x " + max_x + " max_y " + max_y + " min_x " + min_x + " min_y " + min_y);
+ if (map_other.length>9){
+ for (int i = 0; i < map_other.length; i++) {
+
+ if (max_x < map_other[i][0]) {
+ max_x = map_other[i][0];
+ }
+ if (min_x > map_other[i][0]) {
+ min_x = map_other[i][0];
+ }
+ if (max_y < map_other[i][1]) {
+ max_y = map_other[i][1];
+ }
+ if (min_y > map_other[i][1]) {
+ min_y = map_other[i][1];
+ }
+ }
+ }
+
+
+// Log.d(TAG, "DrawMap鍙﹀涓�鏉℃洸绾� max_x " + max_x + " max_y " + max_y + " min_x " + min_x + " min_y " + min_y);
+
+ for (int i = 0; i < car.length; i++) {
+ if (max_x < car[i][0]) {
+ max_x = car[i][0];
+ }
+ if (min_x > car[i][0]) {
+ min_x = car[i][0];
+ }
+ if (max_y < car[i][1]) {
+ max_y = car[i][1];
+ }
+ if (min_y > car[i][1]) {
+ min_y = car[i][1];
+ }
+ }
+
+// Log.d(TAG, "DrawMapAll 鍜岃溅姣攎ax_x " + max_x + " max_y " + max_y + " min_x " + min_x + " min_y " + min_y);
+
+ scale_x = Math.round((screen_width - base_x - 10) / (max_x - min_x));
+ scale_y = Math.round((screen_height - base_y - 10) / (max_y - min_y));
+
+ if (scale_x >= scale_y) {
+ scale_x = scale_y;
+ } else {
+ scale_y = scale_x;
+ }
+
+// Log.d(TAG, "DrawMapAll scale_x " + scale_x + " scale_y " + scale_y);
+
+
+ canvas2.drawColor(Color.WHITE);
+
+ if (paint == null || canvas2==null){
+ return;
+ }
+ paint.setStyle(Paint.Style.FILL_AND_STROKE);
+ paint.setColor(Color.BLUE);
+
+ canvas2.drawCircle((float) (base_x + (mainAnt.get(0) - min_x) * scale_x), (float) (base_y + (0 - mainAnt.get(1) - min_y) * scale_y), 2, paint);
+
+ paint.setColor(Color.RED);
+ canvas2.drawCircle((float) (base_x + (car[tire.get(0)][0] - min_x) * scale_x), (float) (base_y + (car[tire.get(0)][1] - min_y) * scale_y), 2.5f, paint);
+ canvas2.drawCircle((float) (base_x + (car[tire.get(1)][0] - min_x) * scale_x), (float) (base_y + (car[tire.get(1)][1] - min_y) * scale_y), 2.5f, paint);
+ canvas2.drawCircle((float) (base_x + (car[tire.get(2)][0] - min_x) * scale_x), (float) (base_y + (car[tire.get(2)][1] - min_y) * scale_y), 2.5f, paint);
+ canvas2.drawCircle((float) (base_x + (car[tire.get(3)][0] - min_x) * scale_x), (float) (base_y + (car[tire.get(3)][1] - min_y) * scale_y), 2.5f, paint);
+
+
+
+ paint.setStyle(Paint.Style.STROKE);
+ paint.setColor(Color.BLACK);
+
+
+
+
+
+ Path path = new Path();
+
+ for (int k = 0; k < map.length; k++) {
+
+
+
+
+ Log.i(TAG, String.format("all DrawMap: map[%d].length=[%d]",k,map[k].length));
+ if (map[k].length < 9) {
+// Log.d(TAG, String.format("map[%d][0][0]=%f,X=%f",k,map[k][0][0], (float) (base_x + (map[k][0][0] - min_x) * scale_x)) + String.format("map[%d][0][1]=%f,Y=%f",k,map[k][0][1], (float) (base_y + (map[k][0][1] - min_y) * scale_y)));
+ path.moveTo((float) (base_x + (map[k][0][0] - min_x) * scale_x), (float) (base_y + (map[k][0][1] - min_y) * scale_y));
+ for (int i = 1; i < map[k].length; i++) {
+// Log.i(TAG,String.format("map[%d][%d][0]=%f,to X=%f",k,i,map[k][i][0],(float) (base_x + (map[k][i][0] - min_x) * scale_x)));
+// Log.i(TAG,String.format("map[%d][%d][1]=%f,to Y=%f",k,i,map[k][i][1],(float) (base_y + (map[k][i][1] - min_y) * scale_y)));
+ path.lineTo((float) (base_x + (map[k][i][0] - min_x) * scale_x), (float) (base_y + (map[k][i][1] - min_y) * scale_y));
+ }
+ path.close();
+ } else if (map[k].length == 9) {
+ path.moveTo((float) (base_x + (map[k][0][0] - min_x) * scale_x), (float) (base_y + (map[k][0][1] - min_y) * scale_y));
+ path.lineTo((float) (base_x + (map[k][8][0] - min_x) * scale_x), (float) (base_y + (map[k][8][1] - min_y) * scale_y));
+
+ path.moveTo((float) (base_x + (map[k][2][0] - min_x) * scale_x), (float) (base_y + (map[k][2][1] - min_y) * scale_y));
+ path.lineTo((float) (base_x + (map[k][1][0] - min_x) * scale_x), (float) (base_y + (map[k][1][1] - min_y) * scale_y));
+
+ path.moveTo((float) (base_x + (map[k][3][0] - min_x) * scale_x), (float) (base_y + (map[k][3][1] - min_y) * scale_y));
+ path.lineTo((float) (base_x + (map[k][4][0] - min_x) * scale_x), (float) (base_y + (map[k][4][1] - min_y) * scale_y));
+
+ path.moveTo((float) (base_x + (map[k][6][0] - min_x) * scale_x), (float) (base_y + (map[k][6][1] - min_y) * scale_y));
+ path.lineTo((float) (base_x + (map[k][5][0] - min_x) * scale_x), (float) (base_y + (map[k][5][1] - min_y) * scale_y));
+
+ path.moveTo((float) (base_x + (map[k][7][0] - min_x) * scale_x), (float) (base_y + (map[k][7][1] - min_y) * scale_y));
+ path.lineTo((float) (base_x + (map[k][8][0] - min_x) * scale_x), (float) (base_y + (map[k][8][1] - min_y) * scale_y));
+ } else {
+ path.moveTo((float) (base_x + (map[k][0][0] - min_x) * scale_x), (float) (base_y + (map[k][0][1] - min_y) * scale_y));
+ for (int i = 1; i < map[k].length; i++) {
+ path.lineTo((float) (base_x + (map[k][i][0] - min_x) * scale_x), (float) (base_y + (map[k][i][1] - min_y) * scale_y));
+ }
+
+ if (map_other.length>9){
+ path.moveTo((float) (base_x + (map_other[0][0] - min_x) * scale_x), (float) (base_y + (map_other[0][1] - min_y) * scale_y));
+ for (int i = 1; i < map[k].length; i++) {
+ path.lineTo((float) (base_x + (map_other[i][0] - min_x) * scale_x), (float) (base_y + (map_other[i][1] - min_y) * scale_y));
+ }
+ }
+
+ for (int i = 0, j = 0; i < map[k].length && j < map_other.length; i++, j++) {
+ path.moveTo((float) (base_x + (map[k][i][0] - min_x) * scale_x), (float) (base_y + (map[k][i][1] - min_y) * scale_y));
+ path.lineTo((float) (base_x + (map_other[j][0] - min_x) * scale_x), (float) (base_y + (map_other[j][1] - min_y) * scale_y));
+ }
+
+ }
+
+
+ }
+
+ canvas2.drawPath(path, paint);
+
+ path.moveTo((float) (base_x + (car[body.get(0)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(0)][1] - min_y) * scale_y));
+ for (int i = 1; i < body.size(); i++){
+// Log.d(TAG, "for 寰幆 DrawMap to X = " + (float) (base_x + (car[body.get(i)][0] - min_x) * scale_x)+ " Y = " + (float) (base_y + (car[body.get(i)][1] - min_y) * scale_y));
+ Log.i(TAG,String.format("car[%d][0]=%f,to X =%f,car[%d][1]=%f,to Y=%f",i,car[body.get(i)][0],
+ (float) (base_x + (car[body.get(i)][0] - min_x) * scale_x),i,car[body.get(i)][1],(float) (base_y + (car[body.get(i)][1] - min_y) * scale_y)));
+ path.lineTo((float) (base_x + (car[body.get(i)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(i)][1] - min_y) * scale_y));
+ }
+
+ path.close();
+
+ canvas2.drawPath(path, paint);
+
+
+ paint.setStyle(Paint.Style.FILL_AND_STROKE);
+
+ if (osdHeading != null) {
+ Path pathText = new Path();
+ pathText.moveTo(10, 170);
+ pathText.lineTo(700, 170);
+ canvas2.drawTextOnPath(osdHeading, pathText, 0, 0, paint);//閫嗘椂閽堢敓鎴�
+ }
+
+ if (osdMoveDirect != null) {
+ Path pathText = new Path();
+ pathText.moveTo(10, 30);
+ pathText.lineTo(700, 30);
+ canvas2.drawTextOnPath(osdMoveDirect, pathText, 0, 0, paint);//閫嗘椂閽堢敓鎴�
+ }
+
+ if (osdRtkSpeed != null) {
+ Path pathText = new Path();
+ pathText.moveTo(10, 240);
+ pathText.lineTo(700, 240);
+ canvas2.drawTextOnPath(osdRtkSpeed, pathText, 0, 0, paint);//閫嗘椂閽堢敓鎴�
+ }
+
+ if (osdQf != null) {
+ Path pathText = new Path();
+ pathText.moveTo(10, 120);
+ pathText.lineTo(700, 120);
+ canvas2.drawTextOnPath(osdQf, pathText, 0, 0, paint);//閫嗘椂閽堢敓鎴�
+ }
+
+ {
+ BigDecimal bd = new BigDecimal(gpsSpeed);
+ bd = bd.setScale(3, BigDecimal.ROUND_HALF_UP);
+
+ Path pathText = new Path();
+ pathText.moveTo(10, 70);
+ pathText.lineTo(700, 70);
+
+ canvas2.drawTextOnPath("GPS閫熷害:" + bd, pathText, 0, 0, paint);//閫嗘椂閽堢敓鎴�
+ }
+
+
+ // 鎻愪氦鐢诲竷
+ Canvas canvas = holder.lockCanvas();
+ if (canvas != null){
+
+ canvas.drawBitmap(bmp, 0, 0, paint);
+ holder.unlockCanvasAndPost(canvas);
+ }
+// }
+// });
+ }
int line = 0;
int map_line = 0;
int map_line_other = 0;
+ int sanwei = 0;
private StringBuffer stringBuffer = new StringBuffer();
class MessageRemoteService{
public int msgCode;
@@ -493,6 +737,7 @@
line = 0;
map_line = 0;
map_line_other = 0;
+ sanwei = 0;
car = new double[points.size()/2][2];
@@ -553,52 +798,101 @@
examMaps = gson.fromJson(newmap.trim(),type);
}
+ if (map_id == -1){
+ allMap =new double[examMaps.size()][][];
+ for (int i = 0; i < examMaps.size(); i++) {
+ ExamMap examMap = examMaps.get(i);
+ List<ExamMap.PointBean> pointBeanList = examMap.getPoint();
- for (int i = 0; i < examMaps.size(); i++) {
- ExamMap examMap = examMaps.get(i);
- if (map_id == examMap.getId()){
- List<ExamMap.PointBean> pointBeanList = examMap.getPoint();
-
- for(int j=0; j<pointBeanList.size();j++){
- List<Double> xys = pointBeanList.get(j).getXy();
- if(j==0){
- map = new double[xys.size()/2][2];
-
- for (int k=0; k<xys.size();k++){
- if ((k % 2) == 0) {
- map[map_line][0] = xys.get(k);
- } else {
- double value = 0 - xys.get(k);
- Log.i(TAG, "onCEvent: map鏂板��=" + value + " 浣嶇疆锛�" + k);
- map[map_line][1] = value;
- map_line++;
- }
- }
- }else{
- MyLog.i(TAG,"鏆傛椂鏀寔鏇茬嚎");
- map_other = new double[xys.size()/2][2];
- for (int k=0; k<xys.size();k++){
- if ((k % 2) == 0) {
- map_other[map_line_other][0] = xys.get(k);
- } else {
- double value = 0 - xys.get(k);
- map_other[map_line_other][1] = value;
- map_line_other++;
- }
- }
- break;
+ for(int j=0; j<pointBeanList.size();j++){
+ List<Double> xys = pointBeanList.get(j).getXy();
+ if(j==0){
+ map = new double[xys.size()/2][2];
+ allMap[sanwei] = new double[xys.size()/2][2];
+ map_line = 0;
+ for (int k=0; k<xys.size();k++){
+ if ((k % 2) == 0) {
+ map[map_line][0] = xys.get(k);
+ } else {
+ double value = 0 - xys.get(k);
+ map[map_line][1] = value;
+ map_line++;
}
-
-
-
}
- break;
+ allMap[sanwei] = map.clone();
+ sanwei++;
+
+ }else{
+// MyLog.i(TAG,"all鏀寔鏇茬嚎");
+ map_other = new double[xys.size()/2][2];
+ for (int k=0; k<xys.size();k++){
+ if ((k % 2) == 0) {
+ map_other[map_line_other][0] = xys.get(k);
+ } else {
+ double value = 0 - xys.get(k);
+ map_other[map_line_other][1] = value;
+ map_line_other++;
+ }
+ }
}
+
+
+
}
+
+ }
+ DrawMapAll(mainAnt,allMap,car,body,tire);
+ }else{
+ for (int i = 0; i < examMaps.size(); i++) {
+ ExamMap examMap = examMaps.get(i);
+ if (map_id == examMap.getId()){
+ List<ExamMap.PointBean> pointBeanList = examMap.getPoint();
+
+ for(int j=0; j<pointBeanList.size();j++){
+ List<Double> xys = pointBeanList.get(j).getXy();
+ if(j==0){
+ map = new double[xys.size()/2][2];
+
+
+
+ for (int k=0; k<xys.size();k++){
+ if ((k % 2) == 0) {
+ map[map_line][0] = xys.get(k);
+ } else {
+ double value = 0 - xys.get(k);
+ Log.i(TAG, "onCEvent: map鏂板��=" + value + " 浣嶇疆锛�" + k);
+ map[map_line][1] = value;
+ map_line++;
+ }
+ }
+ }else{
+ MyLog.i(TAG,"鏆傛椂鏀寔鏇茬嚎");
+ map_other = new double[xys.size()/2][2];
+ for (int k=0; k<xys.size();k++){
+ if ((k % 2) == 0) {
+ map_other[map_line_other][0] = xys.get(k);
+ } else {
+ double value = 0 - xys.get(k);
+ map_other[map_line_other][1] = value;
+ map_line_other++;
+ }
+ }
+ break;
+ }
+
+
+
+ }
+ break;
+ }
+ }
+
DrawMap(mainAnt, map, car, body, tire);
}
+
+ }
}
}
}
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 edbca12..21612d1 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -23,6 +23,8 @@
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.work.OneTimeWorkRequest;
+import androidx.work.PeriodicWorkRequest;
+import androidx.work.WorkInfo;
import androidx.work.WorkManager;
import com.anyun.exam.lib.AYSdk;
@@ -37,6 +39,7 @@
import java.util.Date;
import java.util.List;
import java.util.Random;
+import java.util.concurrent.TimeUnit;
import me.yokeyword.fragmentation.SupportFragment;
import safeluck.drive.evaluation.Constant;
@@ -65,6 +68,9 @@
import safeluck.drive.evaluation.platformMessage.JKMessage0203;
import safeluck.drive.evaluation.platformMessage.JKMessage0204;
import safeluck.drive.evaluation.util.Utils;
+import safeluck.drive.evaluation.worker.TimeWorker;
+
+import static androidx.work.PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS;
/**
* 鑱旂綉璁粌UI
@@ -91,7 +97,7 @@
private int item_id;//鎵e垎鍒嗘暟鎬诲拰
private ExamStatusViewModel examStatusViewModel;
private static final int ADD_DATA = 1;
- private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform;
+ private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform,tv_network_time;
private double speed=0.0;
private ImageView iv_rtk_status,iv_head;
@@ -112,12 +118,13 @@
@Override
public boolean handleMessage(Message msg) {
if (msg.what == ADD_DATA){
+ MyLog.i("handler add_data totalScore="+currTotalScore);
tv_total_score.setText(getResources().getString(R.string.total_score,currTotalScore));
- houseView.setColor(whatPaintColor(examStatusList.get(0)));
- av_podao.setColor(whatPaintColor(examStatusList.get(1)));
- av_park.setColor(whatPaintColor(examStatusList.get(2)));
- av_curve.setColor(whatPaintColor(examStatusList.get(3)));
- av_zhijiao.setColor(whatPaintColor(examStatusList.get(4)));
+ houseView.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_REVERSE));//鍊掕溅鍏ュ簱 type =1
+ av_podao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_RAMP));
+ av_park.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_PARK));
+ av_curve.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_CURVE));
+ av_zhijiao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_ANGLE));
}
if (msg.what == SPEED_DATA){
tv_speed.setText(getResources().getString(R.string.speed,speed));
@@ -130,7 +137,12 @@
if (result == 0) {
JKMessage0201 jkMessage0201 = new JKMessage0201();
jkMessage0201.phone = ExamPlatformData.getInstance().getPhone();
- jkMessage0201.currentExam = 0;
+ if (exam_type==Constant.Chang_di){
+ jkMessage0201.currentExam = 0;
+ }else{
+ jkMessage0201.currentExam = 1;
+ }
+
jkMessage0201.id = icStr;
MessageProcessor.getInstance().sendMessage(jkMessage0201);
}
@@ -143,6 +155,87 @@
return false;
}
});
+
+ private int aaa(int type) {
+ if (examStatusList!=null &&examStatusList.size()>0){
+ for (ExamStatus examStatus:
+ examStatusList) {
+ if (type == examStatus.getMap_item()){
+ if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.BEGIN_ITEM){
+ //杩涘叆鑰冨満
+ if (examStatusList.get(0).getStartExam() == Constant.NONE_BEEN_START_EXAM){
+ //缁撴潫鑰冭瘯浜�
+ MyLog.i("杩涘叆鑰冨満缁撴潫鑰冭瘯锛宻tartexam="+examStatus.getStartExam());
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ MyLog.i("杩涘叆鑰冨満锛宼ype="+type);
+ return getResources().getColor(R.color.pink);
+ }
+
+
+ }else if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.FINISH_ITEM){
+
+ if (examStatusList.get(0).getStartExam()==Constant.NONE_BEEN_START_EXAM){
+ return getResources().getColor(R.color.examing);
+ }
+
+ switch (type) {
+ case 1://鍊掑簱
+ if (item_conents.contains("鍊掕溅鍏ュ簱")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鍊掕溅鍏ュ簱鍚堟牸");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+ case 2:
+ if (item_conents.contains("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝ュ悎鏍�");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+ case 3:
+ if (item_conents.contains("渚ф柟鍋滆溅")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("渚ф柟鍋滆溅鍚堟牸");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+ case 4:
+ if (item_conents.contains("鏇茬嚎琛岄┒")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鏇茬嚎琛岄┒鍚堟牸");
+ examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
+ return getResources().getColor(R.color.train_btn_return);
+ }
+ case 5:
+ if (item_conents.contains("鐩磋杞集")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ MyLog.i("璇ラ」鑰冭瘯鎴愬姛锛宼ype="+type);
+ ExamPlatformData.getInstance().getTTS().speak("鐩磋杞集鍚堟牸");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+
+
+
+ }
+
+ }else{
+ return getResources().getColor(R.color.examing);
+ }
+ }
+ }
+ }
+ return getResources().getColor(R.color.examing);
+ }
@Nullable
@Override
@@ -157,6 +250,7 @@
if (failedProj_selects != null && failedProj_selects.size()>0){
item_id = 0;
+ currTotalScore = 100;
mArrayList.clear();
item_conents.clear();
for (FailedProj_select f :
@@ -171,14 +265,15 @@
}
//TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊
sendJKMessage0203(failedProj_selects);
+ MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore);
currTotalScore -=item_id;
MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore);
if (currTotalScore < Constant.PASSING_SCORE){
- MyLog.i(TAG,"浣庝簬80锛屼笉鍚堟牸"+currTotalScore);
+ MyLog.i("浣庝簬80锛屼笉鍚堟牸"+currTotalScore);
ExamPlatformData.getInstance().getTTS().speak("鑰冭瘯涓嶅悎鏍�");
- stopExam();
+// stopExam();
}
- MyLog.i(TAG,"鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊");
+ MyLog.i("鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊");
mHandler.obtainMessage(ADD_DATA).sendToTarget();
}else{
MyLog.i(TAG,"澶辫触椤圭洰鏁版嵁琛ㄨ娓呯┖鏇存柊UI");
@@ -267,7 +362,12 @@
failedProj_selects.get(i).getScore_deducting()+"鍒�"));
MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn());
sns.add(failedProj_selects.get(i).getSn());
- jkMessage0203.timeBCD = failedProj_selects.get(i).getUtc();
+ String utc = failedProj_selects.get(i).getUtc();
+ if (!TextUtils.isEmpty(utc)&&utc.length()>12){
+ utc =utc.substring(0,12);
+ }
+ jkMessage0203.timeBCD = utc ;
+
jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id();
jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting();
jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason();
@@ -308,7 +408,7 @@
switch (status) {
case 0://鑰冭瘯瀹屾垚
switch (map_id) {
- case 863://鍊掑簱
+ case 1://鍊掑簱
if (item_conents.contains("鍊掕溅鍏ュ簱")) {
return getResources().getColor(R.color.colorAccent);
}else{
@@ -366,6 +466,25 @@
tv_sat_num = view.findViewById(R.id.tv_sat_num);
tv_speed = view.findViewById(R.id.tv_speed);
tv_total_score = view.findViewById(R.id.tv_total_score);
+ tv_network_time = view.findViewById(R.id.network_time);
+
+
+ PeriodicWorkRequest periodicWorkRequest = new PeriodicWorkRequest.Builder(TimeWorker.class,MIN_PERIODIC_INTERVAL_MILLIS, TimeUnit.MICROSECONDS).build();
+ WorkManager.getInstance(getContext().getApplicationContext()).enqueue(periodicWorkRequest);
+ WorkManager.getInstance(getContext().getApplicationContext()).getWorkInfoByIdLiveData(periodicWorkRequest.getId())
+ .observe(this, new Observer<WorkInfo>() {
+ @Override
+ public void onChanged(WorkInfo workInfo) {
+ if (workInfo!= null&&workInfo.getState().isFinished()){
+ String time = workInfo.getOutputData().getString(Constant.TIME_MINUTE);
+ MyLog.i("Time="+time);
+ tv_network_time.setText(time);
+ }
+
+ }
+ });
+ tv_network_time.setText(Utils.getHHmm());
+
tv_speed.setText(getResources().getString(R.string.speed,speed));
view.findViewById(R.id.btn_return).setOnClickListener(this);
@@ -406,6 +525,10 @@
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_start:
+ OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
+ WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
+ item_id = 0;
+ currTotalScore = 100;
//TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯
final JKMessage0202 jkMessage0202 = new JKMessage0202();
jkMessage0202.phone = ExamPlatformData.getInstance().getPhone();
@@ -423,6 +546,7 @@
@Override
public void changKao() {
exam_type = 2;
+ examStatusViewModel.updateStartExam(exam_type);
sendExamJson(1,exam_type);
ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯");
jkMessage0202.curr_exam = 0;
@@ -433,6 +557,7 @@
@Override
public void luKao() {
exam_type = 3;
+ examStatusViewModel.updateStartExam(exam_type);
sendExamJson(1,exam_type);
if (simulateNightBean == null){
simulateNightBean = new SimulateNightBean();
@@ -498,7 +623,7 @@
private void sendExamJson(int i,int type) {
try {
- examStatusViewModel.updateStartExam(type);
+
JSONObject jsonObject = new JSONObject();
jsonObject.put("exam", i);
jsonObject.put("type", type);
@@ -512,16 +637,14 @@
private void stopExam() {
MyLog.i(TAG,"缁撴潫鑰冭瘯");
- //娓呯┖宸茬粡瀛樺湪鐨剆ns
- sns.clear();
- item_id = 0;
- currTotalScore = 100;
+
+
tv_total_score.setText(String.valueOf(currTotalScore));
iv_head.getDrawable().setLevel(0);
- OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
- WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
+
ExamPlatformData.getInstance().getTTS().speak("缁撴潫鑰冭瘯");
- sendExamJson(0,exam_type);
+ examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM);
+ sendExamJson(0,0);//缁撴潫鑰冭瘯 exstart=0
//TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯
JKMessage0204 jkMessage0204 = new JKMessage0204();
jkMessage0204.phone = ExamPlatformData.getInstance().getPhone();
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 95e0c0c..e0031b7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -1,10 +1,14 @@
package safeluck.drive.evaluation.fragment;
+import android.app.AlarmManager;
+import android.app.PendingIntent;
import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.app.AlarmManagerCompat;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.work.OneTimeWorkRequest;
@@ -12,8 +16,11 @@
import android.os.Handler;
import android.os.Message;
+import android.os.SystemClock;
+import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
+import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
@@ -24,15 +31,21 @@
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
+import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
+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;
+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;
@@ -42,11 +55,20 @@
import safeluck.drive.evaluation.DB.failitems.FailedProj_select;
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.adapter.ScoreAdapter;
+import safeluck.drive.evaluation.bean.ExamPlatformData;
import safeluck.drive.evaluation.bean.ScoreBean;
+import safeluck.drive.evaluation.bean.SimulateNightBean;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
import safeluck.drive.evaluation.customview.ArrowView;
import safeluck.drive.evaluation.customview.HouseView;
+import safeluck.drive.evaluation.customview.MyDialogFragment;
+import safeluck.drive.evaluation.im.MessageProcessor;
+import safeluck.drive.evaluation.platformMessage.JKMessage0201;
+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
* MyApplication2
@@ -57,66 +79,178 @@
public class TrainFragment extends SupportFragment implements View.OnClickListener {
private static final String TAG = TrainFragment.class.getSimpleName();
- private ListView mListView ;
- private Button btn_train;
- private ScoreAdapter mScoreAdapter;
+ private static final int REQUEST_CODE = 1000;
+ private static final String ALARM_ACTION_CODE = "com.anyun.alermbroadcast";
- private int item_id;//鎵e垎鍒嗘暟鎬诲拰
+ public static SupportFragment newInstance() {
+ return new TrainFragment();
+ }
+
+ private int exam_type = 2;//2 鍦哄湴锛�3 閬撹矾锛屾ā鎷熷鑰冿紱4 閬撹矾锛屽疄闄呭鑰冿紱
+ private ListView mListView;
+ private Button btn_start_exam;
+ private TextView tv_stop;//鍛煎彨璇锋眰锛堢粨鏉熻�冭瘯锛�
+ private Gson gson = new Gson();
+ private ScoreAdapter mScoreAdapter;
private ArrowView av_zhijiao, av_curve, av_park, av_podao;
private HouseView houseView;
private List<ExamStatus> examStatusList = new ArrayList<>();
private List<String> item_conents = new ArrayList<>();//鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�
+ private int item_id;//鎵e垎鍒嗘暟鎬诲拰
private ExamStatusViewModel examStatusViewModel;
private static final int ADD_DATA = 1;
- private static final int SPEED_DATA = 2;
+ private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform;
+ private double speed=0.0;
private ImageView iv_rtk_status,iv_head;
- private List<ScoreBean> mArrayList = new ArrayList<>();
- private View tv_stop;
- private TextView tv_speed,tv_total_score,tv_sat_num;
private int currTotalScore = 100;
- private double speed=0.0;
+ private List<ScoreBean> mArrayList = new ArrayList<>();
+ 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<>();
+
+
+
private Handler mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
if (msg.what == ADD_DATA){
+ MyLog.i("handler add_data totalScore="+currTotalScore);
tv_total_score.setText(getResources().getString(R.string.total_score,currTotalScore));
- houseView.setColor(whatPaintColor(examStatusList.get(0)));
- av_podao.setColor(whatPaintColor(examStatusList.get(1)));
- av_park.setColor(whatPaintColor(examStatusList.get(2)));
- av_curve.setColor(whatPaintColor(examStatusList.get(3)));
- av_zhijiao.setColor(whatPaintColor(examStatusList.get(4)));
+ houseView.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_REVERSE));//鍊掕溅鍏ュ簱 type =1
+ av_podao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_RAMP));
+ av_park.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_PARK));
+ av_curve.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_CURVE));
+ av_zhijiao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_ANGLE));
}
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.phone = ExamPlatformData.getInstance().getPhone();
+ if (exam_type==Constant.Chang_di){
+ jkMessage0201.currentExam = 0;
+ }else{
+ jkMessage0201.currentExam = 1;
+ }
+
+ jkMessage0201.id = icStr;
+ MessageProcessor.getInstance().sendMessage(jkMessage0201);
+ }
+
+ }catch (JSONException e){
+
+ }
+
}
return false;
}
});
+ private int aaa(int type) {
+ if (examStatusList!=null &&examStatusList.size()>0){
+ for (ExamStatus examStatus:
+ examStatusList) {
+ if (type == examStatus.getMap_item()){
+ if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.BEGIN_ITEM){
+ //杩涘叆鑰冨満
+ if (examStatusList.get(0).getStartExam() == Constant.NONE_BEEN_START_EXAM){
+ //缁撴潫鑰冭瘯浜�
+ MyLog.i("杩涘叆鑰冨満缁撴潫鑰冭瘯锛宻tartexam="+examStatus.getStartExam());
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ MyLog.i("杩涘叆鑰冨満锛宼ype="+type);
+ return getResources().getColor(R.color.pink);
+ }
- public static SupportFragment newInstance(){
- return new TrainFragment();
+ }else if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.FINISH_ITEM){
+
+ if (examStatusList.get(0).getStartExam()==Constant.NONE_BEEN_START_EXAM){
+ return getResources().getColor(R.color.examing);
+ }
+
+ switch (type) {
+ case 1://鍊掑簱
+ if (item_conents.contains("鍊掕溅鍏ュ簱")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鍊掕溅鍏ュ簱鍚堟牸");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+ case 2:
+ if (item_conents.contains("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝ュ悎鏍�");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+ case 3:
+ if (item_conents.contains("渚ф柟鍋滆溅")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("渚ф柟鍋滆溅鍚堟牸");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+ case 4:
+ if (item_conents.contains("鏇茬嚎琛岄┒")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鏇茬嚎琛岄┒鍚堟牸");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+ case 5:
+ if (item_conents.contains("鐩磋杞集")) {
+ MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+ return getResources().getColor(R.color.colorAccent);
+ }else{
+ MyLog.i("璇ラ」鑰冭瘯鎴愬姛锛宼ype="+type);
+ ExamPlatformData.getInstance().getTTS().speak("鐩磋杞集鍚堟牸");
+ return getResources().getColor(R.color.train_btn_return);
+ }
+
+
+
+ }
+
+ }else{
+ return getResources().getColor(R.color.examing);
+ }
+ }
+ }
+ }
+ return getResources().getColor(R.color.examing);
}
@Nullable
@Override
- public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.layout_train_fragment,container,false);
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.layout_train_fragment, container, false);
initView(view);
-
-
- FailedProjViewModel failedProjViewModel =ViewModelProviders.of(this).get(FailedProjViewModel.class);
+ failedProjViewModel = ViewModelProviders.of(this).get(FailedProjViewModel.class);
failedProjViewModel.getFailedProjectsForI(Constant.TEST_STU_ID).observe(this, new Observer<List<FailedProj_select>>() {
@Override
public void onChanged(List<FailedProj_select> failedProj_selects) {
if (failedProj_selects != null && failedProj_selects.size()>0){
item_id = 0;
+ currTotalScore = 100;
mArrayList.clear();
item_conents.clear();
for (FailedProj_select f :
@@ -125,22 +259,28 @@
Log.i(TAG, "onChanged: " + f.toString());
mArrayList.add(new ScoreBean(f.getScore_deducting(), f.getItem_content(), f.getDeducting_reason()));
item_conents.add(f.getItem_content());
+ Collections.reverse(mArrayList);
mScoreAdapter.addDatas(mArrayList);
+ MyLog.i("item_score="+item_id);
}
+ //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊
+ sendJKMessage0203(failedProj_selects);
+ MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore);
currTotalScore -=item_id;
+ MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore);
if (currTotalScore < Constant.PASSING_SCORE){
- MyLog.i(TAG,"浣庝簬80锛屼笉鍚堟牸");
+ MyLog.i("浣庝簬80锛屼笉鍚堟牸"+currTotalScore);
+ ExamPlatformData.getInstance().getTTS().speak("鑰冭瘯涓嶅悎鏍�");
stopExam();
}
-
- MyLog.i(TAG,"鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊");
+ MyLog.i("鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊");
mHandler.obtainMessage(ADD_DATA).sendToTarget();
-
}else{
MyLog.i(TAG,"澶辫触椤圭洰鏁版嵁琛ㄨ娓呯┖鏇存柊UI");
item_id = 0;
mArrayList.clear();
item_conents.clear();
+ Collections.reverse(mArrayList);
mScoreAdapter.addDatas(mArrayList);
mHandler.obtainMessage(ADD_DATA).sendToTarget();
}
@@ -153,26 +293,43 @@
@Override
public void onChanged(List<ExamStatus> examStatus) {
- for (ExamStatus e :
- examStatus) {
- Log.i(TAG, "onChanged: e="+e.toString());
+
+
+ Log.i(TAG, "ExamStatus onChanged: ");
+ if (examStatus!=null && examStatus.size()>0){
+ MyLog.i(TAG,"鑰冭瘯鐘舵�佹洿鏂�");
+ examStatusList.clear();
+ examStatusList.addAll(examStatus);
+ mHandler.obtainMessage(ADD_DATA).sendToTarget();
+ if (examStatus.get(0).getStartExam() != Constant.NONE_BEEN_START_EXAM){
+ btn_start_exam.setEnabled(false);
+ tv_stop.setEnabled(true);
+ }else{
+ btn_start_exam.setEnabled(true);
+ tv_stop.setEnabled(false);
+ }
+ exam_type = examStatus.get(0).getStartExam();
}
- Log.i(TAG, "onChanged: ");
- examStatusList.clear();
- examStatusList.addAll(examStatus);
- mHandler.obtainMessage(ADD_DATA).sendToTarget();
- if (examStatus.get(0).getStartExam() == Constant.NONE_BEEN_START_EXAM){
- btn_train.setEnabled(false);
- tv_stop.setEnabled(true);
- }else{
- btn_train.setEnabled(true);
- tv_stop.setEnabled(false);
- }
+
}
});
+ 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());
+ ExamPlatformData.getInstance().setId(student.getID());
+ }
+ }
+ }
+ });
AppStatusViewModel appStatusViewModel = ViewModelProviders.of(this).get(AppStatusViewModel.class);
appStatusViewModel.getAppStatus().observe(this, new Observer<AppStatus>() {
@@ -181,6 +338,7 @@
if (appStatus != null){
Log.i(TAG, "onChanged: "+appStatus.toString());
iv_rtk_status.getDrawable().setLevel(appStatus.getRtk_connect_status());
+ tv_work_platform.setText(getString(R.string.platform_status,ExamPlatformData.getInstance().getExamplatformStatusStr(appStatus.getWork_platform())));
tv_sat_num.setText(String.valueOf(appStatus.getDefault_observe1()).length()==1?"0"+appStatus.getDefault_observe1():String.valueOf(appStatus.getDefault_observe1()));
}
}
@@ -188,43 +346,65 @@
return view;
}
- private void initView(View view) {
+ private List<Integer> sns =new ArrayList<>();
+ private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) {
+ JKMessage0203 jkMessage0203 = new JKMessage0203();
+ jkMessage0203.phone = ExamPlatformData.getInstance().getPhone();
+ jkMessage0203.ID = ExamPlatformData.getInstance().getID();
+ jkMessage0203.exam_id = ExamPlatformData.getInstance().getExam_id();
- av_curve = view.findViewById(R.id.av3);
- av_park = view.findViewById(R.id.av2);
- av_podao = view.findViewById(R.id.av1);
- av_zhijiao = view.findViewById(R.id.av4);
- houseView = view.findViewById(R.id.hv);
+ for (int i = 0; i < failedProj_selects.size(); i++) {
+ if (hasSnEqulas(failedProj_selects.get(i).getSn())){
+ MyLog.i("sn鐩稿悓"+failedProj_selects.get(i).getSn());
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak(failedProj_selects.get(i).getDeducting_reason()+(
+ failedProj_selects.get(i).getScore_deducting()==100?"涓嶅悎鏍�":"鎵�"+
+ failedProj_selects.get(i).getScore_deducting()+"鍒�"));
+ MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn());
+ sns.add(failedProj_selects.get(i).getSn());
+ String utc = failedProj_selects.get(i).getUtc();
+ if (!TextUtils.isEmpty(utc)&&utc.length()>12){
+ utc =utc.substring(0,12);
+ }
+ jkMessage0203.timeBCD = utc ;
- tv_speed = view.findViewById(R.id.tv_speed);
- iv_rtk_status = view.findViewById(R.id.iv_rtk_connect);
- iv_head = view.findViewById(R.id.iv_head);
- tv_sat_num = view.findViewById(R.id.tv_sat_num);
+ jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id();
+ jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting();
+ jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason();
+ }
- tv_total_score = view.findViewById(R.id.tv_total_score);
- tv_speed.setText(getResources().getString(R.string.speed,speed));
- view.findViewById(R.id.btn_return).setOnClickListener(this);
- mListView = view.findViewById(R.id.lv);
- tv_stop = view.findViewById(R.id.tv_stop);
- tv_stop.setOnClickListener(this);
- mListView.setFocusable(false);//listview涓嶈幏鍙栫劍鐐癸紝涓嶇劧鐨勮瘽scrollview浼氶《鍒板簳閮�
- view.findViewById(R.id.view_map).setOnClickListener(this);
- btn_train = view.findViewById(R.id.btn_start);
- btn_train.setOnClickListener(this);
- btn_train.setText("寮�濮嬭缁�");
- mScoreAdapter = new ScoreAdapter(_mActivity);
- mListView.setAdapter(mScoreAdapter);
-
- mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item,null));
+ }
+
+
+
+
+
+ MessageProcessor.getInstance().sendMessage(jkMessage0203);
+ }
+
+ private boolean hasSnEqulas(int failedProjSn){
+ if (sns.size() > 0){
+ for (int j = 0; j < sns.size(); j++) {
+ MyLog.i("宸插瓨鍦ㄧ殑sn"+sns.get(j));
+ if (sns.get(j) == failedProjSn){
+ MyLog.i("sn鐩稿悓锛屼笉鍙�"+sns.get(j));
+ return true;
+ }else{
+ continue;
+ }
+ }
+
+ }
+ return false;
}
private int whatPaintColor(ExamStatus examStat) {
int map_id = examStat.getMap_id();
int status = examStat.getEnter();
- Log.i(TAG, "whatPaintColor: map_id="+map_id+" status="+status);
+ MyLog.i(TAG, "whatPaintColor: map_id="+map_id+" status="+status);
switch (status) {
case 0://鑰冭瘯瀹屾垚
switch (map_id) {
@@ -261,57 +441,181 @@
}
case 1://杩涘叆鑰冨満椤圭洰
+ MyLog.i("pink 杩涘叆鏌愪釜鑰冨満椤圭洰");
return getResources().getColor(R.color.pink);
case 2://寰呰��
return getResources().getColor(R.color.examing);
}
return getResources().getColor(R.color.examing);
}
+
+ private void initView(View view) {
+
+ Intent intent = new Intent(ALARM_ACTION_CODE);
+ PendingIntent pendingIntent = PendingIntent.getBroadcast(_mActivity.getApplicationContext(),
+ REQUEST_CODE, intent,
+ PendingIntent.FLAG_CANCEL_CURRENT);
+ AlarmManager alarmManager = (AlarmManager) _mActivity.getApplicationContext().getSystemService(Context.ALARM_SERVICE);
+ alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(),pendingIntent);
+
+
+ view.findViewById(R.id.iv_head).setOnClickListener(this);
+ av_curve = view.findViewById(R.id.av3);
+ av_park = view.findViewById(R.id.av2);
+ 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);
+ tv_work_platform = view.findViewById(R.id.platform);
+
+ iv_rtk_status = view.findViewById(R.id.iv_rtk_connect);
+ iv_head = view.findViewById(R.id.iv_head);
+ tv_sat_num = view.findViewById(R.id.tv_sat_num);
+ tv_speed = view.findViewById(R.id.tv_speed);
+ tv_total_score = view.findViewById(R.id.tv_total_score);
+ tv_speed.setText(getResources().getString(R.string.speed,speed));
+
+ view.findViewById(R.id.btn_return).setOnClickListener(this);
+ mListView = view.findViewById(R.id.lv);
+ mListView.setFocusable(false);
+ mListView.setOnTouchListener(new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View v, MotionEvent ev) {
+ switch (ev.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ case MotionEvent.ACTION_MOVE:
+ mListView.getParent().requestDisallowInterceptTouchEvent(true);
+ break;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ mListView.getParent().requestDisallowInterceptTouchEvent(false);
+ break;
+ }
+ return false;
+ }
+ });
+
+ view.findViewById(R.id.view_map).setOnClickListener(this);
+ mScoreAdapter = new ScoreAdapter(_mActivity);
+ mListView.setAdapter(mScoreAdapter);
+ btn_start_exam = view.findViewById(R.id.btn_start);
+ btn_start_exam.setOnClickListener(this);
+ tv_stop = view.findViewById(R.id.tv_stop);
+ tv_stop.setOnClickListener(this);
+ mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item, null));
+
+ }
+
+
+ MyDialogFragment myDialogFragment;
+ SimulateNightBean simulateNightBean = null;
@Override
public void onClick(View v) {
- switch (v.getId()){
- case R.id.view_map:
- TcpFragment passwordFragment = findFragment(TcpFragment.class);
- if (passwordFragment == null) {
- passwordFragment = (TcpFragment) TcpFragment.newInstance();
- start(passwordFragment);
- } else {
- start(passwordFragment);
- }
- break;
+ switch (v.getId()) {
case R.id.btn_start:
- examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM);
- try {
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("exam", 1);
- String examJson = jsonObject.toString();
- Log.i(TAG, "onClick: " + examJson);
- AYSdk.getInstance().sendCmd(Constant.EXAM_STATUS, examJson);
- } catch (JSONException e) {
- e.printStackTrace();
+ OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
+ WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
+ item_id = 0;
+ currTotalScore = 100;
+ //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){
+ myDialogFragment = new MyDialogFragment();
}
+ myDialogFragment.show(getFragmentManager(),"dialog");
+ myDialogFragment.setCallback(new MyDialogFragment.Callback() {
+ @Override
+ public void changKao() {
+ exam_type = 2;
+ examStatusViewModel.updateStartExam(exam_type);
+ sendExamJson(1,exam_type);
+ ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯");
+ jkMessage0202.curr_exam = 0;
+
+ MessageProcessor.getInstance().sendMessage(jkMessage0202);
+ }
+
+ @Override
+ public void luKao() {
+ exam_type = 3;
+ examStatusViewModel.updateStartExam(exam_type);
+ sendExamJson(1,exam_type);
+ if (simulateNightBean == null){
+ simulateNightBean = new SimulateNightBean();
+ }
+ simulateNightBean.setExam(0);
+
+ 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);
+
+ }
+ });
+
+ iv_head.getDrawable().setLevel(1);
+ //娓呯┖sns
+ sns.clear();
+
+
+
break;
case R.id.tv_stop:
Toast.makeText(_mActivity, "缁撴潫鑰冭瘯", Toast.LENGTH_SHORT).show();
stopExam();
+
+ break;
+ case R.id.view_map:
+ MapFragment mapFragment = findFragment(MapFragment.class);
+ MyLog.i(TAG,"鏌ョ湅鍦板浘");
+ if (mapFragment == null) {
+ mapFragment = (MapFragment) MapFragment.newInstance();
+ }
+ start(mapFragment);
break;
case R.id.btn_return:
_mActivity.onBackPressed();
break;
+ case R.id.iv_head:
+ MyLog.i(TAG,"绛惧埌锛岃幏鍙栬韩浠借瘉鐗╃悊鍗″彿");
+ AYSdk.getInstance().sendCmd(Constant.READ_PHYSICAL_ID,"");
+ //TODO 鑾峰緱鐗╃悊鍗″彿 鍙戦�丣KMessage0201缁欏钩鍙帮紝鑾峰彇濮撳悕銆佽韩浠借瘉銆乭ead_url
+
+ break;
}
}
- private void stopExam() {
- MyLog.i(TAG,"缁撴潫鑰冭瘯");
- item_id = 0;
- currTotalScore = 100;
- tv_total_score.setText(String.valueOf(currTotalScore));
- iv_head.getDrawable().setLevel(0);
- OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
- WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
+ private void sendExamJson(int i,int type) {
try {
+
JSONObject jsonObject = new JSONObject();
- jsonObject.put("exam", 0);
+ jsonObject.put("exam", i);
+ jsonObject.put("type", type);
String examJson = jsonObject.toString();
Log.i(TAG, "onClick: " + examJson);
AYSdk.getInstance().sendCmd(Constant.EXAM_STATUS, examJson);
@@ -320,11 +624,38 @@
}
}
+ private void stopExam() {
+ MyLog.i(TAG,"缁撴潫鑰冭瘯");
+
+
+ tv_total_score.setText(String.valueOf(currTotalScore));
+ iv_head.getDrawable().setLevel(0);
+
+ ExamPlatformData.getInstance().getTTS().speak("缁撴潫鑰冭瘯");
+ examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM);
+ sendExamJson(0,0);//缁撴潫鑰冭瘯 exstart=0
+ //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯
+ JKMessage0204 jkMessage0204 = new JKMessage0204();
+ jkMessage0204.phone = ExamPlatformData.getInstance().getPhone();
+ jkMessage0204.timeBCD = new Date();
+ jkMessage0204.score = 10;
+ jkMessage0204.stop = JKMessage0204.SUCC_STOP;
+ jkMessage0204.ID = ExamPlatformData.getInstance().getID();
+ jkMessage0204.exam_id = ExamPlatformData.getInstance().getExam_id();
+ MessageProcessor.getInstance().sendMessage(jkMessage0204);
+ }
+
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
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 79f7ee8..2daba11 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,7 @@
import com.anyun.exam.lib.util.ByteUtil;
import com.safeluck.aykj.utils.BytesUtils;
+import java.util.Calendar;
import java.util.Random;
/**
@@ -158,4 +159,59 @@
return false;
}
+
+
+ public static String getHHmm(){
+ String mMonth,mDay,mWay,mHours,mMinute;
+ StringBuffer stringBuffer = new StringBuffer();
+ Calendar calendar = Calendar.getInstance();
+ mMonth = String.valueOf(calendar.get(Calendar.MONTH) + 1); //鑾峰彇鏃ユ湡鐨勬湀
+ mDay = String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)); //鑾峰彇鏃ユ湡鐨勫ぉ
+ mWay = String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)); //鑾峰彇鏃ユ湡鐨勬槦鏈�
+
+ /**
+ * 濡傛灉灏忔椂鏄釜浣嶆暟
+ *
+ *鍒欏湪鍓嶉潰浠锋牸鈥�0鈥�
+ * */
+ if (calendar.get(Calendar.HOUR) < 10) {
+ mHours = "0" + calendar.get(Calendar.HOUR);
+
+ } else {
+ mHours = String.valueOf(calendar.get(Calendar.HOUR));
+ }
+ stringBuffer.append(mHours);
+ stringBuffer.append(":");
+ /**
+ * 濡傛灉鍒嗛挓鏄釜浣嶆暟
+ *
+ *鍒欏湪鍓嶉潰浠锋牸鈥�0鈥�
+ * */
+ if (calendar.get(Calendar.MINUTE) < 10) {
+ mMinute = "0" + calendar.get(Calendar.MINUTE);
+ } else {
+ mMinute = String.valueOf(calendar.get(Calendar.MINUTE));
+ }
+ stringBuffer.append(mMinute);
+ /**
+ * 鑾峰彇鏄熸湡
+ * 骞惰缃嚭鏉�
+ * */
+ if ("1".equals(mWay)) {
+ mWay = "澶�";
+ } else if ("2".equals(mWay)) {
+ mWay = "涓�";
+ } else if ("3".equals(mWay)) {
+ mWay = "浜�";
+ } else if ("4".equals(mWay)) {
+ mWay = "涓�";
+ } else if ("5".equals(mWay)) {
+ mWay = "鍥�";
+ } else if ("6".equals(mWay)) {
+ mWay = "浜�";
+ } else if ("7".equals(mWay)) {
+ mWay = "鍏�";
+ }
+ return stringBuffer.toString();
+ }
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/worker/TimeWorker.kt b/app/src/main/java/safeluck/drive/evaluation/worker/TimeWorker.kt
new file mode 100644
index 0000000..768cc44
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/worker/TimeWorker.kt
@@ -0,0 +1,21 @@
+package safeluck.drive.evaluation.worker
+
+import android.content.Context
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.work.Data
+import androidx.work.Worker
+import androidx.work.WorkerParameters
+import com.anyun.exam.lib.MyLog
+import safeluck.drive.evaluation.Constant
+import safeluck.drive.evaluation.util.Utils
+
+class TimeWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
+ override fun doWork(): Result {
+ MyLog.i("鍛ㄦ湡鎬т换鍔�"+TimeWorker::class.java.simpleName)
+ var timeStr= Utils.getHHmm()
+ val data = Data.Builder().putString(Constant.TIME_MINUTE,timeStr).build()
+ return Result.success(data)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_net_train.xml b/app/src/main/res/layout/layout_net_train.xml
index 4cf1317..dc13c9d 100644
--- a/app/src/main/res/layout/layout_net_train.xml
+++ b/app/src/main/res/layout/layout_net_train.xml
@@ -44,7 +44,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="鍛煎彨璇锋眰"
+ android:text="缁撴潫鑰冭瘯"
android:id="@+id/tv_stop"
android:textColor="@android:color/white"
android:padding="10dp"
--
Gitblit v1.8.0