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/DB/exam_status/ExamStatusOutWorker.kt |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

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

--
Gitblit v1.8.0