コード例 #1
0
ファイル: RealMapDetect.cs プロジェクト: radtek/smartaccess
        private void AddFaceWatchData(BSTDevice dev, bool connected, Maticsoft.Model.BST.staff_log log)
        {
            this.Invoke(new Action(() =>
            {
                foreach (var item in _detectedMaps)
                {
                    List <Maticsoft.Model.SMT_DOOR_INFO> doors;
                    List <Maticsoft.Model.SMT_FACERECG_DEVICE> faces;
                    GetDoors(item, out doors, out faces);
                    if (faces.Count == 0)
                    {
                        continue;
                    }
                    foreach (var face in faces)
                    {
                        if (!face.FACEDEV_IS_ENABLE)
                        {
                            continue;
                        }
                        if (face.ID != dev._id)
                        {
                            continue;
                        }

                        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, face.FACEDEV_NAME + "(人脸)", desc);
                        dgvRealLog.Rows.Insert(0, row);
                        row.Tag = new object[] { face, log, dt };
                        ShowFaceStaffInfo(face, 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;
                }
            }));
        }
コード例 #2
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Maticsoft.Model.BST.staff_log model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update staff_log set ");
            strSql.Append("name=@name,");
            strSql.Append("imagevideo=@imagevideo,");
            strSql.Append("imagesql=@imagesql,");
            strSql.Append("info=@info,");
            strSql.Append("authority=@authority,");
            strSql.Append("data_keepon1=@data_keepon1,");
            strSql.Append("data_keepon2=@data_keepon2,");
            strSql.Append("data_keepon3=@data_keepon3,");
            strSql.Append("data_keepon4=@data_keepon4,");
            strSql.Append("data_keepon5=@data_keepon5");
            strSql.Append(" where id=@id ");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@name",         MySqlDbType.VarChar,      45),
                new MySqlParameter("@imagevideo",   MySqlDbType.MediumBlob),
                new MySqlParameter("@imagesql",     MySqlDbType.MediumBlob),
                new MySqlParameter("@info",         MySqlDbType.VarChar,     100),
                new MySqlParameter("@authority",    MySqlDbType.VarChar,       1),
                new MySqlParameter("@data_keepon1", MySqlDbType.VarChar,      45),
                new MySqlParameter("@data_keepon2", MySqlDbType.VarChar,      45),
                new MySqlParameter("@data_keepon3", MySqlDbType.VarChar,      45),
                new MySqlParameter("@data_keepon4", MySqlDbType.VarChar,      45),
                new MySqlParameter("@data_keepon5", MySqlDbType.VarChar,      45),
                new MySqlParameter("@id",           MySqlDbType.VarChar, 100)
            };
            parameters[0].Value  = model.name;
            parameters[1].Value  = model.imagevideo;
            parameters[2].Value  = model.imagesql;
            parameters[3].Value  = model.info;
            parameters[4].Value  = model.authority;
            parameters[5].Value  = model.data_keepon1;
            parameters[6].Value  = model.data_keepon2;
            parameters[7].Value  = model.data_keepon3;
            parameters[8].Value  = model.data_keepon4;
            parameters[9].Value  = model.data_keepon5;
            parameters[10].Value = model.id;

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

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #3
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public Maticsoft.Model.BST.staff_log DataRowToModel(DataRow row)
 {
     Maticsoft.Model.BST.staff_log model = new Maticsoft.Model.BST.staff_log();
     if (row != null)
     {
         if (row["id"] != null)
         {
             model.id = row["id"].ToString();
         }
         if (row["name"] != null)
         {
             model.name = row["name"].ToString();
         }
         if (row["imagesql"] != null)
         {
             model.imagesql = (byte[])row["imagesql"];
         }
         if (row["imagevideo"] != null)
         {
             model.imagevideo = (byte[])row["imagevideo"];
         }
         if (row["info"] != null)
         {
             model.info = row["info"].ToString();
         }
         if (row["authority"] != null)
         {
             model.authority = row["authority"].ToString();
         }
         if (row["data_keepon1"] != null)
         {
             model.data_keepon1 = row["data_keepon1"].ToString();
         }
         if (row["data_keepon2"] != null)
         {
             model.data_keepon2 = row["data_keepon2"].ToString();
         }
         if (row["data_keepon3"] != null)
         {
             model.data_keepon3 = row["data_keepon3"].ToString();
         }
         if (row["data_keepon4"] != null)
         {
             model.data_keepon4 = row["data_keepon4"].ToString();
         }
         if (row["data_keepon5"] != null)
         {
             model.data_keepon5 = row["data_keepon5"].ToString();
         }
     }
     return(model);
 }
コード例 #4
0
ファイル: RealMapDetect.cs プロジェクト: radtek/smartaccess
 private void FaceStateCallback(BSTDevice dev, bool connected, Maticsoft.Model.BST.staff_log log)
 {
     try
     {
         lock (this)
         {
             AddFaceWatchData(dev, connected, log);
         }
     }
     catch (Exception)
     {
     }
 }
コード例 #5
0
 private void DoCallBack(bool connected, Maticsoft.Model.BST.staff_log log)
 {
     try
     {
         foreach (var item in CallBacks)
         {
             item.Value.BeginInvoke(_device, connected, log, null, null);
         }
     }
     catch (Exception)
     {
     }
 }
コード例 #6
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(Maticsoft.Model.BST.staff_log model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into staff_log(");
            strSql.Append("id,name,imagevideo,imagesql,info,authority,data_keepon1,data_keepon2,data_keepon3,data_keepon4,data_keepon5)");
            strSql.Append(" values (");
            strSql.Append("@id,@name,@imagevideo,@imagesql,@info,@authority,@data_keepon1,@data_keepon2,@data_keepon3,@data_keepon4,@data_keepon5)");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@id",           MySqlDbType.VarChar,     100),
                new MySqlParameter("@name",         MySqlDbType.VarChar,      45),
                new MySqlParameter("@imagevideo",   MySqlDbType.MediumBlob),
                new MySqlParameter("@imagesql",     MySqlDbType.MediumBlob),
                new MySqlParameter("@info",         MySqlDbType.VarChar,     100),
                new MySqlParameter("@authority",    MySqlDbType.VarChar,       1),
                new MySqlParameter("@data_keepon1", MySqlDbType.VarChar,      45),
                new MySqlParameter("@data_keepon2", MySqlDbType.VarChar,      45),
                new MySqlParameter("@data_keepon3", MySqlDbType.VarChar,      45),
                new MySqlParameter("@data_keepon4", MySqlDbType.VarChar,      45),
                new MySqlParameter("@data_keepon5", MySqlDbType.VarChar, 45)
            };
            parameters[0].Value  = model.id;
            parameters[1].Value  = model.name;
            parameters[2].Value  = model.imagevideo;
            parameters[3].Value  = model.imagesql;
            parameters[4].Value  = model.info;
            parameters[5].Value  = model.authority;
            parameters[6].Value  = model.data_keepon1;
            parameters[7].Value  = model.data_keepon2;
            parameters[8].Value  = model.data_keepon3;
            parameters[9].Value  = model.data_keepon4;
            parameters[10].Value = model.data_keepon5;

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

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #7
0
ファイル: RealMapDetect.cs プロジェクト: radtek/smartaccess
 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);
     }
 }
コード例 #8
0
ファイル: RealDoorState.cs プロジェクト: radtek/smartaccess
 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;
         }
     }));
 }
コード例 #9
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Maticsoft.Model.BST.staff_log GetModel(string id)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select id,name,imagevideo,imagesql,info,authority,data_keepon1,data_keepon2,data_keepon3,data_keepon4,data_keepon5 from staff_log ");
            strSql.Append(" where id=@id ");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@id", MySqlDbType.VarChar, 100)
            };
            parameters[0].Value = id;

            Maticsoft.Model.BST.staff_log model = new Maticsoft.Model.BST.staff_log();
            DataSet ds = DbHelperMySQLP.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }