From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001
From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 18 八月 2017 18:12:17 +0800
Subject: [PATCH] H264 NALU解析  并在RTSPServer判断

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java |  245 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 156 insertions(+), 89 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
index 2e8b6e7..353dec7 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
@@ -2,27 +2,47 @@
 
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.Toast;
+
+import com.bsk.zhangbo.demoforbsk.R;
+import com.lidroid.xutils.view.annotation.event.OnClick;
 
 import cn.com.basic.face.base.BaseApplication;
 import cn.com.basic.face.base.MainActivity;
 import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.discern.common.SqliteSqlBean;
+import cn.com.basic.face.discern.query.item.CheckInQueryItem;
+import cn.com.basic.face.discern.query.item.DeviceQueryItem;
+import cn.com.basic.face.fragment.CheckInFragment;
 import cn.com.basic.face.fragment.DeviceFragment;
-import cn.com.basic.face.service.sqlite.AttendanceDao;
+import cn.com.basic.face.fragment.VisitorRegisterFragment;
+import cn.com.basic.face.service.sqlite.DeviceDao;
+import cn.com.basic.face.service.sync.DeleteLastMonthRecordAndPictureThread;
+import cn.com.basic.face.service.sync.SyncDownThread;
 import cn.com.basic.face.util.AppApi;
 
 import org.xutils.http.RequestParams;
 import org.xutils.x;
 
+import java.io.File;
 import java.util.List;
 import java.util.Map;
 
 import cn.com.basic.face.discern.common.BaseCommonCallBack;
 import cn.com.basic.face.discern.entity.Device;
 import cn.com.basic.face.util.SharedPreferencesUtils;
+import cn.com.basic.face.service.sync.SyncUpThread;
+import cn.com.basic.face.util.SqliteSqlUtil;
+import cn.com.basic.face.util.ToastUtil;
 
 public class DeviceMng {
     public static DeviceMng instance = new DeviceMng();
+
+    private SyncUpThread syncUpThread = null;
+    private SyncDownThread syncDownThread = null;
+    private DeleteLastMonthRecordAndPictureThread deleteLastMonthRecordAndPictureThread = null;
 
     public static String authorationId = "101";
 
@@ -36,7 +56,7 @@
             public void run() {
                 try {
                     while (true) {
-                        AttendanceDao.getInstance().reloadLeftList(null, 0, false);
+                        //AttendanceDao.getInstance().reloadLeftList(null, 0, false);
                         if (!BaseApplication.getInstance().deviceAvailable) {
                             load ();
                         } else {
@@ -63,59 +83,102 @@
 //                });
 //                return;
 //            }
-            RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.Query.DEVICE_QUERY);
-            
-            params.addBodyParameter(Device.FieldNames.sn, authorationId);
-            params.addBodyParameter(Device.FieldNames.type, CommonVariables.DeviceType.ANDROID_DEVICE);
-            x.http().post(params, new BaseCommonCallBack() {
-                public void success() {
-                    List<Device> devices = resultBean.getList(Device.class);
-                    if (devices.size() > 0) {
-                        final Device device = devices.get(0);
-                        BaseApplication.getInstance().setAndroidDevice(device);
-                        MainActivity.getInstance().runOnUiThread(new Runnable() {
-                            @Override
-                            public void run() {
-                                DeviceFragment.getInstance().setAndroidDevice(device);
+            if (MainActivity.getInstance().getInternetAccessible() == CommonVariables.InternetAccess.INTERNET_NOT_INITIALIZE) {
+                return;
+            }
+            if (BaseApplication.getInstance().networkAvailable()) {
+                RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.Query.DEVICE_QUERY);
 
-                                RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.Query.DEVICE_QUERY);
-                                params.addBodyParameter(Device.FieldNames.belongId, device.getBelongId());
-                                params.addBodyParameter(Device.FieldNames.type, CommonVariables.DeviceType.CAMERA1);
-                                x.http().post(params, new BaseCommonCallBack() {
-                                            public void success() {
-                                                List<Device> devices = resultBean.getList(Device.class);
-                                                if (devices.size() > 0) {
-                                                    final Device camera1 = devices.get(0);
-                                                    BaseApplication.getInstance().setCamera1(camera1);
-                                                    DeviceFragment.getInstance().setCamera1(camera1);
-                                                }
-                                            }
-                                });
-
-
-                                params = new RequestParams(AppApi.BASE_URL + AppApi.Query.DEVICE_QUERY);
-                                params.addBodyParameter(Device.FieldNames.belongId, device.getBelongId());
-                                params.addBodyParameter(Device.FieldNames.type, CommonVariables.DeviceType.CAMERA2);
-                                x.http().post(params, new BaseCommonCallBack() {
-                                    public void success() {
-                                        List<Device> devices = resultBean.getList(Device.class);
-                                        if (devices.size() > 0) {
-                                            final Device camera2 = devices.get(0);
-                                            BaseApplication.getInstance().setCamera2(camera2);
-                                            DeviceFragment.getInstance().setCamera2(camera2);
-                                        }
-                                    }
-                                });
-                            }
-                        });
-                    } else {
-                        Toast.makeText(BaseApplication.getInstance(), "鏁版嵁搴撲腑鎵句笉鍒拌璁惧", Toast.LENGTH_SHORT).show();
+                params.addBodyParameter(Device.FieldNames.sn, authorationId);
+                params.addBodyParameter(Device.FieldNames.type, CommonVariables.DeviceType.ANDROID_DEVICE);
+                params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
+                x.http().post(params, new BaseCommonCallBack() {
+                    public void success() {
+                        loadAfterReturn(getList(Device.class));
                     }
-                }
-            });
+                });
+            } else {
+                loadAfterReturn(DeviceDao.getInstance().loadMainDevice(CommonVariables.DeviceType.ANDROID_DEVICE, authorationId));
+            }
         } catch (Throwable e) {
             e.printStackTrace();
             Toast.makeText(BaseApplication.getInstance(), "鏁版嵁搴撲腑鎵句笉鍒拌璁惧", Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    public void loadAfterReturn(List<Device> devices) {
+//        List<Device> devices = getList(Device.class);
+        if (devices.size() > 0) {
+            final Device device = devices.get(0);
+            BaseApplication.getInstance().setAndroidDevice(device);
+            MainActivity.getInstance().runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    DeviceFragment.getInstance().setAndroidDevice(device);
+
+                    if (BaseApplication.getInstance().networkAvailable()) {
+
+                        RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.Query.DEVICE_QUERY);
+                        params.addBodyParameter(Device.FieldNames.belongId, device.getBelongId());
+                        params.addBodyParameter(Device.FieldNames.type, CommonVariables.DeviceType.CAMERA1);
+                        params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
+                        x.http().post(params, new BaseCommonCallBack() {
+                            public void success() {
+                                List<DeviceQueryItem> devices = resultBean.getList(DeviceQueryItem.class);
+                                if (devices.size() > 0) {
+                                    final DeviceQueryItem camera1 = devices.get(0);
+                                    BaseApplication.getInstance().setCamera1(camera1);
+                                    DeviceFragment.getInstance().setCamera1(camera1);
+                                }
+                            }
+                        });
+
+                        params = new RequestParams(AppApi.BASE_URL + AppApi.Query.DEVICE_QUERY);
+                        params.addBodyParameter(Device.FieldNames.belongId, device.getBelongId());
+                        params.addBodyParameter(Device.FieldNames.type, CommonVariables.DeviceType.CAMERA2);
+                        params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
+                        x.http().post(params, new BaseCommonCallBack() {
+                            public void success() {
+                                List<DeviceQueryItem> devices = resultBean.getList(DeviceQueryItem.class);
+                                if (devices.size() > 0) {
+                                    final DeviceQueryItem camera2 = devices.get(0);
+                                    BaseApplication.getInstance().setCamera2(camera2);
+                                    DeviceFragment.getInstance().setCamera2(camera2);
+                                }
+                            }
+                        });
+                    } else {
+                        List<DeviceQueryItem> camera1List = DeviceDao.getInstance().loadCamera(CommonVariables.DeviceType.CAMERA1, device.getBelongId());
+                        if (camera1List != null && camera1List.size() > 0) {
+                            final DeviceQueryItem camera1 = camera1List.get(0);
+                            BaseApplication.getInstance().setCamera1(camera1);
+                            DeviceFragment.getInstance().setCamera1(camera1);
+                        }
+                        List<DeviceQueryItem> camera2List = DeviceDao.getInstance().loadCamera(CommonVariables.DeviceType.CAMERA2, device.getBelongId());
+                        if (camera2List != null && camera2List.size() > 0) {
+                            final DeviceQueryItem camera2 = camera2List.get(0);
+                            BaseApplication.getInstance().setCamera2(camera2);
+                            DeviceFragment.getInstance().setCamera2(camera2);
+                        }
+                    }
+                }
+            });
+            synchronized (this) {
+                if (syncUpThread == null) {
+                    syncUpThread = new SyncUpThread();
+                    syncUpThread.start();
+                }
+                if (syncDownThread == null) {
+                    syncDownThread = new SyncDownThread();
+                    syncDownThread.start();
+                }
+                if (deleteLastMonthRecordAndPictureThread == null) {
+                    deleteLastMonthRecordAndPictureThread = new DeleteLastMonthRecordAndPictureThread();
+                    deleteLastMonthRecordAndPictureThread.start();
+                }
+            }
+        } else {
+            ToastUtil.show("鏁版嵁搴撲腑鎵句笉鍒拌璁惧");
         }
     }
 
@@ -171,55 +234,59 @@
         return sharedPreferences.getString(key, "");
     }
 
-    public String getCamera1Address() {
+    public String getCamera2Address() {
         String username = "admin";
         String password = "admin12345";
         String ip = "192.168.1.70";
         String port = "554";
-
-//        SharedPreferences camera1 = DeviceMng.getInstance().loadSharedPreferences(CommonVariables.DeviceSharedPreferences.CAMERA1);
-//        if (!"".equals(camera1.getString("fragment_device_right_camera1_username", ""))) {
-//            username = camera1.getString("fragment_device_right_camera1_username", "");
-//        }
-//        if (!"".equals(camera1.getString("fragment_device_right_camera1_password", ""))) {
-//            password = camera1.getString("fragment_device_right_camera1_password", "");
-//        }
-//        if (!"".equals(camera1.getString("fragment_device_right_camera1_ip", ""))) {
-//            ip = camera1.getString("fragment_device_right_camera1_ip", "");
-//        }
-//        if (!"".equals(camera1.getString("fragment_device_right_camera1_port", ""))) {
-//            port = camera1.getString("fragment_device_right_camera1_port", "");
-//        }
-
-//        return "rtsp://"+username+":"+password+"@"+ip+":"+port+"/h264/ch1/sub/av_stream";
-//        return "rtsp://Admin:1234@192.168.1.22/h264";
-        return "rtsp://admin:a1234567@192.168.1.132:554/h264/ch1/sub/av_stream";
+        DeviceQueryItem camera2 = DeviceFragment.getInstance().getCamera2();
+        if (camera2 != null) {
+            return "rtsp://admin:admin12345@"+camera2.getIp()+":554/h264/ch1/main/av_stream";
+        }
+        return "rtsp://admin:admin12345@192.168.1.202:554/h264/ch1/main/av_stream";
     }
 
-    public String getCamera2Address() {
+    public String getCamera1Address() {
         String username = "admin";
         String password = "a1234567";
         String ip = "192.168.1.68";
         String port = "554";
-
-//        SharedPreferences camera1 = DeviceMng.getInstance().loadSharedPreferences(CommonVariables.DeviceSharedPreferences.CAMERA2);
-//        if (!"".equals(camera1.getString("fragment_device_right_camera1_username", ""))) {
-//            username = camera1.getString("fragment_device_right_camera1_username", "");
-//        }
-//        if (!"".equals(camera1.getString("fragment_device_right_camera1_password", ""))) {
-//            password = camera1.getString("fragment_device_right_camera1_password", "");
-//        }
-//        if (!"".equals(camera1.getString("fragment_device_right_camera1_ip", ""))) {
-//            ip = camera1.getString("fragment_device_right_camera1_ip", "");
-//        }
-//        if (!"".equals(camera1.getString("fragment_device_right_camera1_port", ?
-// ""))) {
-//            port = camera1.getString("fragment_device_right_camera1_port", "");
-//        }
-
-        //return "rtsp://"+username+":"+password+"@"+ip+":"+port+"/h264/ch1/sub/av_stream";
-//        return "rtsp://admin:a1234567@192.168.1.68:554/h264/ch1/main/av_stream";
-        return "rtsp://admin:a1234567@192.168.1.69:554/h264/ch1/sub/av_stream";
+        DeviceQueryItem camera1 = DeviceFragment.getInstance().getCamera1();
+        if (camera1 != null) {
+            return "rtsp://admin:a1234567@"+camera1.getIp()+":554/h264/ch1/main/av_stream";
+        }
+        return "rtsp://admin:a1234567@192.168.1.201:554/h264/ch1/main/av_stream";
     }
 
+    public void updateCamera(RequestParams params, Device camera) {
+        if (BaseApplication.getInstance().networkAvailable()) {
+            params.setUri(AppApi.BASE_URL +AppApi.CAMERA_UPDATE);
+            x.http().post(params, new BaseCommonCallBack() {
+                @Override
+                public void success() {
+                    SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class));
+                    Toast.makeText(BaseApplication.getInstance(),"淇敼鎴愬姛", Toast.LENGTH_SHORT).show();
+                }
+            });
+        } else {
+            DeviceDao.getInstance().updateCamera(camera);
+        }
+    }
+
+    public void updateAndroidDevice(RequestParams params, Device androidDevice) {
+        if (BaseApplication.getInstance().networkAvailable()) {
+            params.setUri(AppApi.BASE_URL +AppApi.ANDROID_DEVICE_UPDATE);
+            x.http().post(params, new BaseCommonCallBack() {
+                @Override
+                public void success() {
+                    SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class));
+                    Toast.makeText(BaseApplication.getInstance(),"淇敼鎴愬姛", Toast.LENGTH_SHORT).show();
+                }
+            });
+        } else {
+            DeviceDao.getInstance().updateAndroidDevice(androidDevice);
+        }
+    }
+
+
 }

--
Gitblit v1.8.0