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