lizhanwei
2020-03-16 bb00b0257227d4d6397caa78143292822df13db8
状态栏添加卫星颗数和解状态;App_status表添加qf和sat_num字段
10个文件已修改
140 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/Constant.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatus.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusDao.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/gps/GpsInfoWorker.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/app.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/networktoolbar.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/arrays.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -85,6 +85,7 @@
    public static final String BIND_MCUINFO_TOPIC = "bind_mcu_info_topic";
    public static final String BIND_RTK_SPEED_TOPIC = "BIND_RTK_SPEED_TOPIC";
    public static final int EXIT_CURRENT_ITEM = 0;//退出某场地
    public static final String RTK_INFO_SAT_QF = "RTK_INFO_SAT_QF";//从RTK info中获取的卫星颗数和qf 组成的json
    public static String exam_enter_exitdata="exam_enter_exitdata";
    public static int Chang_di = 2;
    public static int DaoLu_night = 3;
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatus.java
@@ -18,9 +18,27 @@
    @PrimaryKey
    private int id;
    private int work_platform;//业务平台连接状态
    private int sat_num;//卫星颗数
    private int qf;//解状态
    private int default_observe1;//保留1 为以后扩展
    private int default_boserve2;//保留2
    public int getSat_num() {
        return sat_num;
    }
    public void setSat_num(int sat_num) {
        this.sat_num = sat_num;
    }
    public int getQf() {
        return qf;
    }
    public void setQf(int qf) {
        this.qf = qf;
    }
    public int getRtk_login_code() {
        return rtk_login_code;
    }
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusDao.java
@@ -23,7 +23,13 @@
    //更新业务平台连接状态
    @Query("update app_status set work_platform=:connStatus where id=0")
    void updatework_platformStatus(int connStatus);
    //更新保留值1
    @Query("update app_status set default_observe1=:default_observe1 where id=0")
    void updatedDefaultObserve1(int default_observe1);
    //更新卫星数
    @Query("update app_status set default_observe1=:saliteNums where id=0")
    void updatedDefaultObserve1(int saliteNums);
    @Query("update app_status set sat_num=:sat_num where id=0")
    void updatedSatNum(int sat_num);
    //更新qf状态
    @Query("update app_status set qf=:qf where id=0")
    void updatedQf(int qf);
}
app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
@@ -24,6 +24,8 @@
    private static final String TAG = "AppStatusWorker";
    private AppStatusDao appStatusDao;
    private int lastSatNum = 0;
    private int lastQf = 0;
    public AppStatusWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
        super(context, workerParams);
@@ -53,8 +55,25 @@
                    appStatusDao.updatework_platformStatus(workconn);
                    break;
                case Constant.RTK_INFO_SAT_QF:
                    int qf = jsonObject.getInt("qf");
                    int satNum = jsonObject.getInt("sat_num");
                    if (qf==lastQf){
                        Log.i(TAG,"解状态和上次的一样,不保存数据库"+qf);
                    }else{
                        lastQf = qf;
                        appStatusDao.updatedQf(qf);
                    }
                    if (satNum==lastSatNum){
                        Log.i(TAG,"卫星颗数和上次的一样,不保存数据库"+lastSatNum);
                    }else{
                        appStatusDao.updatedSatNum(satNum);
                        lastSatNum = satNum;
                    }
                    break;
            }
            return Result.success();
app/src/main/java/safeluck/drive/evaluation/DB/gps/GpsInfoWorker.java
@@ -44,7 +44,7 @@
            Type type = new TypeToken<GPSInfo>(){}.getType();
            GPSInfo mstus=gson.fromJson(getInputData().getString(Constant.GPS_INFO_DATA),   type);
            WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getAppStatusDao().updatedDefaultObserve1(mstus.getSat_num());
            WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getAppStatusDao().updatedSatNum(mstus.getSat_num());
            WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getGpsInoDao().insert(mstus);
        } catch (Exception e) {
app/src/main/java/safeluck/drive/evaluation/app.java
@@ -306,6 +306,36 @@
                CEventCenter.dispatchEvent(Constant.BIND_SPEED_TOPIC,cmd,0,json);
                break;
            case Constant.RTK_INFO:
                JSONObject jsonObject = null;
                try {
                    jsonObject = new JSONObject(json);
                    int qf = jsonObject.getInt("qf");
                    int satNum = jsonObject.getInt("sat_num");
                    if (lastSatEqualNow(satNum)){
                    }else{
                        String[] rtk_strs = new String[2];
                        rtk_strs[0] = Constant.RTK_INFO_SAT_QF;
                        rtk_strs[1] = json;
                        Data rtkInfoData = new Data.Builder().putStringArray(Constant.APP_STATUS,rtk_strs).build();
                        OneTimeWorkRequest appStatusWorker = new OneTimeWorkRequest.Builder(AppStatusWorker.class).setInputData(rtkInfoData).build();
                        WorkManager.getInstance(getApplicationContext()).enqueue(appStatusWorker);
                    }
                    if (lastQfEqualNow(qf)){
                    }else{
                        String[] rtk_strs = new String[2];
                        rtk_strs[0] = Constant.RTK_INFO_SAT_QF;
                        rtk_strs[1] = json;
                        Data rtkInfoData = new Data.Builder().putStringArray(Constant.APP_STATUS,rtk_strs).build();
                        OneTimeWorkRequest appStatusWorker = new OneTimeWorkRequest.Builder(AppStatusWorker.class).setInputData(rtkInfoData).build();
                        WorkManager.getInstance(getApplicationContext()).enqueue(appStatusWorker);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                if (ExamPlatformData.getInstance().getExamplatformStatus()==ExamPlatformData.DEV_LOGIN){
                    try {
                        JSONObject jsSpeed = new JSONObject(json);
@@ -361,6 +391,26 @@
    }
    private int lastSatNum= 0;
    private int lastQf = 0;
    private boolean lastSatEqualNow(int satNum) {
        if (lastSatNum == satNum){
            return true;
        }else{
            lastSatNum = satNum;
        }
        return false;
    }
    private boolean lastQfEqualNow(int qf) {
        if (lastQf == qf){
            return true;
        }else{
            lastQf = qf;
        }
        return false;
    }
    private void sendVechileInfo() {
        new Thread(new Runnable() {
            @Override
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -97,7 +97,8 @@
    private int item_id;//扣分分数总和
    private ExamStatusViewModel examStatusViewModel;
    private static final int ADD_DATA = 1;
    private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform,tv_network_time;
    private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform,tv_network_time,
            tv_qf;
    private double speed=0.0;
    private ImageView iv_rtk_status,iv_head;
@@ -106,7 +107,6 @@
    private static final int SPEED_DATA = 2;
    private FailedProjViewModel failedProjViewModel;
    String icson;//返回的ic卡信息 json
    private Random random = new Random();
    private List<SimulateNightBean.QuestionBean> tempQs=  new ArrayList<>();
    public static SupportFragment newInstance() {
@@ -127,7 +127,7 @@
                av_zhijiao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_ANGLE));
            }
            if (msg.what == SPEED_DATA){
                tv_speed.setText(getActivity().getApplicationContext().getResources().getString(R.string.speed,speed));
                tv_speed.setText(_mActivity.getApplicationContext().getResources().getString(R.string.speed,speed));
            }
            if (msg.what == Constant.IC_ID){
                try {
@@ -367,7 +367,8 @@
                    Log.i(TAG, "onChanged: "+appStatus.toString());
                    iv_rtk_status.getDrawable().setLevel(appStatus.getRtk_connect_status());
                    tv_work_platform.setText(getString(R.string.platform_status,ExamPlatformData.getInstance().getExamplatformStatusStr(appStatus.getWork_platform())));
                    tv_sat_num.setText(String.valueOf(appStatus.getDefault_observe1()).length()==1?"0"+appStatus.getDefault_observe1():String.valueOf(appStatus.getDefault_observe1()));
                    tv_sat_num.setText(String.valueOf(appStatus.getSat_num()).length()==1?"0"+appStatus.getSat_num():String.valueOf(appStatus.getSat_num()));
                    tv_qf.setText(getResources().getStringArray(R.array.qf_status)[appStatus.getQf()]);
                }
            }
        });
@@ -444,7 +445,8 @@
        iv_rtk_status = view.findViewById(R.id.iv_rtk_connect);
        iv_head = view.findViewById(R.id.iv_head);
        tv_sat_num = view.findViewById(R.id.tv_sat_num);
        tv_sat_num = view.findViewById(R.id.tv_sat_num_instatus);
        tv_qf = view.findViewById(R.id.tv_qf);
        tv_speed = view.findViewById(R.id.tv_speed);
        tv_total_score = view.findViewById(R.id.tv_total_score);
        tv_network_time = view.findViewById(R.id.network_time);
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -106,7 +106,8 @@
    private int item_id;//扣分分数总和
    private ExamStatusViewModel examStatusViewModel;
    private static final int ADD_DATA = 1;
    private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform,tv_network_time;
    private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform,tv_network_time
            ,tv_qf;
    private double speed=0.0;
    private ImageView iv_rtk_status,iv_head;
@@ -115,7 +116,6 @@
    private static final int SPEED_DATA = 2;
    private FailedProjViewModel failedProjViewModel;
    String icson;//返回的ic卡信息 json
    private Random random = new Random();
    private List<SimulateNightBean.QuestionBean> tempQs=  new ArrayList<>();
@@ -372,7 +372,8 @@
                    Log.i(TAG, "onChanged: "+appStatus.toString());
                    iv_rtk_status.getDrawable().setLevel(appStatus.getRtk_connect_status());
                    tv_work_platform.setText(getString(R.string.platform_status,ExamPlatformData.getInstance().getExamplatformStatusStr(appStatus.getWork_platform())));
                    tv_sat_num.setText(String.valueOf(appStatus.getDefault_observe1()).length()==1?"0"+appStatus.getDefault_observe1():String.valueOf(appStatus.getDefault_observe1()));
                    tv_sat_num.setText(String.valueOf(appStatus.getSat_num()).length()==1?"0"+appStatus.getSat_num():String.valueOf(appStatus.getSat_num()));
                    tv_qf.setText(getResources().getStringArray(R.array.qf_status)[appStatus.getQf()]);
                }
            }
        });
@@ -450,7 +451,8 @@
        iv_rtk_status = view.findViewById(R.id.iv_rtk_connect);
        iv_head = view.findViewById(R.id.iv_head);
        tv_sat_num = view.findViewById(R.id.tv_sat_num);
        tv_sat_num = view.findViewById(R.id.tv_sat_num_instatus);
        tv_qf = view.findViewById(R.id.tv_qf);
        tv_speed = view.findViewById(R.id.tv_speed);
        tv_total_score = view.findViewById(R.id.tv_total_score);
        tv_network_time = view.findViewById(R.id.network_time);
app/src/main/res/layout/networktoolbar.xml
@@ -20,17 +20,26 @@
                android:layout_height="wrap_content"
                android:text="02"
                android:gravity="center"
                android:id="@+id/tv_sat_num_instatus"
                android:drawableLeft="@drawable/gps"
                android:textColor="@android:color/white" />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/iv_rtk_connect"
                android:layout_marginLeft="50dp"
                android:layout_marginLeft="30dp"
                android:src="@drawable/antennaxml"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/tv_qf"
                android:singleLine="true"
                android:layout_marginLeft="30dp"
                android:textColor="@android:color/white"
                android:text="无效解"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:id="@+id/network_time"
                android:singleLine="true"
app/src/main/res/values/arrays.xml
@@ -4,4 +4,11 @@
        <item>张三</item>
        <item>李四</item>
    </string-array>
    <string-array name="qf_status">
        <item>无效解</item>
        <item>单点定位解</item>
        <item>伪距差分</item>
        <item>固定解</item>
        <item>浮动解</item>
    </string-array>
</resources>