From 1b8164d97200ce08486b48ba179b83c5d70bd97b Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期二, 18 二月 2020 21:05:55 +0800
Subject: [PATCH] app启动发送信号配置

---
 app/src/main/java/safeluck/drive/evaluation/MainActivity.java |   68 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 1 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index afb7b18..edac8ba 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -5,6 +5,7 @@
 import android.app.AlertDialog;
 
 import android.content.DialogInterface;
+import android.os.AsyncTask;
 import android.os.Bundle;
 
 import android.util.Log;
@@ -21,6 +22,9 @@
 import safeluck.drive.evaluation.DB.WokViewModel;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
+import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel;
+import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig;
+import safeluck.drive.evaluation.bean.SignalConfigRemote;
 import safeluck.drive.evaluation.cEventCenter.CEventCenter;
 import safeluck.drive.evaluation.cEventCenter.ICEventListener;
 import safeluck.drive.evaluation.fragment.HomeFragment;
@@ -35,7 +39,9 @@
 
 import java.io.IOException;
 import java.nio.charset.Charset;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.ArrayBlockingQueue;
 
 import safeluck.drive.evaluation.util.CThreadPoolExecutor;
 import safeluck.drive.evaluation.util.FileUtil;
@@ -48,7 +54,7 @@
 
     private static final int PERMISSIONS_REQUEST_CODE = 1001;
     private String TAG = MainActivity.class.getCanonicalName();
-
+    SignalConfigViewModel signalConfigViewModel;
     private PermissionManager mPermissionsManager;
     private RTKConfig mRTKConfig;//RTK閰嶇疆淇℃伅
     private Gson gson = new Gson();
@@ -81,10 +87,12 @@
             }
             if (msgCode == Constant.NDK_START){
                 sendRtkConfigInfo();
+                sendSignalConfigsToRemote();
                 sendMcuUprgrade();
             }
         }
     };
+    private List<SignalConfigRemote> signalConfiglist = new ArrayList<>();
 
     private void sendMcuUprgrade() {
         CThreadPoolExecutor.runInBackground(new Runnable() {
@@ -166,7 +174,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();
+            }
+        });
 
         mPermissionsManager = new PermissionManager(this) {
             @Override
@@ -215,6 +239,32 @@
         CEventCenter.onBindEvent(false, icEventListener, Constant.BIND_CONNECT_RTK_TOPIC);
         Log.i(TAG, "onDestroy: ");
     }
+    private void sendSignalConfigsToRemote() {
+        if (signalConfiglist.size()>0){
+            new AsyncTask<Void, Void, List<Integer>>(
+
+            ) {
+                @Override
+                protected List<Integer> doInBackground(Void... voids) {
+                    return   signalConfigViewModel.getAllIndexs();
+                }
+
+                @Override
+                protected void onPostExecute(List<Integer> indexs) {
+                    if (listContainsSameValue(indexs)){
+                        Log.i(TAG, "sendSignalConfigsToRemote: 鏈夌浉鍚岀殑index锛屼笉鑳藉彂閫�"+gson.toJson(signalConfiglist));
+                        Toast.makeText(getApplicationContext(), "涓嶈兘鏈夌浉鍚岀殑鐗╃悊鎵�寮曪紒", Toast.LENGTH_SHORT).show();
+                    }else{
+                        AYSdk.getInstance().sendCmd(Constant.SEND_CONFIG_SIGNAL,gson.toJson(signalConfiglist));
+                    }
+                }
+            }.execute();
+
+        }
+
+
+
+    }
 
     @Override
     protected void onResume() {
@@ -227,4 +277,20 @@
         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
         mPermissionsManager.recheckPermissions(PERMISSIONS_REQUEST_CODE, permissions, grantResults);
     }
+    private boolean listContainsSameValue(List<Integer> indexs) {
+        for (int i = 0; i < indexs.size(); i++) {
+            //鍙互榛樿鏄�0  0涓嶅垽鏂槸鍚︽湁鐩稿悓鐨刬ndex
+            if (indexs.get(i) == 0){
+                continue;
+            }
+            for (int j=i+1;j<indexs.size();j++){
+
+                if (indexs.get(i) == indexs.get(j)){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
 }

--
Gitblit v1.8.0