| | |
| | | import android.app.AlertDialog; |
| | | |
| | | import android.content.DialogInterface; |
| | | import android.os.AsyncTask; |
| | | import android.os.Bundle; |
| | | |
| | | import android.util.Log; |
| | |
| | | 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; |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | 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(); |
| | |
| | | } |
| | | if (msgCode == Constant.NDK_START){ |
| | | sendRtkConfigInfo(); |
| | | sendSignalConfigsToRemote(); |
| | | sendMcuUprgrade(); |
| | | } |
| | | } |
| | | }; |
| | | private List<SignalConfigRemote> signalConfiglist = new ArrayList<>(); |
| | | |
| | | private void sendMcuUprgrade() { |
| | | CThreadPoolExecutor.runInBackground(new Runnable() { |
| | |
| | | } |
| | | }); |
| | | |
| | | 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 |
| | |
| | | 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() { |
| | |
| | | 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不判断是否有相同的index |
| | | 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; |
| | | } |
| | | |
| | | } |