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