Example #1
0
        public static BSTFaceRecg ToFaceController(Maticsoft.Model.SMT_FACERECG_DEVICE dev)
        {
            BSTFaceRecg bst = new BSTFaceRecg();

            bst.InitConfig(dev.FACEDEV_IP, dev.FACEDEV_CTRL_PORT, dev.FACEDEV_HEART_PORT, dev.FACEDEV_DB_PORT, dev.FACEDEV_DB_NAME, dev.FACEDEV_DB_USER, dev.FACEDEV_DB_PWD);
            return(bst);
        }
Example #2
0
 private void DoCheckedFace(Node node, List <Maticsoft.Model.SMT_ROLE_FUN> funs)
 {
     Maticsoft.Model.SMT_FACERECG_DEVICE fun = node.Tag as Maticsoft.Model.SMT_FACERECG_DEVICE;
     if (fun == null)
     {
         if (node.Nodes.Count > 0)
         {
             foreach (Node item in node.Nodes)
             {
                 DoCheckedFace(item, funs);
             }
         }
     }
     else
     {
         if (funs.Exists(m => m.FUN_ID == fun.ID))
         {
             node.Checked = true;
             node.EnsureVisible();
         }
         else
         {
             foreach (Node item in node.Nodes)
             {
                 DoCheckedFace(item, funs);
             }
         }
     }
 }
Example #3
0
        public static BSTVideoBase ToFaceVideo(Maticsoft.Model.SMT_FACERECG_DEVICE dev)
        {
            BSTVideoBase videoBase = null;

            if (dev.FVIDEO_RTSP_COUNT == 1)
            {
                videoBase = new BSTVideoRTSP();
                BSTVideoRTSP vv = (BSTVideoRTSP)videoBase;
                vv.RTSP = dev.FVIDEO_RTSP;
            }
            else
            {
                videoBase = new BSTVideoRTSP3();
                BSTVideoRTSP3 vv = (BSTVideoRTSP3)videoBase;
                vv.RTSP1 = dev.FVIDEO_RTSP;
                vv.RTSP2 = dev.FVIDEO_RTSP2;
                vv.RTSP3 = dev.FVIDEO_RTSP3;
            }
            videoBase.Face_LEVEL = dev.FVIDEO_FACE_LEVEL == null?"0.8":((decimal)dev.FVIDEO_FACE_LEVEL).ToString("0.00");
            videoBase.RIO_X      = dev.FVIDEO_RIO_X == null ? "0" : ((decimal)dev.FVIDEO_RIO_X).ToString("0.00");
            videoBase.RIO_Y      = dev.FVIDEO_RIO_Y == null ? "0" : ((decimal)dev.FVIDEO_RIO_Y).ToString("0.00");
            videoBase.RIO_W      = dev.FVIDEO_RIO_W == null ? "1" : ((decimal)dev.FVIDEO_RIO_W).ToString("0.00");
            videoBase.RIO_H      = dev.FVIDEO_RIO_H == null ? "1" : ((decimal)dev.FVIDEO_RIO_H).ToString("0.00");
            videoBase.SINGLE     = dev.FVIDEO_SINGLE;
            videoBase.TITLE1     = dev.FVIDEO_TITLE1;
            videoBase.TITLE2     = dev.FVIDEO_TITLE2;
            videoBase.HostIP     = dev.FACEDEV_IP;
            return(videoBase);
        }
Example #4
0
        private void UpdateRow(DataGridViewRow row, Maticsoft.Model.SMT_FACERECG_DEVICE dev)
        {
            if (dev == null)
            {
                return;
            }

            string videoState = "无视频";

            if (dev.FVIDEO_RTSP_COUNT != null)
            {
                if (dev.FVIDEO_RTSP_COUNT == 1 && !string.IsNullOrWhiteSpace(dev.FVIDEO_RTSP))
                {
                    videoState = "单路视频";
                }
                else if (dev.FVIDEO_RTSP_COUNT == 3 &&
                         !string.IsNullOrWhiteSpace(dev.FVIDEO_RTSP))
                {
                    videoState = "三路视频";
                }
            }

            row.Cells[0].Value = dev.FACEDEV_NAME;
            row.Cells[1].Value = dev.FACEDEV_SN;
            row.Cells[2].Value = dev.FACEDEV_IS_ENABLE ? "启用" : "禁用";
            row.Cells[3].Value = dev.FACEDEV_IP;
            row.Cells[4].Value = dev.FACEDEV_CTRL_PORT;
            row.Cells[5].Value = dev.AREA_NAME;
            row.Cells[6].Value = videoState;
            row.Tag            = dev;
        }
Example #5
0
        private void DoModify(DataGridViewRow row)
        {
            Maticsoft.Model.SMT_FACERECG_DEVICE dev = (Maticsoft.Model.SMT_FACERECG_DEVICE)row.Tag;
            FrmAddOrModifyFaceDev frmModify         = new FrmAddOrModifyFaceDev(dev);

            if (frmModify.ShowDialog(this) == DialogResult.OK)
            {
                UpdateRow(row, frmModify.Device);
            }
        }
        private List <Maticsoft.Model.SMT_FACERECG_DEVICE> GetSelect()
        {
            List <Maticsoft.Model.SMT_FACERECG_DEVICE> devs = new List <Maticsoft.Model.SMT_FACERECG_DEVICE>();

            foreach (DataGridViewRow item in dgvSelectDevice.Rows)
            {
                Node node = (Node)item.Tag;
                Maticsoft.Model.SMT_FACERECG_DEVICE dev = (Maticsoft.Model.SMT_FACERECG_DEVICE)node.Tag;
                devs.Add(dev);
            }
            return(devs);
        }
 public Maticsoft.Model.SMT_FACERECG_DEVICE DataRowToModelWithArea(DataRow row)
 {
     Maticsoft.Model.SMT_FACERECG_DEVICE model = DataRowToModel(row);
     if (row != null)
     {
         if (row["ZONE_NAME"] != null)
         {
             model.AREA_NAME = row["ZONE_NAME"].ToString();
         }
     }
     return(model);
 }
Example #8
0
 public FrmAddOrModifyFaceDev(Maticsoft.Model.SMT_FACERECG_DEVICE dev)
 {
     InitializeComponent();
     this._dev = dev;
     if (this._dev != null)
     {
         this.Text = "修改人脸识别设备";
     }
     else
     {
         this.Text = "添加人脸识别设备";
     }
 }
 /// <summary>
 /// 执行选择设备
 /// </summary>
 /// <param name="doors"></param>
 private void DoSelectDevices(List <Node> doors)
 {
     foreach (var item in doors)
     {
         Maticsoft.Model.SMT_FACERECG_DEVICE device = (Maticsoft.Model.SMT_FACERECG_DEVICE)item.Tag;
         DataGridViewRow row = new DataGridViewRow();
         row.CreateCells(dgvSelectDevice, device.FACEDEV_NAME, device.AREA_NAME);
         row.Tag = item;
         dgvSelectDevice.Rows.Add(row);
         item.DataKey = item.Parent;
         item.Remove();
     }
 }
Example #10
0
 private void DoDelete(DataGridViewRow row)
 {
     if (MessageBox.Show("确定删除该控制器?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
     {
         CtrlWaiting ctrlWaiting = new CtrlWaiting("正在删除中...", () =>
         {
             try
             {
                 Maticsoft.Model.SMT_FACERECG_DEVICE dev = (Maticsoft.Model.SMT_FACERECG_DEVICE)row.Tag;
                 DialogResult dr = DialogResult.No;
                 this.Invoke(new Action(() =>
                 {
                     dr = MessageBox.Show("是否清除该人脸识别设备权限?", "提示", MessageBoxButtons.YesNo);
                 }));
                 if (dr == DialogResult.Yes)
                 {
                     ThreadPool.QueueUserWorkItem(new WaitCallback((o) =>
                     {
                         try
                         {
                             BSTFaceRecg c = FaceRecgHelper.ToFaceController(dev);
                             c.ClearFaces();
                         }
                         catch (Exception ex)
                         {
                             WinInfoHelper.ShowInfoWindow(this, "权限清除异常,可能设备离线或者不存在:" + ex.Message);
                         }
                     }));
                     Thread.Sleep(1000);
                 }
                 Maticsoft.BLL.SMT_FACERECG_DEVICE ctrlBll = new Maticsoft.BLL.SMT_FACERECG_DEVICE();
                 ctrlBll.Delete(dev.ID);
                 //置门关联控制器为空
                 Maticsoft.DBUtility.DbHelperSQL.ExecuteSql("delete from SMT_STAFF_FACEDEV where FACEDEV_ID=" + dev.ID);
                 SmtLog.Info("设备", "人脸识别设备删除:" + dev.FACEDEV_IP + "," + dev.FACEDEV_NAME);
                 this.Invoke(new Action(() =>
                 {
                     dgvCtrlr.Rows.Remove(row);
                 }));
             }
             catch (System.Exception ex)
             {
                 log.Error("删除人脸识别设备异常:", ex);
                 WinInfoHelper.ShowInfoWindow(this, "删除失败:" + ex.Message);
             }
         });
         ctrlWaiting.Show(this);
     }
 }
Example #11
0
 private void faceDevTree_LoadEnded(object sender, EventArgs e)
 {
     if (_mapInfo != null && _mapInfo.MAP_DOORS != null && _mapInfo.MAP_DOORS.Count > 0)
     {
         var nodes = this.faceDevTree.Tree.GetNodeList(typeof(Maticsoft.Model.SMT_FACERECG_DEVICE));
         _selectNodes = nodes.FindAll(m =>
         {
             Maticsoft.Model.SMT_FACERECG_DEVICE di = (Maticsoft.Model.SMT_FACERECG_DEVICE)m.Tag;
             return(_mapInfo.MAP_DOORS.Exists(n => n.DOOR_ID == di.ID && n.DOOR_TYPE == 2));
         });
         foreach (var item in _selectNodes)
         {
             item.DataKey = item.Parent;
             item.Remove();
         }
     }
 }
Example #12
0
        private string GetDevText(Maticsoft.Model.SMT_FACERECG_DEVICE dev, bool isdetect = false)
        {
            string text = dev.FACEDEV_NAME;

            if (!dev.FACEDEV_IS_ENABLE)
            {
                text += "(禁用)";
            }
            else
            {
                if (isdetect)
                {
                    text += "(监控中)";
                }
            }
            return(text);
        }
Example #13
0
 private void ShowFaceStaffInfo(Maticsoft.Model.SMT_FACERECG_DEVICE dev, Maticsoft.Model.BST.staff_log slog, DateTime time)
 {
     if (slog == null)
     {
         return;
     }
     try
     {
         if (picBox.Image != null)
         {
             picBox.Image.Dispose();
             picBox.Image = null;
         }
         if (picBox2.Image != null)
         {
             picBox2.Image.Dispose();
             picBox2.Image = null;
         }
         if (slog.imagesql != null && slog.imagesql.Length > 0)
         {
             MemoryStream ms     = new MemoryStream(slog.imagesql);
             Image        bitmap = Image.FromStream(ms);
             picBox.Image = bitmap;
         }
         if (slog.imagevideo != null && slog.imagevideo.Length > 0)
         {
             MemoryStream ms     = new MemoryStream(slog.imagevideo);
             Image        bitmap = Image.FromStream(ms);
             picBox2.Image = bitmap;
         }
         lbStaffName.Text = slog.name + "(" + slog.data_keepon1 + ")";
         lbDeptName.Text  = slog.data_keepon2;
         lbTime.Text      = time.ToString();
         lbDoorName.Text  = dev.FACEDEV_NAME + "(人脸)";
         lbAction.Text    = "人脸识别通过";
         double res = 0.0;
         double.TryParse(slog.info, out res);
         lbLevel.Text = (res * 100).ToString(".00") + "%";
     }
     catch (Exception ex)
     {
         log.Error("显示人脸信息异常:", ex);
     }
 }
Example #14
0
        private List <Maticsoft.Model.SMT_FACERECG_DEVICE> GetSelectDevs()
        {
            List <Maticsoft.Model.SMT_FACERECG_DEVICE> devs = new List <Maticsoft.Model.SMT_FACERECG_DEVICE>();

            if (listViewFaceDev.SelectedItems.Count == 0)
            {
                return(devs);
            }

            foreach (ListViewItem item in listViewFaceDev.SelectedItems)
            {
                Maticsoft.Model.SMT_FACERECG_DEVICE d = (Maticsoft.Model.SMT_FACERECG_DEVICE)item.Tag;
                if (d.FACEDEV_IS_ENABLE)
                {
                    devs.Add(d);
                }
            }
            return(devs);
        }
Example #15
0
 private void biStop_Click(object sender, EventArgs e)
 {
     UploadPrivate.WatchService.ClearControllers(this.GetType().FullName);
     UploadPrivate.FaceWatchService.ClearControllers(this.GetType().FullName);
     foreach (var item in _lastDetectDoorItems)
     {
         Maticsoft.Model.SMT_DOOR_INFO d = (Maticsoft.Model.SMT_DOOR_INFO)item.Tag;
         item.Text = GetDoorText(d, false);
     }
     foreach (var item in _lastDetectFaceDevItems)
     {
         Maticsoft.Model.SMT_FACERECG_DEVICE d = (Maticsoft.Model.SMT_FACERECG_DEVICE)item.Tag;
         item.Text = GetDevText(d, false);
     }
     biRealDetect.Text = "实时监控";
     _lastDetectDoorItems.Clear();
     _lastDetectFaceDevItems.Clear();
     biRealDetect.Enabled = true;
 }
Example #16
0
 private void AddFaceWatchData(BSTDevice dev, bool connected, Maticsoft.Model.BST.staff_log log)
 {
     this.Invoke(new Action(() =>
     {
         foreach (ListViewItem item in _lastDetectFaceDevItems)
         {
             Maticsoft.Model.SMT_FACERECG_DEVICE fdev = (Maticsoft.Model.SMT_FACERECG_DEVICE)item.Tag;
             if (fdev.FACEDEV_IS_ENABLE && fdev.ID == dev._id)
             {
                 DateTime dt = DateTime.Now;
                 string desc = "";
                 if (log != null)
                 {
                     string time = log.id.Substring(0, "yyyy/MM/dd_HH:mm:ss".Length).Replace('_', ' ');
                     DateTime.TryParse(time, out dt);
                     desc = "人脸识别通过:" + log.info;
                 }
                 else
                 {
                     desc = "人脸识别设备:" + (connected?"上线":"掉线");
                 }
                 DataGridViewRow row = new DataGridViewRow();
                 row.CreateCells(dgvRealLog, dt, fdev.FACEDEV_NAME + "(人脸)", desc);
                 dgvRealLog.Rows.Insert(0, row);
                 row.Tag = new object[] { fdev, log, dt };
                 ShowFaceStaffInfo(fdev, log, dt);
                 while (dgvRealLog.Rows.Count > 2000)
                 {
                     dgvRealLog.Rows.RemoveAt(dgvRealLog.Rows.Count - 1);
                 }
             }
         }
         foreach (DataGridViewRow item in dgvRealLog.SelectedRows)
         {
             item.Selected = false;
         }
         if (dgvRealLog.Rows.Count > 0)
         {
             dgvRealLog.Rows[0].Selected = true;
         }
     }));
 }
Example #17
0
        private void AddRow(Maticsoft.Model.SMT_FACERECG_DEVICE dev, string filter = null)
        {
            if (!string.IsNullOrWhiteSpace(filter))
            {
                string str = dev.FACEDEV_NAME + " " + dev.FACEDEV_SN + " " + dev.FACEDEV_IP + " " + dev.AREA_NAME;
                if (!str.Contains(filter.Trim()))
                {
                    return;
                }
            }
            string videoState = "无视频";

            if (dev.FVIDEO_RTSP_COUNT != null)
            {
                if (dev.FVIDEO_RTSP_COUNT == 1 && !string.IsNullOrWhiteSpace(dev.FVIDEO_RTSP))
                {
                    videoState = "单路视频";
                }
                else if (dev.FVIDEO_RTSP_COUNT == 3 &&
                         !string.IsNullOrWhiteSpace(dev.FVIDEO_RTSP))
                {
                    videoState = "三路视频";
                }
            }
            DataGridViewRow row = new DataGridViewRow();

            row.CreateCells(dgvCtrlr,
                            dev.FACEDEV_NAME,
                            dev.FACEDEV_SN,
                            dev.FACEDEV_IS_ENABLE?"启用":"禁用",
                            dev.FACEDEV_IP,
                            dev.FACEDEV_CTRL_PORT,
                            dev.AREA_NAME,
                            videoState,
                            "修改",
                            "删除"
                            );
            row.Tag = dev;
            dgvCtrlr.Rows.Add(row);
        }
Example #18
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Maticsoft.Model.SMT_FACERECG_DEVICE GetModel(decimal ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 ID,FACEDEV_SN,FACEDEV_NAME,FACEDEV_IP,FACEDEV_CTRL_PORT,FACEDEV_USER,FACEDEV_PWD,FACEDEV_DB_NAME,FACEDEV_DB_PORT,FACEDEV_DB_USER,FACEDEV_DB_PWD,AREA_ID,FACEDEV_IS_ENABLE,FACEDEV_HEART_PORT,FACEDEV_MODE,FVIDEO_RTSP,FVIDEO_RTSP2,FVIDEO_RTSP3,FVIDEO_RTSP_COUNT,FVIDEO_FACE_LEVEL,FVIDEO_RIO_X,FVIDEO_RIO_Y,FVIDEO_RIO_H,FVIDEO_RIO_W,FVIDEO_SINGLE,FVIDEO_TITLE1,FVIDEO_TITLE2 from SMT_FACERECG_DEVICE ");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ID", SqlDbType.Decimal)
            };
            parameters[0].Value = ID;

            Maticsoft.Model.SMT_FACERECG_DEVICE model = new Maticsoft.Model.SMT_FACERECG_DEVICE();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Example #19
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public decimal Add(Maticsoft.Model.SMT_FACERECG_DEVICE model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into SMT_FACERECG_DEVICE(");
            strSql.Append("FACEDEV_SN,FACEDEV_NAME,FACEDEV_IP,FACEDEV_CTRL_PORT,FACEDEV_USER,FACEDEV_PWD,FACEDEV_DB_NAME,FACEDEV_DB_PORT,FACEDEV_DB_USER,FACEDEV_DB_PWD,AREA_ID,FACEDEV_IS_ENABLE,FACEDEV_HEART_PORT,FACEDEV_MODE,FVIDEO_RTSP,FVIDEO_RTSP2,FVIDEO_RTSP3,FVIDEO_RTSP_COUNT,FVIDEO_FACE_LEVEL,FVIDEO_RIO_X,FVIDEO_RIO_Y,FVIDEO_RIO_H,FVIDEO_RIO_W,FVIDEO_SINGLE,FVIDEO_TITLE1,FVIDEO_TITLE2)");
            strSql.Append(" values (");
            strSql.Append("@FACEDEV_SN,@FACEDEV_NAME,@FACEDEV_IP,@FACEDEV_CTRL_PORT,@FACEDEV_USER,@FACEDEV_PWD,@FACEDEV_DB_NAME,@FACEDEV_DB_PORT,@FACEDEV_DB_USER,@FACEDEV_DB_PWD,@AREA_ID,@FACEDEV_IS_ENABLE,@FACEDEV_HEART_PORT,@FACEDEV_MODE,@FVIDEO_RTSP,@FVIDEO_RTSP2,@FVIDEO_RTSP3,@FVIDEO_RTSP_COUNT,@FVIDEO_FACE_LEVEL,@FVIDEO_RIO_X,@FVIDEO_RIO_Y,@FVIDEO_RIO_H,@FVIDEO_RIO_W,@FVIDEO_SINGLE,@FVIDEO_TITLE1,@FVIDEO_TITLE2)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@FACEDEV_SN",         SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_NAME",       SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_IP",         SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_CTRL_PORT",  SqlDbType.Int,        4),
                new SqlParameter("@FACEDEV_USER",       SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_PWD",        SqlDbType.NVarChar, 128),
                new SqlParameter("@FACEDEV_DB_NAME",    SqlDbType.VarChar,   50),
                new SqlParameter("@FACEDEV_DB_PORT",    SqlDbType.Int,        4),
                new SqlParameter("@FACEDEV_DB_USER",    SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_DB_PWD",     SqlDbType.NVarChar, 128),
                new SqlParameter("@AREA_ID",            SqlDbType.Decimal,    9),
                new SqlParameter("@FACEDEV_IS_ENABLE",  SqlDbType.Bit,        1),
                new SqlParameter("@FACEDEV_HEART_PORT", SqlDbType.Int,        4),
                new SqlParameter("@FACEDEV_MODE",       SqlDbType.NVarChar,  20),
                new SqlParameter("@FVIDEO_RTSP",        SqlDbType.NVarChar, 300),
                new SqlParameter("@FVIDEO_RTSP2",       SqlDbType.NVarChar, 300),
                new SqlParameter("@FVIDEO_RTSP3",       SqlDbType.NVarChar, 300),
                new SqlParameter("@FVIDEO_RTSP_COUNT",  SqlDbType.Int,        4),
                new SqlParameter("@FVIDEO_FACE_LEVEL",  SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_RIO_X",       SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_RIO_Y",       SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_RIO_H",       SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_RIO_W",       SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_SINGLE",      SqlDbType.VarChar,    2),
                new SqlParameter("@FVIDEO_TITLE1",      SqlDbType.NVarChar,  50),
                new SqlParameter("@FVIDEO_TITLE2",      SqlDbType.NVarChar, 50)
            };
            parameters[0].Value  = model.FACEDEV_SN;
            parameters[1].Value  = model.FACEDEV_NAME;
            parameters[2].Value  = model.FACEDEV_IP;
            parameters[3].Value  = model.FACEDEV_CTRL_PORT;
            parameters[4].Value  = model.FACEDEV_USER;
            parameters[5].Value  = model.FACEDEV_PWD;
            parameters[6].Value  = model.FACEDEV_DB_NAME;
            parameters[7].Value  = model.FACEDEV_DB_PORT;
            parameters[8].Value  = model.FACEDEV_DB_USER;
            parameters[9].Value  = model.FACEDEV_DB_PWD;
            parameters[10].Value = model.AREA_ID;
            parameters[11].Value = model.FACEDEV_IS_ENABLE;
            parameters[12].Value = model.FACEDEV_HEART_PORT;
            parameters[13].Value = model.FACEDEV_MODE;
            parameters[14].Value = model.FVIDEO_RTSP;
            parameters[15].Value = model.FVIDEO_RTSP2;
            parameters[16].Value = model.FVIDEO_RTSP3;
            parameters[17].Value = model.FVIDEO_RTSP_COUNT;
            parameters[18].Value = model.FVIDEO_FACE_LEVEL;
            parameters[19].Value = model.FVIDEO_RIO_X;
            parameters[20].Value = model.FVIDEO_RIO_Y;
            parameters[21].Value = model.FVIDEO_RIO_H;
            parameters[22].Value = model.FVIDEO_RIO_W;
            parameters[23].Value = model.FVIDEO_SINGLE;
            parameters[24].Value = model.FVIDEO_TITLE1;
            parameters[25].Value = model.FVIDEO_TITLE2;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToDecimal(obj));
            }
        }
Example #20
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public Maticsoft.Model.SMT_FACERECG_DEVICE DataRowToModel(DataRow row)
 {
     Maticsoft.Model.SMT_FACERECG_DEVICE model = new Maticsoft.Model.SMT_FACERECG_DEVICE();
     if (row != null)
     {
         if (row["ID"] != null && row["ID"].ToString() != "")
         {
             model.ID = decimal.Parse(row["ID"].ToString());
         }
         if (row["FACEDEV_SN"] != null)
         {
             model.FACEDEV_SN = row["FACEDEV_SN"].ToString();
         }
         if (row["FACEDEV_NAME"] != null)
         {
             model.FACEDEV_NAME = row["FACEDEV_NAME"].ToString();
         }
         if (row["FACEDEV_IP"] != null)
         {
             model.FACEDEV_IP = row["FACEDEV_IP"].ToString();
         }
         if (row["FACEDEV_CTRL_PORT"] != null && row["FACEDEV_CTRL_PORT"].ToString() != "")
         {
             model.FACEDEV_CTRL_PORT = int.Parse(row["FACEDEV_CTRL_PORT"].ToString());
         }
         if (row["FACEDEV_USER"] != null)
         {
             model.FACEDEV_USER = row["FACEDEV_USER"].ToString();
         }
         if (row["FACEDEV_PWD"] != null)
         {
             model.FACEDEV_PWD = row["FACEDEV_PWD"].ToString();
         }
         if (row["FACEDEV_DB_NAME"] != null)
         {
             model.FACEDEV_DB_NAME = row["FACEDEV_DB_NAME"].ToString();
         }
         if (row["FACEDEV_DB_PORT"] != null && row["FACEDEV_DB_PORT"].ToString() != "")
         {
             model.FACEDEV_DB_PORT = int.Parse(row["FACEDEV_DB_PORT"].ToString());
         }
         if (row["FACEDEV_DB_USER"] != null)
         {
             model.FACEDEV_DB_USER = row["FACEDEV_DB_USER"].ToString();
         }
         if (row["FACEDEV_DB_PWD"] != null)
         {
             model.FACEDEV_DB_PWD = row["FACEDEV_DB_PWD"].ToString();
         }
         if (row["AREA_ID"] != null && row["AREA_ID"].ToString() != "")
         {
             model.AREA_ID = decimal.Parse(row["AREA_ID"].ToString());
         }
         if (row["FACEDEV_IS_ENABLE"] != null && row["FACEDEV_IS_ENABLE"].ToString() != "")
         {
             if ((row["FACEDEV_IS_ENABLE"].ToString() == "1") || (row["FACEDEV_IS_ENABLE"].ToString().ToLower() == "true"))
             {
                 model.FACEDEV_IS_ENABLE = true;
             }
             else
             {
                 model.FACEDEV_IS_ENABLE = false;
             }
         }
         if (row["FACEDEV_HEART_PORT"] != null && row["FACEDEV_HEART_PORT"].ToString() != "")
         {
             model.FACEDEV_HEART_PORT = int.Parse(row["FACEDEV_HEART_PORT"].ToString());
         }
         if (row["FACEDEV_MODE"] != null)
         {
             model.FACEDEV_MODE = row["FACEDEV_MODE"].ToString();
         }
         if (row["FVIDEO_RTSP"] != null)
         {
             model.FVIDEO_RTSP = row["FVIDEO_RTSP"].ToString();
         }
         if (row["FVIDEO_RTSP2"] != null)
         {
             model.FVIDEO_RTSP2 = row["FVIDEO_RTSP2"].ToString();
         }
         if (row["FVIDEO_RTSP3"] != null)
         {
             model.FVIDEO_RTSP3 = row["FVIDEO_RTSP3"].ToString();
         }
         if (row["FVIDEO_RTSP_COUNT"] != null && row["FVIDEO_RTSP_COUNT"].ToString() != "")
         {
             model.FVIDEO_RTSP_COUNT = int.Parse(row["FVIDEO_RTSP_COUNT"].ToString());
         }
         if (row["FVIDEO_FACE_LEVEL"] != null && row["FVIDEO_FACE_LEVEL"].ToString() != "")
         {
             model.FVIDEO_FACE_LEVEL = decimal.Parse(row["FVIDEO_FACE_LEVEL"].ToString());
         }
         if (row["FVIDEO_RIO_X"] != null && row["FVIDEO_RIO_X"].ToString() != "")
         {
             model.FVIDEO_RIO_X = decimal.Parse(row["FVIDEO_RIO_X"].ToString());
         }
         if (row["FVIDEO_RIO_Y"] != null && row["FVIDEO_RIO_Y"].ToString() != "")
         {
             model.FVIDEO_RIO_Y = decimal.Parse(row["FVIDEO_RIO_Y"].ToString());
         }
         if (row["FVIDEO_RIO_H"] != null && row["FVIDEO_RIO_H"].ToString() != "")
         {
             model.FVIDEO_RIO_H = decimal.Parse(row["FVIDEO_RIO_H"].ToString());
         }
         if (row["FVIDEO_RIO_W"] != null && row["FVIDEO_RIO_W"].ToString() != "")
         {
             model.FVIDEO_RIO_W = decimal.Parse(row["FVIDEO_RIO_W"].ToString());
         }
         if (row["FVIDEO_SINGLE"] != null)
         {
             model.FVIDEO_SINGLE = row["FVIDEO_SINGLE"].ToString();
         }
         if (row["FVIDEO_TITLE1"] != null)
         {
             model.FVIDEO_TITLE1 = row["FVIDEO_TITLE1"].ToString();
         }
         if (row["FVIDEO_TITLE2"] != null)
         {
             model.FVIDEO_TITLE2 = row["FVIDEO_TITLE2"].ToString();
         }
     }
     return(model);
 }
Example #21
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Maticsoft.Model.SMT_FACERECG_DEVICE model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update SMT_FACERECG_DEVICE set ");
            strSql.Append("FACEDEV_SN=@FACEDEV_SN,");
            strSql.Append("FACEDEV_NAME=@FACEDEV_NAME,");
            strSql.Append("FACEDEV_IP=@FACEDEV_IP,");
            strSql.Append("FACEDEV_CTRL_PORT=@FACEDEV_CTRL_PORT,");
            strSql.Append("FACEDEV_USER=@FACEDEV_USER,");
            strSql.Append("FACEDEV_PWD=@FACEDEV_PWD,");
            strSql.Append("FACEDEV_DB_NAME=@FACEDEV_DB_NAME,");
            strSql.Append("FACEDEV_DB_PORT=@FACEDEV_DB_PORT,");
            strSql.Append("FACEDEV_DB_USER=@FACEDEV_DB_USER,");
            strSql.Append("FACEDEV_DB_PWD=@FACEDEV_DB_PWD,");
            strSql.Append("AREA_ID=@AREA_ID,");
            strSql.Append("FACEDEV_IS_ENABLE=@FACEDEV_IS_ENABLE,");
            strSql.Append("FACEDEV_HEART_PORT=@FACEDEV_HEART_PORT,");
            strSql.Append("FACEDEV_MODE=@FACEDEV_MODE,");
            strSql.Append("FVIDEO_RTSP=@FVIDEO_RTSP,");
            strSql.Append("FVIDEO_RTSP2=@FVIDEO_RTSP2,");
            strSql.Append("FVIDEO_RTSP3=@FVIDEO_RTSP3,");
            strSql.Append("FVIDEO_RTSP_COUNT=@FVIDEO_RTSP_COUNT,");
            strSql.Append("FVIDEO_FACE_LEVEL=@FVIDEO_FACE_LEVEL,");
            strSql.Append("FVIDEO_RIO_X=@FVIDEO_RIO_X,");
            strSql.Append("FVIDEO_RIO_Y=@FVIDEO_RIO_Y,");
            strSql.Append("FVIDEO_RIO_H=@FVIDEO_RIO_H,");
            strSql.Append("FVIDEO_RIO_W=@FVIDEO_RIO_W,");
            strSql.Append("FVIDEO_SINGLE=@FVIDEO_SINGLE,");
            strSql.Append("FVIDEO_TITLE1=@FVIDEO_TITLE1,");
            strSql.Append("FVIDEO_TITLE2=@FVIDEO_TITLE2");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@FACEDEV_SN",         SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_NAME",       SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_IP",         SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_CTRL_PORT",  SqlDbType.Int,        4),
                new SqlParameter("@FACEDEV_USER",       SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_PWD",        SqlDbType.NVarChar, 128),
                new SqlParameter("@FACEDEV_DB_NAME",    SqlDbType.VarChar,   50),
                new SqlParameter("@FACEDEV_DB_PORT",    SqlDbType.Int,        4),
                new SqlParameter("@FACEDEV_DB_USER",    SqlDbType.NVarChar,  20),
                new SqlParameter("@FACEDEV_DB_PWD",     SqlDbType.NVarChar, 128),
                new SqlParameter("@AREA_ID",            SqlDbType.Decimal,    9),
                new SqlParameter("@FACEDEV_IS_ENABLE",  SqlDbType.Bit,        1),
                new SqlParameter("@FACEDEV_HEART_PORT", SqlDbType.Int,        4),
                new SqlParameter("@FACEDEV_MODE",       SqlDbType.NVarChar,  20),
                new SqlParameter("@FVIDEO_RTSP",        SqlDbType.NVarChar, 300),
                new SqlParameter("@FVIDEO_RTSP2",       SqlDbType.NVarChar, 300),
                new SqlParameter("@FVIDEO_RTSP3",       SqlDbType.NVarChar, 300),
                new SqlParameter("@FVIDEO_RTSP_COUNT",  SqlDbType.Int,        4),
                new SqlParameter("@FVIDEO_FACE_LEVEL",  SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_RIO_X",       SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_RIO_Y",       SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_RIO_H",       SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_RIO_W",       SqlDbType.Decimal,    5),
                new SqlParameter("@FVIDEO_SINGLE",      SqlDbType.VarChar,    2),
                new SqlParameter("@FVIDEO_TITLE1",      SqlDbType.NVarChar,  50),
                new SqlParameter("@FVIDEO_TITLE2",      SqlDbType.NVarChar,  50),
                new SqlParameter("@ID",                 SqlDbType.Decimal, 9)
            };
            parameters[0].Value  = model.FACEDEV_SN;
            parameters[1].Value  = model.FACEDEV_NAME;
            parameters[2].Value  = model.FACEDEV_IP;
            parameters[3].Value  = model.FACEDEV_CTRL_PORT;
            parameters[4].Value  = model.FACEDEV_USER;
            parameters[5].Value  = model.FACEDEV_PWD;
            parameters[6].Value  = model.FACEDEV_DB_NAME;
            parameters[7].Value  = model.FACEDEV_DB_PORT;
            parameters[8].Value  = model.FACEDEV_DB_USER;
            parameters[9].Value  = model.FACEDEV_DB_PWD;
            parameters[10].Value = model.AREA_ID;
            parameters[11].Value = model.FACEDEV_IS_ENABLE;
            parameters[12].Value = model.FACEDEV_HEART_PORT;
            parameters[13].Value = model.FACEDEV_MODE;
            parameters[14].Value = model.FVIDEO_RTSP;
            parameters[15].Value = model.FVIDEO_RTSP2;
            parameters[16].Value = model.FVIDEO_RTSP3;
            parameters[17].Value = model.FVIDEO_RTSP_COUNT;
            parameters[18].Value = model.FVIDEO_FACE_LEVEL;
            parameters[19].Value = model.FVIDEO_RIO_X;
            parameters[20].Value = model.FVIDEO_RIO_Y;
            parameters[21].Value = model.FVIDEO_RIO_H;
            parameters[22].Value = model.FVIDEO_RIO_W;
            parameters[23].Value = model.FVIDEO_SINGLE;
            parameters[24].Value = model.FVIDEO_TITLE1;
            parameters[25].Value = model.FVIDEO_TITLE2;
            parameters[26].Value = model.ID;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #22
0
 public FaceRecordTask(Maticsoft.Model.SMT_FACERECG_DEVICE dev)
 {
     _dev = dev;
 }
Example #23
0
        private void biRealDetect_Click(object sender, EventArgs e)
        {
            List <Maticsoft.Model.SMT_DOOR_INFO>       doors = GetSelectDoors();
            List <Maticsoft.Model.SMT_FACERECG_DEVICE> devs  = GetSelectDevs();

            #region 门禁
            if (doors.Count == 0 && devs.Count == 0)
            {
                WinInfoHelper.ShowInfoWindow(this, "请选择设备!");
                return;
            }
            if (doors.Count > 0)
            {
                _lastDetectDoorItems.Clear();
                foreach (ListViewItem item in listDoors.SelectedItems)
                {
                    Maticsoft.Model.SMT_DOOR_INFO d = (Maticsoft.Model.SMT_DOOR_INFO)item.Tag;
                    if (d.IS_ENABLE)
                    {
                        _lastDetectDoorItems.Add(item);
                    }
                }
                List <decimal> ctrIds = GetSelectCtrlIDs(doors);

                CtrlWaiting waiting = new CtrlWaiting(() =>
                {
                    var models = GetSelectCtrls(ctrIds);
                    if (models.Count == 0)
                    {
                        WinInfoHelper.ShowInfoWindow(this, "未找到控制器!");
                        return;
                    }
                    foreach (var item in models)
                    {
                        UploadPrivate.WatchService.AddController(ControllerHelper.ToController(item), ControllerStateCallBack, this.GetType().FullName);
                    }
                    this.Invoke(new Action(() =>
                    {
                        biRealDetect.Text = "增加监控(实时监控中...)";
                        foreach (var item in _lastDetectDoorItems)
                        {
                            Maticsoft.Model.SMT_DOOR_INFO d = (Maticsoft.Model.SMT_DOOR_INFO)item.Tag;
                            item.Text = GetDoorText(d, true);
                        }
                    }));
                });
                waiting.Show(this);
            }
            #endregion

            #region 人脸
            if (devs.Count > 0)
            {
                _lastDetectFaceDevItems.Clear();
                foreach (ListViewItem item in listViewFaceDev.SelectedItems)
                {
                    Maticsoft.Model.SMT_FACERECG_DEVICE d = (Maticsoft.Model.SMT_FACERECG_DEVICE)item.Tag;
                    if (d.FACEDEV_IS_ENABLE)
                    {
                        _lastDetectFaceDevItems.Add(item);
                    }
                }

                CtrlWaiting waiting1 = new CtrlWaiting(() =>
                {
                    foreach (var item in devs)
                    {
                        UploadPrivate.FaceWatchService.AddController(new BSTDevice()
                        {
                            _id = item.ID, _ip = item.FACEDEV_IP, _dbName = item.FACEDEV_DB_NAME, _dbPort = item.FACEDEV_DB_PORT, _dbPwd = item.FACEDEV_DB_PWD, _dbUser = item.FACEDEV_DB_USER, _heartPort = item.FACEDEV_HEART_PORT, _port = item.FACEDEV_CTRL_PORT
                        }, FaceStateCallback, this.GetType().FullName);
                    }
                    this.Invoke(new Action(() =>
                    {
                        biRealDetect.Text = "增加监控(实时监控中...)";
                        foreach (var item in _lastDetectFaceDevItems)
                        {
                            Maticsoft.Model.SMT_FACERECG_DEVICE d = (Maticsoft.Model.SMT_FACERECG_DEVICE)item.Tag;
                            item.Text = GetDevText(d, true);
                        }
                    }));
                });
                waiting1.Show(this);
            }
            #endregion
        }
Example #24
0
        private void Save(bool isupload)
        {
            if (!CheckInput())
            {
                return;
            }
            try
            {
                Maticsoft.Model.SMT_FACERECG_DEVICE devInfo = new Maticsoft.Model.SMT_FACERECG_DEVICE();
                if (_dev != null)
                {
                    devInfo.ID = _dev.ID;
                }
                else
                {
                    devInfo.ID = -1;
                }
                if (string.IsNullOrWhiteSpace(tbName.Text))
                {
                    devInfo.FACEDEV_NAME = ipDevIp.Value;
                }
                else
                {
                    devInfo.FACEDEV_NAME = tbName.Text;
                }

                devInfo.FACEDEV_IS_ENABLE  = cbIsEnable.Checked;
                devInfo.FACEDEV_SN         = tbDevSn.Text;
                devInfo.FACEDEV_IP         = ipDevIp.Value;
                devInfo.FACEDEV_CTRL_PORT  = iiDevCtrlPort.Value;
                devInfo.FACEDEV_HEART_PORT = iiDevHeartPort.Value;
                devInfo.FACEDEV_DB_PORT    = iiDbPort.Value;
                devInfo.FACEDEV_DB_NAME    = tbDbName.Text;
                devInfo.FACEDEV_DB_USER    = tbDbUserName.Text;
                devInfo.FACEDEV_DB_PWD     = tbDbPassword.Text;
                devInfo.FVIDEO_RTSP_COUNT  = cbVideoCount1.Checked ? 1 : 3;
                devInfo.FVIDEO_RTSP        = tbRtsp1.Text;
                devInfo.FVIDEO_RTSP2       = tbRtsp2.Text;
                devInfo.FVIDEO_RTSP3       = tbRtsp3.Text;
                devInfo.FVIDEO_FACE_LEVEL  = (decimal)diFaceLevel.Value;
                devInfo.FVIDEO_RIO_X       = (decimal)diRIO_X.Value;
                devInfo.FVIDEO_RIO_Y       = (decimal)diRIO_Y.Value;
                devInfo.FVIDEO_RIO_W       = (decimal)diRIO_W.Value;
                devInfo.FVIDEO_RIO_H       = (decimal)diRIO_H.Value;
                devInfo.FVIDEO_SINGLE      = cbModelSingle.Checked ? "Y" : "N";
                devInfo.FVIDEO_TITLE1      = tbDevTitle1.Text;
                devInfo.FVIDEO_TITLE2      = tbDevTitle2.Text;
                devInfo.AREA_ID            = -1;
                if (cboTreeArea.SelectedNode != null && cboTreeArea.SelectedNode.Tag is Maticsoft.Model.SMT_CONTROLLER_ZONE)
                {
                    var area = cboTreeArea.SelectedNode.Tag as Maticsoft.Model.SMT_CONTROLLER_ZONE;
                    devInfo.AREA_ID   = area.ID;
                    devInfo.AREA_NAME = area.ZONE_NAME;
                }

                CtrlWaiting waiting = new CtrlWaiting(() =>
                {
                    try
                    {
                        Maticsoft.BLL.SMT_FACERECG_DEVICE bllDev = new Maticsoft.BLL.SMT_FACERECG_DEVICE();
                        if (devInfo.ID == -1)
                        {
                            var models = bllDev.GetModelList("FACEDEV_IP='" + devInfo.FACEDEV_IP + "'");
                            if (models.Count > 0)
                            {
                                WinInfoHelper.ShowInfoWindow(this, "已存在IP为:" + devInfo.FACEDEV_IP + "的设备!");
                                return;
                            }
                            devInfo.ID = bllDev.Add(devInfo);
                        }
                        else
                        {
                            var models = bllDev.GetModelList("FACEDEV_IP='" + devInfo.FACEDEV_IP + "' and ID != " + devInfo.ID);
                            if (models.Count > 0)
                            {
                                WinInfoHelper.ShowInfoWindow(this, "已存在IP为:" + devInfo.FACEDEV_IP + "的设备!");
                                return;
                            }
                            bllDev.Update(devInfo);
                        }
                        _dev = devInfo;
                        if (isupload)
                        {
                            try
                            {
                                using (var faceRecg = FaceRecgHelper.ToFaceController(devInfo))
                                {
                                    var video = FaceRecgHelper.ToFaceVideo(devInfo);
                                    bool ret  = faceRecg.SetVideo(video);
                                    if (!ret)
                                    {
                                        WinInfoHelper.ShowInfoWindow(null, "上传视频设置失败!");
                                    }
                                    else if (!devInfo.FACEDEV_IS_ENABLE)
                                    {
                                        faceRecg.ClearFaces();
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                WinInfoHelper.ShowInfoWindow(null, "上传视频设置失败:" + ex.Message);
                            }
                        }

                        WinInfoHelper.ShowInfoWindow(null, "保存成功。");

                        this.BeginInvoke(new Action(() =>
                        {
                            this.DialogResult = DialogResult.OK;
                            this.Close();
                        }));
                    }
                    catch (Exception ex)
                    {
                        WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                        log.Error("保存异常:" + ex.Message, ex);
                    }
                });
                waiting.Show(this);
            }
            catch (Exception ex)
            {
                WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message);
                log.Error("保存异常:" + ex.Message, ex);
            }
        }
Example #25
0
        public void AddDoorInfo(Maticsoft.Model.SMT_DOOR_INFO doorInfo, Maticsoft.Model.SMT_FACERECG_DEVICE faceDevInfo, Point ctrlPoint)
        {
            decimal id       = 0;
            int     type     = 1;
            string  doorname = "";

            if (doorInfo != null)
            {
                id       = doorInfo.ID;
                type     = 1;
                doorname = doorInfo.DOOR_NAME;
            }
            else if (faceDevInfo != null)
            {
                id       = faceDevInfo.ID;
                type     = 2;
                doorname = faceDevInfo.FACEDEV_NAME;
            }
            else
            {
                return;
            }

            if (_doors.Exists(m => m.Id == id && m.DoorType == type))
            {
                return;
            }
            DoorRectangle dr = new DoorRectangle();

            dr.Id         = id;
            dr.DoorType   = type;
            dr.DoorName   = doorname;
            dr.IsOnline   = true;
            dr.IsOpen     = false;
            dr.IsSelected = false;
            PointF pf = ToExtentPoint(ctrlPoint);

            dr.RatioX      = pf.X;
            dr.RatioY      = pf.Y;
            dr.RatioWidth  = (double)32 / _mapRect.Width;
            dr.RatioHeight = (double)32 / _mapRect.Height;

            RectangleF rect = dr.GetRect(_mapRect);

            if (rect.Left - _mapRect.Left < 0)
            {
                dr.RatioX = 0;
            }
            if (rect.Top - _mapRect.Top < 0)
            {
                dr.RatioY = 0;
            }
            if (rect.Right > _mapRect.Right)
            {
                dr.RatioX -= (rect.Right - _mapRect.Right) / _mapRect.Width;
            }
            if (rect.Bottom > _mapRect.Bottom)
            {
                dr.RatioY -= (rect.Bottom - _mapRect.Bottom) / _mapRect.Height;
            }

            _doors.Add(dr);
            this.Invalidate();
        }