コード例 #1
0
        private void SavePicture(CameraAlarmJson camera, Bll bll, int mode)
        {
            byte[]          byte1 = camera.Json;
            string          json  = Encoding.UTF8.GetString(byte1);
            CameraAlarmInfo info  = CameraAlarmInfo.Parse(json);

            info.time = GetDataTime(info.time_stamp);
            info.id   = camera.Id; //增加了id,这样能够获取到详情
            //int mode = AppSetting.CameraAlarmPicSaveMode;
            string base64 = info.pic_data;

            if (!string.IsNullOrEmpty(base64))
            {
                info.pic_data = "";                               //图片分开存
                string json2 = JsonConvert.SerializeObject(info); //新的没有图片的json
                camera.Json = Encoding.UTF8.GetBytes(json2);

                bll.CameraAlarmJsons.Edit(camera);

                SavePicture(bll, mode, base64, info.pic_name);

                SaveJsonToFile(info.time_stamp, json2);
            }
            else
            {
                Log.Info("没有图片");
                SaveJsonToFile(info.time_stamp, json);
            }
        }
コード例 #2
0
        private bool SaveToCameraAlarmJson(string json)
        {
            byte[]          byte1  = Encoding.UTF8.GetBytes(json);
            CameraAlarmJson camera = new CameraAlarmJson();

            camera.Json = byte1;
            bool result = db.CameraAlarmJsons.Add(camera);//存到数据库中

            return(result);
        }
コード例 #3
0
        public void AlarmSaveToJson(CameraAlarmJson camera)
        {
            byte[]          byte1 = camera.Json;
            string          json  = Encoding.UTF8.GetString(byte1);
            CameraAlarmInfo info  = CameraAlarmInfo.Parse(json);

            info.id = camera.Id; //增加了id,这样能够获取到详情

            string pic = info.pic_data;

            DateTime now = GetDataTime(info.time_stamp);
            FileInfo fi  = CameraAlarmService.GetJsonFile(now);
        }
コード例 #4
0
 private void btnSave_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         CameraAlarmInfo camera = this.info;
         camera.AlarmType = int.Parse(txtAlarmType.Text);
         CameraAlarmJson cameraJson = new CameraAlarmJson();
         cameraJson.Id = camera.id;
         string json = JsonConvert.SerializeObject(camera);
         cameraJson.Json = Encoding.UTF8.GetBytes(json);
         BLL.Bll bll = BLL.Bll.NewBllNoRelation();
         bll.CameraAlarmJsons.Edit(cameraJson);
     }
     catch (Exception ex)
     {
         Log.Info("saveCameraJson:" + ex.ToString());
     }
 }
コード例 #5
0
        private CameraAlarmInfo GetCamaraAlarmInfo(CameraAlarmJson camera, Dictionary <string, Dev_CameraInfo> cameraDict, Dictionary <int, DevInfo> devs)
        {
            try
            {
                byte[]          byte1           = camera.Json;
                string          json            = Encoding.UTF8.GetString(byte1);
                int             id              = camera.Id;
                CameraAlarmInfo cameraAlarmInfo = CameraAlarmInfo.Parse(json);
                cameraAlarmInfo.id       = camera.Id; //增加了id,这样能够获取到详情
                cameraAlarmInfo.pic_data = "";        //在详情的地方获取
                cameraAlarmInfo.data     = null;
                cameraAlarmInfo.time     = GetDataTime(cameraAlarmInfo.time_stamp);


                string ip = GetCameraIp(cameraAlarmInfo.cid_url);
                cameraAlarmInfo.DevIp = ip;

                if (cameraDict.ContainsKey(ip))
                {
                    var camerainfo = cameraDict[ip];
                    if (devs.ContainsKey(camerainfo.DevInfoId))
                    {
                        cameraAlarmInfo.DevName = devs[camerainfo.DevInfoId].Name;
                        cameraAlarmInfo.DevID   = camerainfo.DevInfoId;
                    }
                }
                else
                {
                }

                return(cameraAlarmInfo);
            }
            catch (System.Exception ex)
            {
                Log.Error(LogTags.ExtremeVision, "GetCamaraAlarmInfo", ex.ToString());
                return(null);
            }
        }
コード例 #6
0
 /// <summary>
 /// 获取一个告警的详情 主要是告警图片
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public CameraAlarmInfo GetCameraAlarmDetail(int id)
 {
     try
     {
         CameraAlarmJson camera = db.CameraAlarmJsons.Find(id);
         if (camera == null)
         {
             return(null);
         }
         byte[]          byte1           = camera.Json;
         string          json            = Encoding.UTF8.GetString(byte1);
         CameraAlarmInfo cameraAlarmInfo = CameraAlarmInfo.Parse(json);
         cameraAlarmInfo.id   = camera.Id;//增加了id,这样能够获取到详情
         cameraAlarmInfo.time = GetDataTime(cameraAlarmInfo.time_stamp);
         GetCameraAlarmPicture(cameraAlarmInfo);
         return(cameraAlarmInfo);
     }
     catch (System.Exception ex)
     {
         Log.Error(LogTags.ExtremeVision, "GetCameraAlarmDetail", ex.ToString());
         return(null);
     }
 }
コード例 #7
0
        /// <summary>
        /// 保存Json到文件中,同时从告警表分离到图片表或者文件中
        /// </summary>
        /// <param name="callBack"></param>
        public void SeparateImages(Action callBack, int mode, int progressBagCount = 5)
        {
            Log.Info(LogTags.ExtremeVision, "开始 保存Json到文件中,同时从告警表分离到图片表或者文件中");
            Worker.Run(() =>
            {
                //int progressBagCount = 5;

                bool r = true;
                while (r)
                {
                    try
                    {
                        LocationService s = new LocationService();
                        //var list=s.GetAllCameraAlarms(true);
                        var bll   = Bll.NewBllNoRelation();
                        int count = bll.CameraAlarmJsons.DbSet.Count();
                        Log.Info("count:" + count);
                        List <CameraAlarmJson> list2 = bll.CameraAlarmJsons.ToList();
                        Log.Info(LogTags.ExtremeVision, "获取到列表");
                        if (list2 != null)
                        {
                            Log.Info(LogTags.ExtremeVision, "成功");
                            for (int i1 = 0; i1 < list2.Count; i1++)
                            {
                                if (i1 % progressBagCount == 0)
                                {
                                    Log.Info(LogTags.ExtremeVision, string.Format("进度:{0}/{1}", i1, list2.Count));
                                }

                                CameraAlarmJson camera = list2[i1];
                                SavePicture(camera, bll, mode);
                            }
                        }
                        else
                        {
                            Log.Info(LogTags.ExtremeVision, "失败");
                            Log.Info(LogTags.ExtremeVision, "太多了取不出来,一个一个取");
                            for (int i = 0; i < count; i++)
                            {
                                if (i % progressBagCount == 0)
                                {
                                    Log.Info(LogTags.ExtremeVision, string.Format("进度:{0}/{1}", i, count));
                                }
                                CameraAlarmJson camera = bll.CameraAlarmJsons.Find(i + 1);
                                if (camera == null)
                                {
                                    Log.Info("找不到id:" + (i + 1));
                                    continue;
                                }

                                SavePicture(camera, bll, mode);
                            }
                        }
                        Log.Info(LogTags.ExtremeVision, "完成");
                        r = false;//真的完成
                    }
                    catch (Exception exception)
                    {
                        Log.Error(LogTags.ExtremeVision, exception.Message);
                    }
                }
            }, () =>
            {
                if (callBack != null)
                {
                    callBack();
                }
            });
        }