コード例 #1
0
        public Dictionary<int, Event> GetEventCustom(ref string errMessage, string str)
        {
            Database db = DatabaseFactory.CreateDatabase();
            errMessage = "";
            Dictionary<int, Event> list = new Dictionary<int, Event>();
            try
            {
                DataSet ds = EventDataAccess.GetEventCustom(db, str);
                Event et;
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    et = new Event(ds.Tables[0].Rows[i]);
                    et.CapturePicture = CapturePictureBusiness.Instance.GetCapturePicture(ref errMessage, et.PictureID);
                    et.CameraInfo = CameraBusiness.Instance.GetCameraInfoByCameraId(ref errMessage,
                                                                                      et.CapturePicture.CameraID);
                    et.VideoInfo = VideoBusiness.Instance.GetVideoInfoById(ref errMessage, et.VideoId);
                    list.Add(et.EventId, et);
                }
                return list;

            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return null;
            }
        }
コード例 #2
0
        public Event GetEvent(ref string errMessage, int cameraId, DateTime captureDataTime)
        {
            Database db = DatabaseFactory.CreateDatabase();
            errMessage = "";
            Event et = null;

            try
            {
                DataSet ds = EventDataAccess.GetEventCustom(db, string.Format(" and CapturePicture.CameraId={0} and  CapturePicture.DateTime='{1}'", cameraId, captureDataTime));
                et = new Event(ds.Tables[0].Rows[0]);
                et.CapturePicture = CapturePictureBusiness.Instance.GetCapturePicture(ref errMessage, et.PictureID);
                et.CameraInfo = CameraBusiness.Instance.GetCameraInfoByCameraId(ref errMessage,
                                                                                  et.CapturePicture.CameraID);
                et.VideoInfo = VideoBusiness.Instance.GetVideoInfoById(ref errMessage, et.VideoId);
                return et;

            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return null;
            }
        }
コード例 #3
0
        public void Handle(byte[] bytes)
        {
            try
            {
                logger.Info("开始解析事件数据");

                //获取xml
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.LoadXml(BitConverter.ToString(bytes, 4));

                string errMessage = "";
                int cameraid;
                int pictureid = 0;
                int eventid;
                int objid;
                DateTime timeid;
                XmlNodeList xml_cameras;
                xml_cameras = xmlDocument.SelectSingleNode("/pr/cameras").ChildNodes;
                foreach (XmlNode xmlItem in xml_cameras)
                {
                    XmlElement camera = (XmlElement)xmlItem;
                    cameraid = Convert.ToInt32(camera.GetAttribute("id"));
                    timeid = new DateTime(long.Parse(camera.GetAttribute("timeid")));
                    if (!CapturePictureBusiness.Instance.IsExistCapturePicture(ref errMessage,cameraid,timeid))
                    {
                        //将改图像从TempPicture表移动到CapturePicture//先获取临时图像GetTempPicture,再移动图像MoveTempPicture
                        //图像还在临时图像库中
                        TempPicture tempPicture = TempPictureBusiness.Instance.GetTempPicture(ref errMessage, cameraid, timeid);
                        string destFile = TempPictureBusiness.Instance.MoveTempPicture(ref errMessage, tempPicture);
                        CapturePicture capturePictureinsert = new CapturePicture() { CameraID = cameraid, Datetime = timeid, FilePath = destFile };
                        pictureid = CapturePictureBusiness.Instance.Insert(ref errMessage, capturePictureinsert);
                    }

                    CapturePicture oCapturePicture = CapturePictureBusiness.Instance.GetCapturePicture(ref errMessage, cameraid, timeid);

                    Event ev = new Event();
                    ev.CarNum = Convert.ToInt32(camera.GetAttribute("CarNum"));
                    ev.Congestion = Convert.ToInt32(camera.GetAttribute("Congestion"));
                    ev.PictureID = pictureid;
                    eventid = EventBusiness.Instance.Insert(ref errMessage, ev);

                    XmlNodeList objectlist = xmlItem.ChildNodes;
                    foreach (XmlNode xmlitem1 in objectlist)
                    {
                        XmlElement objecttarget = (XmlElement)xmlitem1;
                        ObjectInfo obj = new ObjectInfo();
                        if (Convert.ToInt32(objecttarget.GetAttribute("stop")) == 1)
                        {
                            obj.stop = true;
                        }
                        else
                        {
                            obj.stop = false;
                        }
                        if (Convert.ToInt32(objecttarget.GetAttribute("illegalDir")) == 1)
                        {
                            obj.illegalDir = true;
                        }
                        else
                        {
                            obj.illegalDir = false;
                        }
                        if (Convert.ToInt32(objecttarget.GetAttribute("CrossLine")) == 1)
                        {
                            obj.CrossLine = true;
                        }
                        else
                        {
                            obj.CrossLine = false;
                        }
                        if (Convert.ToInt32(objecttarget.GetAttribute("changeChannel")) == 1)
                        {
                            obj.changeChannel = true;
                        }
                        else
                        {
                            obj.changeChannel = false;
                        }
                        obj.EventId = eventid;
                        objid = ObjectBusiness.Instance.Insert(ref errMessage, obj);
                        foreach (XmlNode rectitem in objecttarget.ChildNodes)
                        {
                            XmlElement rectelement = (XmlElement)rectitem;
                            EventRect myrect = new EventRect();
                            myrect.x = Convert.ToInt32(rectelement.GetAttribute("x"));
                            myrect.y = Convert.ToInt32(rectelement.GetAttribute("y"));
                            myrect.w = Convert.ToInt32(rectelement.GetAttribute("w"));
                            myrect.h = Convert.ToInt32(rectelement.GetAttribute("h"));
                            myrect.ObjectId = objid;
                            EventRectBusiness.Instance.Insert(ref errMessage, myrect);
                        }
                    }

                }
                /*******************处理流程:

                 * 1)解析xml文件,获取cameraid和DateTime
                 * 2)根据cameraid和DateTime判断改图像是否已经进入CapturePicture表
                 * 3)如果是;转5;
                 * 4)如果否,将改图像从TempPicture表移动到CapturePicture//先获取临时图像GetTempPicture,再移动图像MoveTempPicture
                 * 5)识别结果入库
                 */

                logger.Info("结束解析事件数据");
            }
            catch (Exception ex)
            {
                logger.Error("解析事件数据错误:" + FromASCIIByteArray(bytes));
            }
        }
コード例 #4
0
        public static int Insert(Database db, Event oEvent)
        {
            StringBuilder sbField = new StringBuilder();
            StringBuilder sbValue = new StringBuilder();
            sbField.Append("INSERT INTO  [EventInfo](");
            sbValue.Append("values (");
            sbField.Append("[CarNum]");
            sbValue.AppendFormat("{0}", oEvent.CarNum);
            sbField.Append(",[Congestion]");
            sbValue.AppendFormat(",{0}", oEvent.Congestion);
            sbField.Append(",[PictureID])");
            sbValue.AppendFormat(",{0})", oEvent.PictureID);
            string cmdText = sbField.ToString() + " " + sbValue.ToString();

            try
            {
                cmdText = cmdText.Replace("\r\n", "");
                db.ExecuteNonQuery(CommandType.Text, cmdText);
                int id = int.Parse(db.ExecuteScalar(CommandType.Text, "SELECT     ident_current('EventInfo')").ToString());
                return id;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
コード例 #5
0
        public int Insert(ref string errMessage, Event oEvent)
        {
            Database db = DatabaseFactory.CreateDatabase();
            errMessage = "";
            try
            {
                return EventDataAccess.Insert(db, oEvent);

            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return -1;
            }
        }
コード例 #6
0
 private void advBandedGridViewEvent_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
 {
     if (advBandedGridViewEvent.SelectedRowsCount > 0)
     {
         int getSelectedRow = this.advBandedGridViewEvent.GetSelectedRows()[0];
         _selectedEvent = (Event)(this.advBandedGridViewEvent.GetRowCellValue(getSelectedRow, "�¼�����"));
         FillPicVideoEvent(_selectedEvent);
     }
 }
コード例 #7
0
 private void advBandedGridViewEvent_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
 {
     if (advBandedGridViewEvent.SelectedRowsCount > 0)
     {
         int getSelectedRow = this.advBandedGridViewEvent.GetSelectedRows()[0];
         _selectedEvent = (Event)(this.advBandedGridViewEvent.GetRowCellValue(getSelectedRow, "�¼�����"));
         FillPicVideoEvent(_selectedEvent);
     }
 }
コード例 #8
0
        private void FillPicVideoEvent(Event oevent)
        {
            if (File.Exists(oevent.CapturePicture.FilePath))
            {
                pictureEditVehicle.Image = Image.FromFile(oevent.CapturePicture.FilePath);
            }
            if (File.Exists(oevent.VideoInfo.FilePath))
            {
                if (_lastVideoPortEvent != -1)
                {
                    bool ret = HikPlayer.PlayM4_CloseFile(_lastVideoPortEvent);
                }
                if (File.Exists(oevent.VideoInfo.FilePath))
                {
                    _lastVideoPortEvent = 1;
                    splitContainerControlEventVideo.Visible = true;
                    HikPlayer.PlayM4_OpenFile(_lastVideoPortEvent, oevent.VideoInfo.FilePath);
                    HikPlayer.PlayM4_Play(_lastVideoPortEvent, splitContainerControlEventVideo.Panel1.Handle);
                }

            }
        }