endian11
2020-10-29 43e3df53484d02fb50ab073fa23a31a95b9dbc2f
app/src/main/java/safeluck/drive/evaluation/app.java
@@ -23,6 +23,7 @@
import com.anyun.basecommonlib.MyLog;
import com.anyun.exam.lib.crash.CrashHandler;
import com.facebook.stetho.Stetho;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@@ -34,6 +35,7 @@
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.Executors;
@@ -48,8 +50,12 @@
import safeluck.drive.evaluation.DB.failitems.FailedProj;
import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj;
import safeluck.drive.evaluation.DB.gps.GpsInfoWorker;
import safeluck.drive.evaluation.DB.route.RouteCross;
import safeluck.drive.evaluation.DB.route.RouteTriggerLine;
import safeluck.drive.evaluation.DB.rtktb.RTKConfigUpdateWorker;
import safeluck.drive.evaluation.bean.ExamPlatformData;
import safeluck.drive.evaluation.bean.RemoteRouteCollect;
import safeluck.drive.evaluation.bean.RouteCollect;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.im.MessageProcessor;
import safeluck.drive.evaluation.platformMessage.AttachInfo;
@@ -119,6 +125,7 @@
//            OneTimeWorkRequest examStatausOutWorker = OneTimeWorkRequest.from(ExamStatusOutWorker.class);
            sendMapInfo();
            sendVechileInfo();
            sendRouteExam();
            DataInitKt.MCUUpgrade(getApplicationContext());
            DataInitKt.sendExamLights(getApplicationContext());
            DataInitKt.sendRtkConfig(getApplicationContext());
@@ -130,6 +137,67 @@
        });
    }
    private void sendRouteExam() {
        if (CThreadPoolExecutor.isOnMainThread()){
            Log.i(TAG,"sendRouteExam 运行在主线,需要在子线程发送线路");
                CThreadPoolExecutor.runInBackground(()->{
                    opDBAndSendRoute();
                });
        }else{
            Log.i(TAG,"sendRouteExam 运行子线程");
            opDBAndSendRoute();
        }
    }
    private void opDBAndSendRoute() {
        List<RouteCollect.CrossingActiveBean> crossingActiveBeans = new ArrayList<>();
        List<RouteCollect.TriggerLineBean> triggerLineBeans = new ArrayList<>();
        List<Double> xy = new ArrayList<>();
        RemoteRouteCollect remoteRouteCollect = new RemoteRouteCollect();
        RouteCollect routeCollect = new RouteCollect();
        List<RouteCollect> routeCollects = new ArrayList<>();
        String routeName = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRouteBeanDao().getCurrRouteName(ExamPlatformData.getInstance().getExamRoute());
        routeCollect.setName(routeName);
        List<RouteTriggerLine> routeTriggerLines = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRouteTriggerLineDao().getAllRouteTriggerLine(ExamPlatformData.getInstance().getExamRoute());
        List<RouteCross> routeCrosses = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext().getApplicationContext()).getRouteCrooDao().getAllRouteCross(ExamPlatformData.getInstance().getExamRoute());
        for (RouteTriggerLine line:routeTriggerLines){
            RouteCollect.TriggerLineBean triggerLineBean = new RouteCollect.TriggerLineBean();
            int road = line.getRoad();
            int type = line.getType();
            double x = line.getX();
            double y = line.getY();
            xy.clear();
            xy.add(x);
            xy.add(y);
            triggerLineBean.setRoad(road);
            triggerLineBean.setType(type);
            triggerLineBean.setX_y(xy);
            triggerLineBeans.add(triggerLineBean);
        }
        routeCollect.setTrigger_line(triggerLineBeans);
        for (RouteCross routeCross:routeCrosses){
            int idx = routeCross.getIdx();
            int road = routeCross.getRoad();
            int active = routeCross.getActive();
            RouteCollect.CrossingActiveBean crossingActiveBean = new RouteCollect.CrossingActiveBean();
            crossingActiveBean.setActive(active);
            crossingActiveBean.setIdx(idx);
            crossingActiveBean.setRoad(road);
            crossingActiveBeans.add(crossingActiveBean);
        }
        routeCollect.setCrossing_active(crossingActiveBeans);
        routeCollects.add(routeCollect);
        remoteRouteCollect.setScheme(routeCollects);
        String str = new Gson().toJson(remoteRouteCollect);
        Log.i(TAG,"json====="+str);
        AYSdk.getInstance().sendCmd(0x8017,str);
    }
    private void sendJudgeArgs() {
@@ -340,6 +408,8 @@
                            OneTimeWorkRequest examStatausOutWorker1 = new OneTimeWorkRequest.Builder(ExamStatusOutWorker.class)
                                    .setInputData(data).build();
                            WorkManager.getInstance(getApplicationContext()).enqueue(examStatausOutWorker1);
                            sendRouteExam();
                            sendJudgeArgs();
                            break;
                    }
                } catch (JSONException e) {