From bb00b0257227d4d6397caa78143292822df13db8 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期一, 16 三月 2020 10:32:24 +0800
Subject: [PATCH] 状态栏添加卫星颗数和解状态;App_status表添加qf和sat_num字段

---
 app/src/main/java/safeluck/drive/evaluation/Constant.java                       |    1 
 app/src/main/java/safeluck/drive/evaluation/app.java                            |   50 ++++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java |   19 ++++++
 app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatus.java       |   18 ++++++
 app/src/main/res/values/arrays.xml                                              |    7 ++
 app/src/main/java/safeluck/drive/evaluation/DB/gps/GpsInfoWorker.java           |    2 
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java         |   10 ++-
 app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusDao.java    |   10 ++
 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java  |   12 ++-
 app/src/main/res/layout/networktoolbar.xml                                      |   11 +++
 10 files changed, 127 insertions(+), 13 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index 9e6c2d5..4b9d253 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/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";//浠嶳TK info涓幏鍙栫殑鍗槦棰楁暟鍜宷f 缁勬垚鐨刯son
     public static String exam_enter_exitdata="exam_enter_exitdata";
     public static int Chang_di = 2;
     public static int DaoLu_night = 3;
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatus.java b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatus.java
index 9e2d40f..53e7bae 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatus.java
+++ b/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;//瑙g姸鎬�
     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;
     }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusDao.java
index f349707..aa1424e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusDao.java
+++ b/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);
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
index 342d72c..aaa42eb 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
+++ b/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,"瑙g姸鎬佸拰涓婃鐨勪竴鏍凤紝涓嶄繚瀛樻暟鎹簱"+qf);
+                    }else{
+                        lastQf = qf;
+                        appStatusDao.updatedQf(qf);
+                    }
+                    if (satNum==lastSatNum){
+                        Log.i(TAG,"鍗槦棰楁暟鍜屼笂娆$殑涓�鏍凤紝涓嶄繚瀛樻暟鎹簱"+lastSatNum);
+                    }else{
+                        appStatusDao.updatedSatNum(satNum);
+                        lastSatNum = satNum;
+                    }
 
 
+                    break;
+
             }
 
             return Result.success();
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/gps/GpsInfoWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/gps/GpsInfoWorker.java
index ab9bc03..29ee370 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/gps/GpsInfoWorker.java
+++ b/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) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 84e4574..f6cea14 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/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
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
index e1aba26..5ec7624 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -97,7 +97,8 @@
     private int item_id;//鎵e垎鍒嗘暟鎬诲拰
     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;//杩斿洖鐨刬c鍗′俊鎭� 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);
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 341aada..1b966cb 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -106,7 +106,8 @@
     private int item_id;//鎵e垎鍒嗘暟鎬诲拰
     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;//杩斿洖鐨刬c鍗′俊鎭� 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);
diff --git a/app/src/main/res/layout/networktoolbar.xml b/app/src/main/res/layout/networktoolbar.xml
index fa052e0..891dd57 100644
--- a/app/src/main/res/layout/networktoolbar.xml
+++ b/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"
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 8c61726..6fe4b75 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/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>

--
Gitblit v1.8.0