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; } })); }
/// <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); } }
/// <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); }
private void FaceStateCallback(BSTDevice dev, bool connected, Maticsoft.Model.BST.staff_log log) { try { lock (this) { AddFaceWatchData(dev, connected, log); } } catch (Exception) { } }
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) { } }
/// <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); } }
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); } }
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; } })); }
/// <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); } }