From 59798b3c20c1b6e7bde1c03cd1caecbaf0860572 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期一, 09 三月 2020 17:13:47 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge

---
 app/src/main/java/safeluck/drive/evaluation/Constant.java                          |    1 
 app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java             |   48 +++
 app/src/main/assets/criteria_I.json                                                |    8 
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java       |   79 +++++
 app/src/main/res/values/strings.xml                                                |   16 +
 app/src/main/assets/criteria_III.json                                              |  465 +++++++++++++++++++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/app.java                               |   33 ++
 app/src/main/java/safeluck/drive/evaluation/MainActivity.java                      |    3 
 app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java               |   14 
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java |   59 +++
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java       |   28 +
 app/src/main/java/safeluck/drive/evaluation/DB/Constant.java                       |    1 
 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java     |   11 
 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java         |   16 
 app/src/main/res/layout/layout_net_train_iii_item.xml                              |   72 ++++
 15 files changed, 844 insertions(+), 10 deletions(-)

diff --git a/app/src/main/assets/criteria_I.json b/app/src/main/assets/criteria_I.json
index 167faeb..d6087d0 100644
--- a/app/src/main/assets/criteria_I.json
+++ b/app/src/main/assets/criteria_I.json
@@ -149,7 +149,7 @@
   {
     "item_id":22,
     "item_content": "渚ф柟鍋滆溅",
-    "deducting_reason": "椤圭洰瀹屾垚鏃堕棿瓒呰繃90s",
+    "deducting_reason": "椤圭洰瀹屾垚鏃堕棿瓒呰繃90绉�",
     "score_deducting":100,
     "required_precision":""
   },
@@ -177,7 +177,7 @@
   {
     "item_id":26,
     "item_content": "渚ф柟鍋滆溅",
-    "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s",
+    "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2绉�",
     "score_deducting":5,
     "required_precision":""
   },
@@ -191,7 +191,7 @@
   {
     "item_id":28,
     "item_content": "鏇茬嚎琛岄┒",
-    "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s",
+    "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2绉�",
     "score_deducting":100,
     "required_precision":""
   },
@@ -212,7 +212,7 @@
   {
     "item_id":31,
     "item_content": "鐩磋杞集",
-    "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s",
+    "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2绉�",
     "score_deducting":5,
     "required_precision":""
   }
diff --git a/app/src/main/assets/criteria_III.json b/app/src/main/assets/criteria_III.json
new file mode 100644
index 0000000..2057db3
--- /dev/null
+++ b/app/src/main/assets/criteria_III.json
@@ -0,0 +1,465 @@
+[
+  {
+    "item_id":1,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "涓嶆寜瑙勫畾浣跨敤瀹夊叏甯�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":2,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "閬尅銆佸叧闂溅鍐呴煶瑙嗛鐩戞帶璁惧",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":3,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "涓嶆寜鑰冭瘯鍛樻寚浠ら┚椹�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":4,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "鍚姩鍙戝姩鏈烘椂妗d綅鏈疆浜庣┖鎸�(椹昏溅妗�)",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":5,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "璧锋鏃惰溅杈嗗悗婧滆窛绂诲ぇ浜�30cm",
+    "score_deducting":100,
+    "required_precision":"璺濈妫�娴嬭宸細0mm~50mm"
+  },
+  {
+    "item_id":6,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "浣跨敤鎸′綅涓庤溅閫熼暱鏃堕棿涓嶅尮閰�,閫犳垚杞﹁締鍙戝姩鏈鸿浆閫熻繃楂樻垨杩囦綆",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":7,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "杞﹁締鍦ㄨ椹朵腑杩炵画2娆℃寕鎸′笉杩�",
+    "score_deducting":100,
+    "required_precision":"5s鍐呬袱娆℃寕鍚屼竴鎸′綅鏈垚鍔�"
+  },
+  {
+    "item_id":8,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "琛岄┒涓┖鎸℃粦琛�",
+    "score_deducting":100,
+    "required_precision":"鏃堕棿澶т簬5s"
+  },
+  {
+    "item_id":9,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "涓嶆寜浜ら�氫俊鍙风伅銆佹爣蹇椼�佹爣绾夸俊鍙疯椹�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":10,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "涓嶆寜瑙勫畾閫熷害琛岄┒",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":11,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "杞﹁締琛岄┒涓獞杞ц溅閬撲腑蹇冨疄绾挎垨鑰呰溅閬撹竟缂樺疄绾�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":12,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "闀挎椂闂撮獞杞ц溅閬撳垎鐣岀嚎琛岄┒",
+    "score_deducting":100,
+    "required_precision":"鏃堕棿澶т簬10s"
+  },
+  {
+    "item_id":13,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "璧锋銆佽浆鍚戙�佸彉鏇磋溅閬撱�佽秴杞︺�侀潬杈瑰仠杞﹀墠涓嶄娇鐢ㄦ垨閿欒浣跨敤杞悜鐏�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":14,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "璧锋銆佽浆鍚戙�佸彉鏇磋溅閬撱�佽秴杞︺�侀潬杈瑰仠杞﹀墠,寮�杞� 鍚戠伅灏戜簬3 s鍗宠浆鍚�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":15,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "杩炵画鍙樻洿涓ゆ潯鎴栦袱鏉′互涓婅溅閬�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":16,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "灏嗚溅杈嗗仠鍦ㄤ汉琛屾í閬撱�佺綉鐘剁嚎鍐呯瓑绂佹鍋滆溅鍖哄煙",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":17,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "鍥犺瀵熴�佸垽鏂垨鑰呮搷浣滀笉褰撳嚭鐜板嵄闄╂儏鍐�",
+    "score_deducting":100,
+    "required_precision":"鍓埗鍔ㄨ笍鏉胯俯涓嬪悗"
+  },
+  {
+    "item_id":18,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "璧锋鏃惰溅杈嗗悗婧�,浣嗗悗婧滆窛绂诲皬浜�30cm",
+    "score_deducting":10,
+    "required_precision":""
+  },
+  {
+    "item_id":19,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "璧锋鎴栬椹朵腑鎸傞敊鎸�",
+    "score_deducting":10,
+    "required_precision":""
+  },
+  {
+    "item_id":20,
+    "item_content": "閫氱敤瑕佹眰",
+    "deducting_reason": "鍥犳搷浣滀笉褰撻�犳垚鍙戝姩鏈虹唲鐏竴娆�",
+    "score_deducting":10,
+    "required_precision":""
+  },
+  {
+    "item_id":21,
+    "item_content": "涓婅溅鍑嗗",
+    "deducting_reason": "鏈�嗘椂閽堢粫杞︿竴鍛ㄦ鏌ヨ溅杈嗗瑙傚強鍛ㄥ洿鐜",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":22,
+    "item_content": "璧锋",
+    "deducting_reason": "鍒跺姩姘斿帇涓嶈冻璧锋",
+    "score_deducting":100,
+    "required_precision":"浠呴�傜敤浜庨噰鐢ㄦ皵鍔ㄥ埗鍔ㄥ櫒鐨勮溅鍨�"
+  },
+  {
+    "item_id":23,
+    "item_content": "璧锋",
+    "deducting_reason": "杞﹂棬鏈畬鍏ㄥ叧闂捣姝�",
+    "score_deducting":100,
+    "required_precision":"琛岄┒璺濈澶т簬 1m 鏃�,杞﹂棬鏈畬 鍏ㄥ叧闂�"
+  },
+  {
+    "item_id":24,
+    "item_content": "璧锋",
+    "deducting_reason": "鍚姩鍙戝姩鏈烘椂,鎸′綅鏈疆浜庣┖鎸�(椹昏溅鎸�)",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":25,
+    "item_content": "璧锋",
+    "deducting_reason": "涓嶆澗椹昏溅鍒跺姩鍣ㄨ捣姝�,鏈強鏃剁籂姝�",
+    "score_deducting":100,
+    "required_precision":"琛岄┒璺濈澶т簬 10 m"
+  },
+
+  {
+    "item_id":26,
+    "item_content": "璧锋",
+    "deducting_reason": "涓嶆澗椹昏溅鍒跺姩鍣ㄨ捣姝�,浣嗚兘鍙婃椂绾犳",
+    "score_deducting":10,
+    "required_precision":"琛岄┒璺濈涓� 1 m~10 m"
+  },
+  {
+    "item_id":27,
+    "item_content": "璧锋",
+    "deducting_reason": "鍙戝姩鏈哄惎鍔ㄥ悗,涓嶅強鏃舵澗寮�鍚姩寮�鍏�",
+    "score_deducting":10,
+    "required_precision":"璺濈妫�娴嬭宸�:0mm~+50mn"
+  },
+  {
+    "item_id":28,
+    "item_content": "璧锋",
+    "deducting_reason": "璧锋鏃惰溅杈嗗彂鐢熼棷鍔�",
+    "score_deducting":5,
+    "required_precision":""
+  },
+  {
+    "item_id":29,
+    "item_content": "璧锋",
+    "deducting_reason": "璧锋鏃�,鍔犻�熻笍鏉挎帶鍒朵笉褰�,鑷翠娇鍙戝姩鏈鸿浆閫熻繃楂�",
+    "score_deducting":5,
+    "required_precision":"鏍规嵁鑰冭瘯杞﹀瀷璁惧畾(澶т簬 2500rpm)"
+  } ,
+  {
+    "item_id":30,
+    "item_content": "鐩寸嚎琛岄┒",
+    "deducting_reason": "鏂瑰悜鎺у埗涓嶇ǔ,涓嶈兘淇濇寔杞﹁締鐩寸嚎杩愯",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":31,
+    "item_content": "鍔犲噺鎸′綅鎿嶄綔",
+    "deducting_reason": "鏈寜鎸囦护骞崇ǔ鍔犮�佸噺鎸�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":32,
+    "item_content": "鍔犲噺鎸′綅鎿嶄綔",
+    "deducting_reason": "杞﹁締杩愯閫熷害鍜屾尅浣嶄笉鍖归厤",
+    "score_deducting":10,
+    "required_precision":""
+  },
+  {
+    "item_id":33,
+    "item_content": "闈犺竟鍋滆溅",
+    "deducting_reason": "鑰冭瘯鍛樺彂鍑洪潬杈瑰仠杞︽寚浠ゅ悗,鏈兘鍦ㄨ瀹氱殑璺濈鍐呭仠杞�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":34,
+    "item_content": "闈犺竟鍋滆溅",
+    "deducting_reason": "鍋滆溅鍚�,杞﹁韩瓒呰繃閬撹矾鍙充晶杈圭紭绾挎垨鑰呬汉琛岄亾杈圭紭",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":35,
+    "item_content": "闈犺竟鍋滆溅",
+    "deducting_reason": "涓嬭溅鍚庝笉鍏抽棴杞﹂棬",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":36,
+    "item_content": "闈犺竟鍋滆溅",
+    "deducting_reason": "鍋滆溅鍚�,杞﹁韩璺濈閬撹矾鍙充晶杈圭紭绾挎垨鑰呬汉琛岄亾杈圭紭瓒呭嚭50cm",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":37,
+    "item_content": "闈犺竟鍋滆溅",
+    "deducting_reason": "鍋滆溅鍚�,杞﹁韩璺濈閬撹矾鍙充晶杈圭紭绾挎垨鑰呬汉琛岄亾杈圭紭瓒呭嚭30cm锛屾湭瓒呭嚭50cm",
+    "score_deducting":10,
+    "required_precision":""
+  },
+  {
+    "item_id":38,
+    "item_content": "闈犺竟鍋滆溅",
+    "deducting_reason": "鍋滆溅鍚�,鏈媺绱ч┗杞﹀埗鍔ㄥ櫒",
+    "score_deducting":10,
+    "required_precision":""
+  },
+  {
+    "item_id":39,
+    "item_content": "闈犺竟鍋滆溅",
+    "deducting_reason": "鎷夌揣椹昏溅鍒跺姩鍣ㄥ墠鏀炬澗琛岃溅鍒跺姩韪忔澘",
+    "score_deducting":10,
+    "required_precision":""
+  },
+  {
+    "item_id":40,
+    "item_content": "闈犺竟鍋滆溅",
+    "deducting_reason": "涓嬭溅鍓嶄笉灏嗗彂鍔ㄦ満鐔勭伀",
+    "score_deducting":5,
+    "required_precision":""
+  },
+  {
+    "item_id":41,
+    "item_content": "鐩磋閫氳繃璺彛",
+    "deducting_reason": "涓嶆寜瑙勫畾鍑忛��",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":42,
+    "item_content": "鐩磋閫氳繃璺彛",
+    "deducting_reason": "涓嶆寜瑙勫畾鍋滆溅鐬湜",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":43,
+    "item_content": "璺彛宸﹁浆寮�",
+    "deducting_reason": "涓嶆寜瑙勫畾鍑忛��",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":44,
+    "item_content": "璺彛宸﹁浆寮�",
+    "deducting_reason": "涓嶆寜瑙勫畾鍋滆溅鐬湜",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":45,
+    "item_content": "璺彛宸﹁浆寮�",
+    "deducting_reason": "宸﹁浆閫氳繃璺彛鏃�,鏈潬璺彛涓績鐐瑰乏渚ц浆寮�",
+    "score_deducting":10,
+    "required_precision":""
+  },
+  {
+    "item_id":46,
+    "item_content": "璺彛鍙宠浆寮�",
+    "deducting_reason": "涓嶆寜瑙勫畾鍑忛��",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":47,
+    "item_content": "璺彛鍙宠浆寮�",
+    "deducting_reason": "涓嶆寜瑙勫畾鍋滆溅鐬湜",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":48,
+    "item_content": "閫氳繃浜鸿閬撴í绾�",
+    "deducting_reason": "涓嶆寜瑙勫畾鍑忛�熸參琛�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":49,
+    "item_content": "閫氳繃瀛︽牎鍖哄煙",
+    "deducting_reason": "涓嶆寜瑙勫畾鍑忛�熸參琛�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":50,
+    "item_content": "閫氳繃鍏叡姹借溅绔�",
+    "deducting_reason": "涓嶆寜瑙勫畾鍑忛�熸參琛�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":51,
+    "item_content": "鎺夊ご",
+    "deducting_reason": "鎺夊ご鍓嶆湭寮�鍚乏杞悜鐏�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":52,
+    "item_content": "澶滈棿琛岄┒",
+    "deducting_reason": "涓嶈兘姝g‘寮�鍚伅鍏�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":53,
+    "item_content": "澶滈棿琛岄┒",
+    "deducting_reason": "閫氳繃鎬ュ集銆佸潯璺�佹嫳妗ャ�佷汉琛屾í閬撴垨鑰呮病鏈変氦閫氫俊鍙风伅鎺у埗鐨勮矾鍙f椂锛屼笉浜ゆ浛浣跨敤杩溿�佽繎鍏夌伅绀烘剰",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":54,
+    "item_content": "澶滈棿琛岄┒",
+    "deducting_reason": "閫氳繃璺彛鏃朵娇鐢ㄨ繙鍏夌伅",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":55,
+    "item_content": "澶滈棿琛岄┒",
+    "deducting_reason": "鍦ㄦ湁璺伅銆佺収鏄庤壇濂界殑閬撹矾涓婅椹舵椂,浣跨敤杩滃厜鐏�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":56,
+    "item_content": "澶滈棿琛岄┒",
+    "deducting_reason": "鍦ㄨ矾杈逛复鏃跺仠杞︿笉鍏抽棴鍓嶇収鐏垨涓嶅紑鍚ず寤撶伅",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":57,
+    "item_content": "澶滈棿琛岄┒",
+    "deducting_reason": "杩涘叆鏃犵収鏄庨亾璺椹舵椂涓嶄娇鐢ㄨ繙鍏夌伅",
+    "score_deducting":5,
+    "required_precision":""
+  },
+  {
+    "item_id":58,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "涓嶈兘姝g‘寮�鍚伅鍏�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":59,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "鍚屾柟鍚戣繎璺濈璺熻溅琛岄┒鏃�,浣跨敤杩滃厜鐏�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":60,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "閫氳繃鎬ュ集銆佸潯璺�佹嫳妗ャ�佷汉琛屾í閬撴垨鑰呮病鏈変氦閫氫俊鍙风伅鎺у埗鐨勮矾鍙f椂锛屼笉浜ゆ浛浣跨敤杩溿�佽繎鍏夌伅绀烘剰",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":61,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "浼氳溅鏃朵笉鎸夎瀹氫娇鐢ㄨ繎鍏夌伅",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":62,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "閫氳繃璺彛鏃朵娇鐢ㄨ繙鍏夌伅",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":63,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "瓒呰溅鏃舵湭浜ゆ浛浣跨敤杩滆繎鍏夌伅鎻愰啋琚秴瓒婅溅杈�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":64,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "鍦ㄦ湁璺伅銆佺収鏄庤壇濂界殑閬撹矾涓婅椹舵椂,浣跨敤杩滃厜鐏�",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":65,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "鍦ㄨ矾杈逛复鏃跺仠杞︿笉鍏抽棴鍓嶇収鐏垨涓嶅紑鍚ず寤撶伅",
+    "score_deducting":100,
+    "required_precision":""
+  },
+  {
+    "item_id":66,
+    "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)",
+    "deducting_reason": "杩涘叆鏃犵収鏄庛�佺収鏄庝笉鑹殑閬撹矾琛岄┒鏃朵笉浣跨敤杩滃厜鐏�",
+    "score_deducting":5,
+    "required_precision":""
+  }
+]
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index 967a7bd..704de3c 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -82,5 +82,6 @@
     public static final int READ_PHYSICAL_ID = 0x8011;//4锛�	璇诲彇IC鍗�
     public static final String BIND_MCUINFO_TOPIC = "bind_mcu_info_topic";
     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";
 }
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 711a645..8a21f43 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java
@@ -9,6 +9,7 @@
 public class Constant {
     public static final String CRITERIAFOR_I_JSON = "criteria_I.json";
     public static final String CRITERIAFOR_II_JSON = "criteria_II.json";
+    public static final String CRITERIAFOR_III_JSON = "criteria_III.json";
     public static final String RTK_CONFIG_UPDATE_JSON = "RTK_CONFIG_UPDATE_JSON";
     public static final String RTK_CONFIG_PHONE = "RTK_CONFIG_PHONE";
     public static final String RTK_CONFIG_IMEI = "RTK_CONFIG_IMEI";
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
index 82e3040..8f9c085 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
@@ -20,10 +20,13 @@
 import safeluck.drive.evaluation.DB.appstatusdb.AppStatusInitWork;
 import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
 import safeluck.drive.evaluation.DB.criterias.CriteriaForII;
+import safeluck.drive.evaluation.DB.criterias.CriteriaForIII;
+import safeluck.drive.evaluation.DB.criterias.CriteriaForIIIWorker;
 import safeluck.drive.evaluation.DB.criterias.CriteriaForIIWorker;
 import safeluck.drive.evaluation.DB.criterias.CriteriaForIWorker;
 import safeluck.drive.evaluation.DB.criterias.CriteriaIDao;
 import safeluck.drive.evaluation.DB.criterias.CriteriaIIDao;
+import safeluck.drive.evaluation.DB.criterias.CriteriaIIIDao;
 import safeluck.drive.evaluation.DB.exam_status.ExamStatus;
 import safeluck.drive.evaluation.DB.exam_status.ExamStatusDao;
 import safeluck.drive.evaluation.DB.exam_status.ExamStatusInitWorker;
@@ -46,7 +49,7 @@
  * 閭锛�632393724@qq.com
  * All Rights Saved! Chongqing AnYun Tech co. LTD
  */
-@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class, RTKConfig.class, GPSInfo.class, AppStatus.class, ExamStatus.class, SingalConfig.class},version = 1,exportSchema = false)
+@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class, CriteriaForIII.class,RTKConfig.class, GPSInfo.class, AppStatus.class, ExamStatus.class, SingalConfig.class},version = 1,exportSchema = false)
 public abstract class WorkRoomDataBase extends RoomDatabase {
     private static final String TAG = "WorkRoomDataBase";
     public abstract StudentDao getstudentDao();
@@ -85,6 +88,7 @@
                                     OneTimeWorkRequest oneTimeWorkRequest = OneTimeWorkRequest.from(SeedDatabaseWorker.class);
                                     OneTimeWorkRequest oneTimeWorkRequest1 = OneTimeWorkRequest.from(CriteriaForIWorker.class);
                                     OneTimeWorkRequest oneTimeWorkRequest3 = OneTimeWorkRequest.from(CriteriaForIIWorker.class);
+                                    OneTimeWorkRequest  mCriteriaForIIIWorker= OneTimeWorkRequest.from(CriteriaForIIIWorker.class);
                                     OneTimeWorkRequest oneTimeWorkRequest2 = OneTimeWorkRequest.from(FailedProjWorker.class);
                                     OneTimeWorkRequest RTKConfigWorkRequest = OneTimeWorkRequest.from(RTKConfigWork.class);
                                     OneTimeWorkRequest appStatusInitWork = OneTimeWorkRequest.from(AppStatusInitWork.class);
@@ -95,6 +99,7 @@
                                     WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest1);
                                     WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest2);
                                     WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest3);
+                                    WorkManager.getInstance(mContext).enqueue(mCriteriaForIIIWorker);
                                     WorkManager.getInstance(mContext).enqueue(RTKConfigWorkRequest);
                                     WorkManager.getInstance(mContext).enqueue(appStatusInitWork);
                                     WorkManager.getInstance(mContext).enqueue(examStatusInitWorker);
@@ -124,4 +129,11 @@
     public abstract ExamStatusDao getExamStatusDao();
 
     public abstract SignalConfigDao getSignalConfigDao();
+
+    /**
+     * 鑾峰彇绉戠洰涓夎瘎鍒よ〃鐨� Dao
+     *
+     * @return
+     */
+    public abstract CriteriaIIIDao getCriteriaIIIDao();
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java
new file mode 100644
index 0000000..d211da3
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java
@@ -0,0 +1,79 @@
+package safeluck.drive.evaluation.DB.criterias;
+
+import androidx.annotation.NonNull;
+import androidx.room.ColumnInfo;
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/11/26. 10:15:55
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ *
+ * 绉戠洰浜� II绫昏�冨満璇勫垽鏍囧噯琛�
+ */
+@Entity(tableName = "criteria_three")
+public class CriteriaForIII {
+/**************
+ *    item_id   item_content                    deducting_reason                     score_deducting                    required _precision
+        23                  璧锋                             杞﹂棬鏈畬鍏ㄥ叧闂捣姝�                    涓嶅悎鏍�                        琛岄┒璺濈澶т簬1m 鏃�
+ **************/
+    @PrimaryKey
+    @ColumnInfo(name = "item_id")
+    @NonNull
+    private int item_id;
+
+    @ColumnInfo(name = "item_content")
+    private String item_content;
+
+    @ColumnInfo(name = "deducting_reason")
+    private String deducting_reason;
+
+
+    @NonNull @ColumnInfo(name = "score_deducting")
+    private int score_deducting;
+
+    @ColumnInfo(name = "required_precision")
+    private String required_precision;
+
+    public int getItem_id() {
+        return item_id;
+    }
+
+    public void setItem_id(int item_id) {
+        this.item_id = item_id;
+    }
+
+    public String getItem_content() {
+        return item_content;
+    }
+
+    public void setItem_content(String item_content) {
+        this.item_content = item_content;
+    }
+
+    public String getDeducting_reason() {
+        return deducting_reason;
+    }
+
+    public void setDeducting_reason(String deducting_reason) {
+        this.deducting_reason = deducting_reason;
+    }
+
+    public int getScore_deducting() {
+        return score_deducting;
+    }
+
+    public void setScore_deducting(int score_deducting) {
+        this.score_deducting = score_deducting;
+    }
+
+    public String getRequired_precision() {
+        return required_precision;
+    }
+
+    public void setRequired_precision(String required_precision) {
+        this.required_precision = required_precision;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java
new file mode 100644
index 0000000..1ab54c9
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java
@@ -0,0 +1,59 @@
+package safeluck.drive.evaluation.DB.criterias;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.work.Worker;
+import androidx.work.WorkerParameters;
+
+import com.anyun.exam.lib.MyLog;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.google.gson.stream.JsonReader;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Type;
+import java.util.List;
+
+import safeluck.drive.evaluation.DB.Constant;
+import safeluck.drive.evaluation.DB.WorkRoomDataBase;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/11/26. 11:59:25
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class CriteriaForIIIWorker extends Worker {
+
+    private static final String TAG = "CriteriaForIWorker";
+
+    public CriteriaForIIIWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
+        super(context, workerParams);
+    }
+
+    @NonNull
+    @Override
+    public Result doWork() {
+        InputStream inputStream = null;
+        try {
+            inputStream = getApplicationContext().getAssets()
+                    .open(Constant.CRITERIAFOR_III_JSON);
+            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
+            JsonReader jsonReader = new JsonReader(inputStreamReader);
+            Gson gson = new Gson();
+            Type type = new TypeToken<List<CriteriaForIII>>(){}.getType();
+
+            List<CriteriaForIII> criteriaForIIS = gson.fromJson(jsonReader,type);
+            MyLog.i(TAG,"鎻掑叆绉戠洰涓夎�冨満璇勫垽琛�");
+            WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getCriteriaIIIDao().insertAllCriteriaIII(criteriaForIIS);
+            return Result.success();
+        } catch (IOException e) {
+            e.printStackTrace();
+            return Result.failure();
+        }
+
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java
new file mode 100644
index 0000000..8d2dd32
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java
@@ -0,0 +1,28 @@
+package safeluck.drive.evaluation.DB.criterias;
+
+import androidx.lifecycle.LiveData;
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+
+import java.util.List;
+
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/11/26. 11:12:18
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+@Dao
+public interface CriteriaIIIDao {
+    @Insert(onConflict = OnConflictStrategy.IGNORE)
+    void insertCriteriaIII(CriteriaForIII criteriaForIII);
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    void insertAllCriteriaIII(List<CriteriaForIII> criteriaForIII);
+
+    @Query( "SELECT * FROM criteria_three WHERE item_id =:item_id")
+    LiveData<CriteriaForIII > queryItemForCriteriaIII(int item_id);
+}
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 40de2af..7da0bb2 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
@@ -13,10 +13,14 @@
 //5 - 鐩磋杞集
 @PrimaryKey
     private int map_id;
+/**渚ф柟浣嶅仠杞� type = 3
+ 鎶�鏈儴 鍙舵��  15:51:49
+ 鍊掕溅鍏ュ簱 type = 1
+ 涓婂潯璧锋  type = 2
+ zhijiao  type = 5*/
 
 
-
-
+    private int map_item;
 
     //0 閫�鍑猴紙鑰冭瘯瀹屾瘯锛�
     //1 杩涘叆锛堟鍦ㄨ繘琛岃�冭瘯锛�  2-寰呰��
@@ -31,6 +35,14 @@
         this.enter = enter;
     }
 
+    public int getMap_item() {
+        return map_item;
+    }
+
+    public void setMap_item(int map_item) {
+        this.map_item = map_item;
+    }
+
     public ExamStatus() {
     }
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index 049ab64..06d7c64 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -36,6 +36,7 @@
 import com.anyun.exam.lib.AYSdk;
 import com.anyun.exam.lib.MyLog;
 import com.anyun.exam.lib.util.ByteUtil;
+import com.anyun.exam.lib.util.Speaker;
 import com.anyun.im_lib.listener.IMSConnectStatusCallback;
 import com.google.gson.Gson;
 import com.safeluck.aykj.utils.BytesUtils;
@@ -161,6 +162,8 @@
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
         setContentView(R.layout.activity_main);
+        //鍒濆鍖杢ts
+        ExamPlatformData.getInstance().initTTS(this);
         // TODO
         //  杩涜tcp杩炴帴
         final String userId = "100002";
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 99b4a3e..ba745ad 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -59,6 +59,7 @@
 import safeluck.drive.evaluation.platformMessage.JKMessage0101;
 import safeluck.drive.evaluation.platformMessage.JKMessage0203;
 import safeluck.drive.evaluation.platformMessage.JKMessage0206;
+import safeluck.drive.evaluation.util.CThreadPoolExecutor;
 import safeluck.drive.evaluation.util.FileUtil;
 import safeluck.drive.evaluation.util.SPUtils;
 import safeluck.drive.evaluation.util.SystemUtil;
@@ -245,6 +246,17 @@
                 WorkManager.getInstance(getApplicationContext()).enqueue(gpsinfoWorkRequest);
                 break;
             case Constant.ENTER_OR_EXIT_ITEM:
+                int type = 0;
+                int enter_status = -1;
+                try {
+                    JSONObject rtkConfigUpdtea = new JSONObject(json);
+                    type = rtkConfigUpdtea.getInt("type");
+                    enter_status = rtkConfigUpdtea.getInt("enter");
+                    String itemstr=ExamPlatformData.getInstance().getItemStatusStr(type);
+                    ExamPlatformData.getInstance().getTTS().speak(itemstr+(enter_status==Constant.EXIT_CURRENT_ITEM?"缁撴潫":"寮�濮�"));
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
                 Data exam_enter_exitdata = new Data.Builder().putString(Constant.exam_enter_exitdata,json).build();
                 OneTimeWorkRequest examStatusWorker = new OneTimeWorkRequest.Builder(ExamStatusWoker.class).setInputData(exam_enter_exitdata).build();
                 WorkManager.getInstance(getApplicationContext()).enqueue(examStatusWorker);
@@ -369,7 +381,7 @@
         new Thread(new Runnable() {
             @Override
             public void run() {
-                String mapPath = ExamPlatformData.getInstance().getMapPath();
+                final String mapPath = ExamPlatformData.getInstance().getMapPath();
                 if (!TextUtils.isEmpty(mapPath)){
                     MyLog.i("璋冪敤鏇存柊Map璺緞鍚庣殑鍦板浘"+mapPath);
                     byte[] fileContent = FileUtil.readFile(mapPath);
@@ -379,15 +391,34 @@
                         AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,str);
                     }else{
                         MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�",mapPath));
+
+                        CThreadPoolExecutor.runOnMainThread(new Runnable() {
+                            @Override
+                            public void run() {
+                                Toast.makeText(getAppContext(), "鏂囦欢锛�"+mapPath+"涓嶅瓨鍦�", Toast.LENGTH_SHORT).show();
+                            }
+                        });
                     }
                 }else{
                     MyLog.i("璇诲彇Assert鐩綍涓嬪垵濮嬪寲鐨勫湴鍥�");
+                    CThreadPoolExecutor.runOnMainThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            Toast.makeText(getAppContext(), "璇诲彇Assert鐩綍涓嬪垵濮嬪寲鐨勫湴鍥�", Toast.LENGTH_SHORT).show();
+                        }
+                    });
                     StringBuffer buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.MAP);
                     if (buffer != null){
 
                         AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,buffer.toString());
                     }else{
                         MyLog.d(TAG,String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()));
+                        CThreadPoolExecutor.runOnMainThread(new Runnable() {
+                            @Override
+                            public void run() {
+                                Toast.makeText(getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()), Toast.LENGTH_SHORT).show();
+                            }
+                        });
 
                     }
                 }
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 ad36189..836677a 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -10,6 +10,7 @@
 import androidx.work.WorkManager;
 
 import com.anyun.exam.lib.MyLog;
+import com.anyun.exam.lib.util.Speaker;
 
 import java.util.HashMap;
 import java.util.Random;
@@ -33,6 +34,7 @@
     public static final int DEV_NOT_LOGIN = 5;
     public static final int DEV_LOGIN = 6;
     private static HashMap<Integer,String> examPlatformStrs = new HashMap<>();
+    private static HashMap<Integer,String> enter_exit_item_tts = new HashMap<>();
     static {
         examPlatformStrs.put(TCP_DISCONNECT,"鏈繛鎺�");
         examPlatformStrs.put(TCP_CONNECTED,"宸茶繛鎺�");
@@ -40,6 +42,18 @@
         examPlatformStrs.put(DEV_REGISTERED,"宸叉敞鍐�");
         examPlatformStrs.put(DEV_NOT_LOGIN,"鏈櫥褰�");
         examPlatformStrs.put(DEV_LOGIN,"宸茬櫥褰�");
+
+/*渚ф柟浣嶅仠杞� type = 3
+
+ 鍊掕溅鍏ュ簱 type = 1
+ 涓婂潯璧锋  type = 2
+ zhijiao  type = 5*/
+
+        enter_exit_item_tts.put(1,"鍊掕溅鍏ュ簱");
+        enter_exit_item_tts.put(2,"鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�");
+        enter_exit_item_tts.put(3,"渚ф柟鍋滆溅");
+        enter_exit_item_tts.put(4,"鏇茬嚎琛岄┒");
+        enter_exit_item_tts.put(5,"鐩磋杞集");
     }
     private static final String WORK_PLATFORM_STATUS = " work_platform";
 
@@ -47,6 +61,8 @@
     private int examplatformStatus =1;//1-鏈繛鎺ワ紙tcp杩炴帴涓嶄笂锛�   3-鏈敞鍐岋紙璁惧娌℃湁娉ㄥ唽锛�   5-鏈櫥褰曪紙閴存潈鏈�氳繃锛�
 
     private String id;//韬唤璇�
+
+    private Speaker speaker = null;
 
     private String ip;
     private int port;
@@ -162,4 +178,36 @@
 
         return examPlatformStrs.get(work_platform);
     }
+
+    /**
+     * 杩涘叆閫�鍑烘煇涓満鍦扮殑鏂囧瓧
+     * @param item
+     * @return
+     */
+    public String getItemStatusStr(int item) {
+        if (item<1 || item>enter_exit_item_tts.size()){
+            return "鏈煡椤圭洰";
+        }
+        return enter_exit_item_tts.get(item);
+    }
+
+    public Speaker getTTS(){
+        if (speaker == null){
+            throw new RuntimeException("璇峰厛鍒濆鍖朤TS,鍏堣皟鐢╥nitTTS");
+        }else
+        return speaker;
+    }
+
+    /**
+     * 鍒濆鍖杢ts
+     * @param context
+     */
+    public void initTTS(Context context){
+        if (speaker == null){
+
+            speaker = new Speaker(context);
+        }
+    }
+
+
 }
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 1003371..fac164a 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -162,6 +162,7 @@
                     currTotalScore -=item_id;
                     if (currTotalScore < Constant.PASSING_SCORE){
                         MyLog.i(TAG,"浣庝簬80锛屼笉鍚堟牸");
+                        ExamPlatformData.getInstance().getTTS().speak("鑰冭瘯涓嶅悎鏍�");
                         stopExam();
                     }
                     MyLog.i(TAG,"鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊");
@@ -248,6 +249,9 @@
             if (hasSnEqulas(failedProj_selects)){
 
             }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锛屽彂閫�");
                 sns.add(failedProj_selects.get(i).getSn());
                 jkMessage0203.timeBCD = failedProj_selects.get(i).getUtc();
@@ -334,7 +338,7 @@
 
     private void initView(View view) {
 
-        view.findViewById(R.id.profile).setOnClickListener(this);
+        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);
@@ -400,10 +404,12 @@
                 jkMessage0202.ID = ExamPlatformData.getInstance().getID();
                 jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id();
                 MessageProcessor.getInstance().sendMessage(jkMessage0202);
+                ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯");
                 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);
@@ -416,7 +422,7 @@
             case R.id.btn_return:
                 _mActivity.onBackPressed();
                 break;
-            case R.id.profile:
+            case R.id.iv_head:
                 MyLog.i(TAG,"绛惧埌锛岃幏鍙栬韩浠借瘉鐗╃悊鍗″彿");
                 AYSdk.getInstance().sendCmd(Constant.READ_PHYSICAL_ID,"");
                 //TODO 鑾峰緱鐗╃悊鍗″彿 鍙戦�丣KMessage0201缁欏钩鍙帮紝鑾峰彇濮撳悕銆佽韩浠借瘉銆乭ead_url
@@ -445,6 +451,7 @@
         iv_head.getDrawable().setLevel(0);
         OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
         WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
+        ExamPlatformData.getInstance().getTTS().speak("缁撴潫鑰冭瘯");
         sendExamJson(0);
         //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯
         JKMessage0204 jkMessage0204 = new JKMessage0204();
diff --git a/app/src/main/res/layout/layout_net_train_iii_item.xml b/app/src/main/res/layout/layout_net_train_iii_item.xml
new file mode 100644
index 0000000..3aa79d3
--- /dev/null
+++ b/app/src/main/res/layout/layout_net_train_iii_item.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TableLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="5dp"
+
+    android:gravity="bottom">
+
+    <TableRow android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/simulate_light_night"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/side_by_side"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/over_take"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/school_area"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/bus_area"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/start_vehicle"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/junction_left"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/junction_right"/>
+
+
+
+    </TableRow>
+    <TableRow android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/crosswalk"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/straight_line"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/pull_over"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/night_driving"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/turn_around"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/add_subtract"/>
+        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/by_crossing"/>        <Button android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/lane_change"/>
+
+
+
+
+    </TableRow>
+
+</TableLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f46b305..cf04d2f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -35,4 +35,20 @@
     <string name="chesu">杞﹂�燂細</string>
     <string name="engine">杞�燂細</string>
     <string name="platform_status">鑰冭瘯骞冲彴锛�%1$s</string>
+    <string name="simulate_light_night">妯℃嫙澶滈棿鐏厜</string>
+    <string name="side_by_side">浼氳溅</string>
+    <string name="over_take">瓒呰溅</string>
+    <string name="school_area">閫氳繃瀛︽牎鍖哄煙</string>
+    <string name="bus_area">閫氳繃鍏叡姹借溅绔�</string>
+    <string name="start_vehicle">璧锋</string>
+    <string name="junction_left">璺彛宸﹁浆寮�</string>
+    <string name="junction_right">璺彛鍙宠浆寮�</string>
+    <string name="crosswalk">閫氳繃浜鸿妯亾</string>
+    <string name="straight_line">鐩寸嚎琛岄┒</string>
+    <string name="pull_over">闈犺竟鍋滆溅</string>
+    <string name="night_driving">澶滈棿琛岄┒</string>
+    <string name="turn_around">鎺夊ご</string>
+    <string name="add_subtract">鍔犲噺妗�</string>
+    <string name="by_crossing">閫氳繃璺彛</string>
+    <string name="lane_change">鍙樻洿杞﹂亾</string>
 </resources>

--
Gitblit v1.8.0