private void App_OnStartup(object sender, StartupEventArgs e) { //Face.FaceFun.GetWhiteName(1); if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1) { IrAdvanced.WriteError("程序已经运行了一个实例,该程序只允许有一个实例"); Current.Shutdown(); } LoginWindowFactory.ConcreLoginWindow().Show(); //Data.PoliceModel.SessionModel session = Data.CenterDataFactory.KeyTable(); //Data.CenterDataFactory.WhiteName(session.Id, session.Name); //CustomControl.CustomWin.WinSetting win = new CustomControl.CustomWin.WinSetting(); //win.Show(); }
/// <summary>窗体初始并初始数据</summary> public LoginWindow() { InitializeComponent(); //必要环境初始化 MysqlHelper.ConnStr = string.Format("Data Source={0};Database={1};User ID=root;Password=root;SslMode=None;", IrAdvanced.ReadString("ServerIp"), IrAdvanced.ReadString("DbName")); FaceFun.BaseDir = AppDomain.CurrentDomain.BaseDirectory; //初始化基础数据 IrAdvanced.InitBaseData("AFT_SYSTEM"); //是否调试状态 Cursor = IrAdvanced.IsDebug ? Cursors.Arrow : Cursors.None; //是否置顶 //Topmost = !IrAdvanced.IsDebug; if (IrAdvanced.ReadBoolean("UpData")) { IrAdvanced.RunApp(AppDomain.CurrentDomain.BaseDirectory + "updata.exe"); } }
public static void PlayMp3(string filePath, bool ispass = false) { try { filePath.ToSaveLog("语音播报."); var path = IrAdvanced.GetAbsolutePath(filePath); if (!path.IsNullOrEmpty()) { Player.Open(new Uri(path, UriKind.Relative)); Player.Play(); } } catch (Exception ex) { ex.ToSaveLog("PlayMp3:"); } }
private bool TestCvr() { try { var port = IrAdvanced.ReadInt("CvrCom"); var r = Cvrsdk.Well_InitComm(port) == 1; //返回是否初始化成功 if (r) { Cvrsdk.Well_CloseComm(); } return(r); } catch (Exception ex) { return(false); } }
public override void Init() { try { #region 2019年3月屏蔽检查模块 //base.Init(); #endregion Title.Text = MyMatch.SessionName; "散票验证模式".ToSaveLog("【调用模式】:"); _irSeialPort = new IrSerialPort(IrAdvanced.ReadString("BarCodePort")); _irSeialPort.DataReceived += irSeialPort_DataReceived; _irSeialPort.ErrorEvent += (sender, e) => ShowEventMsg(e, MsgType.TipErr); } catch (Exception ex) { ex.ToSaveLog("OnlyQrView.init:"); } }
public override void Init() { base.Init(); Title.Text = MyMatch.SessionName; "散票兼容IC年卡验证模式".ToSaveLog("【调用模式】:"); //创建线程循环请求IC卡 if (!IdCardFunc.Port.IsNullOrEmpty()) { _icThread = new Thread(OpenIc) { IsBackground = true }; _icThread.Start(); } _irSeialPort = new IrSerialPort(IrAdvanced.ReadString("BarCodePort")); _irSeialPort.DataReceived += irSeialPort_DataReceived; _irSeialPort.ErrorEvent += (sender, e) => ShowEventMsg(e, MsgType.TipErr); }
/// <summary> /// 告警数据上传 /// </summary> public static void InspectTicket(int sessionId, string gameName) { LogManager.WriteLog("告警数据开始上传"); try { string sql = "SELECT id,session_id,buy_name,id_no,id_card_photo,year_ticket_photo,address,status,remark from black_names where session_id = '" + sessionId + "' and isupload = 0"; DataTable dataTable = MySqlDBHelper.ExecuteDataTable(entranceCon, sql); InspectTicket inspectTicket = new InspectTicket() { verification = verification, dataVoList = new List <InspectTicketInfo>() }; foreach (DataRow item in dataTable.Rows) { inspectTicket.dataVoList.Add(new InspectTicketInfo() { taskId = serverGameName, warningTime = DateTime.Now, warningPosition = IrAdvanced.ReadString("TelArea"), ticketWarningType = 1, ticketNo = item["id"].ToString(), ticketHolderIdCardNo = item["id_no"].ToString(), ticketHolderName = item["buy_name"].ToString(), entranceFacePic = item["remark"].ToString() }); } string url = URL + "/api/inspectTicket"; string data = JsonConvert.SerializeObject(inspectTicket); LogManager.WriteLog("告警上传数据:" + data); string msg = PoliceDataFactory.HttpPost(url, data, null); LogManager.WriteLog("告警数据上传完成"); LogManager.WriteLog("告警数据上传返回结果:" + msg); LogManager.WriteLog("更新上传数据状态"); string updatesql = "update black_names set isupload=1 where session_id = '" + sessionId + "'"; MySqlDBHelper.ExecuteNonQuery(PoliceDataFactory.entranceCon, CommandType.Text, updatesql); } catch (Exception ex) { LogManager.WriteLog("检票数据上传异常" + ex.Message); } }
/// <summary> 初始化CVR第二代身份证识别硬件 </summary> public bool Init() { try { var port = IrAdvanced.ReadInt("CvrCom"); port.ToString().ToSaveLog("尝试打开二代身份证硬件连接端口:"); _iRetPort = Cvrsdk.Well_InitComm(port); if (_iRetPort != 1) { "CVR串口打开失败".ToSaveLog(); } return(_iRetPort == 1); //返回是否初始化成功 } catch (Exception ex) { ex.Message.ToSaveLog("初始化CVR第二代身份证识别硬件失败:"); } return(false); }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { IrAdvanced.WriteInfo("节目页面加载"); NeedCloseLoginWindow = true; IrAdvanced.LoadItemByDefault = false; IrAdvanced.WindowSet(this); TimeSpan stime, etime; //正常节目 var normalitemindex = IrAdvanced.GetFirstItemId(IrAdvanced.ObjJsonItems, out stime, out etime); IrControlBaseJun.OpenNewProgram(normalitemindex, stime, etime, "9"); IrAdvanced.WriteInfo("节目跳转:" + normalitemindex); } catch (Exception ex) { ex.ToSaveLog("MainWindows.Load:"); } }
/// <summary>窗体加载</summary> private void Window_Loaded(object sender, RoutedEventArgs e) { try { VerText.Text = string.Format("版本号:{0}", Assembly.GetExecutingAssembly().GetName().Version); if (IrAdvanced.CheckRegisterState) //必须注册,否则IrControlLibrary中可能有部分方法无法使用 { WelcomeText.Text = "程序加载中...\n设备号:" + IrAdvanced.StrDeviceId; TurnToMainWindows(); MessageBoxResult result = MessageBox.Show("是否同步比赛数据", "提示", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { SubBaseForm sb = new SubBaseForm("正在同步比赛数据,请稍候..."); SubBaseForm.DelegateNonParmAndNonReturn my = new SubBaseForm.DelegateNonParmAndNonReturn(synchronizeData); sb.NonParmAndNonReturnMethod(my); } result = MessageBox.Show("是否开启数据上传至公安服务", "提示", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { bool is_AutoUpload = ConfigurationManager.AppSettings["Is_AutoUpload"].ToBool(); if (is_AutoUpload) { Thread thread = new Thread(Upload) { IsBackground = true }; thread.Start(); } } } else { WelcomeText.Text = string.Format("程序未注册,请与供应商联系!\n设备号:{0}", IrAdvanced.StrDeviceId); } } catch (Exception ex) { IrAdvanced.WriteError("FrmMain.Window_Loaded:" + ex.Message); } }
/// <summary> 写入本地记录并且通知 </summary> protected override void InSession() { //写入本地记录并且通知 var info = new SessionsInfo { SessionId = MyMatch.SessionId, CreateDate = DateTime.Now, Name = MyMatch.SessionName, IdNo = Cvr.Info.Number, IdCardPhoto = IrAdvanced.ReadBytesFromFile(FaceFun.BaseDir + "\\pic.bmp"), TakePhoto = PhotoOk, FaceData = FaceFun.StructToBytes(CameraRft), IdAddress = Cvr.Info.Address, TicketType = 0, TicketNo = _qrInfo.Value.TicketNo, Area = _qrInfo.Value.Area, Row = _qrInfo.Value.Row, Seat = _qrInfo.Value.Seat, TelNo = IrAdvanced.ReadString("TelNo"), TelArea = IrAdvanced.ReadString("TelArea"), BuyName = Cvr.Info.Name, BuyPhoto = null, BuyDate = null, ValidateType = 3, SyncTime = null, Status = 0, Remark = "", UserName = AftUserName, }; if (FaceFun.AddSessions(info) > 0) { ShowEventMsg("检票成功", MsgType.FaceOk); } else { "写入数据库失败".ToSaveLog("入场记录时:"); ShowEventMsg("检票失败", MsgType.FaceErr); } }
/// <summary> 写入数据库 </summary> protected override void InSession() { try { //写入本地记录并且通知 var info = new SessionsInfo { SessionId = MyMatch.SessionId, CreateDate = DateTime.Now, Name = MyMatch.SessionName, IdNo = Cvr.Info.Number, IdCardPhoto = IrAdvanced.ReadBytesFromFile(FaceFun.BaseDir + "\\pic.bmp"), TakePhoto = PhotoOk, FaceData = FaceFun.StructToBytes(CameraRft), IdAddress = Cvr.Info.Address, TicketType = 2, TicketNo = null, Area = null, Row = null, Seat = null, TelNo = IrAdvanced.ReadString("TelNo"), TelArea = IrAdvanced.ReadString("TelArea"), BuyName = Cvr.Info.Name, BuyPhoto = null, BuyDate = null, ValidateType = 1, SyncTime = null, Status = 0, Remark = "", UserName = AftUserName, }; AFT_System.Face.FaceFun.AddSessions(info); } catch (Exception ex) { ex.ToSaveLog("InSession"); } }
/// <summary> 条码扫描枪 </summary> protected bool TestQr() { try { var spProjector = new SerialPort(IrAdvanced.ReadString("BarCodePort")) { BaudRate = 115200, //波特率 DataBits = 8, //数据位 StopBits = StopBits.One, //停止位 Parity = Parity.None //校检位 }; spProjector.Open(); var r = spProjector.IsOpen; spProjector.Close(); spProjector.Dispose(); return(r); } catch (Exception ex) { return(false); } }
/// <summary> 自定义控件 </summary> public MyCustomControl(JObject oJson) : base(oJson) { try { //检查程序是否注册,防止盗用 if (!IrAdvanced.CheckRegisterState) { return; } //获取图片文件,并检查文件是否有效 _myControl.Mode = IrAdvanced.ReadInt("Mode", 1); //_myControl.Init(); Children.Add(_myControl); //设置控件ID号 Tag = string.IsNullOrEmpty(SId) ? "2018_0" : SId; IsControlCreateSuccess = true; } catch (Exception ex) { ex.ToSaveLog(); } }
//二代身份证识别触发 protected virtual void Cvr_GetNewDataEvent(object sender, CvrInfo e) { if (e.Number.IsNullOrEmpty()) { return; } //当识别到新身份证,清空之前认证结果 e.Number.ToSaveLog("新的身份证信息被发现:"); ClearValue(); try { if (CheckRule(e.Number)) { //当识别到新身份证,清空之前认证结果 var item = IrAdvanced.GetBitmapFromFile(e.PeopleImg); if (item != null) { FaceFun.TimeStart(); Rft2 = Face.FaceTz(item); if (Face.TzIr.ToInt32() == 0) { CvrPass = true; } else { "身份证照片人脸检测失败".ToSaveLog("Cvr_GetNewDataEvent"); } FaceFun.TimeStop("读取身份证人脸数据耗时:"); } } } catch (Exception ex) { ex.ToSaveLog("BaseFaceView:"); } }
/// <summary> 读写IC卡 </summary> private int CheckICard() { FaceFun.TimeStart(); var icInfo = new IdCardFunc.TicketCardInfo(); int i = IdCardFunc.GetTicketData_New(ref icInfo); if (i == 0) { if (IsIdSame && (Cvr.Info.Number != icInfo.IDCard)) { ShowEventMsg("身份证号码与票面不符合!", MsgType.Info); } else { tempTime = DateTime.Now; //检查白名单验证 if (!CheckWhite(icInfo.IDCard)) { return(1); } //写入本地记录并且通知 var info = new SessionsInfo { SessionId = MyMatch.SessionId, CreateDate = DateTime.Now, Name = MyMatch.SessionName, IdNo = icInfo.IDCard, IdCardPhoto = IrAdvanced.ReadBytesFromFile(FaceFun.BaseDir + "\\pic.bmp"), TakePhoto = PhotoOk, FaceData = FaceFun.StructToBytes(CameraRft), IdAddress = "", TicketType = 1, TicketNo = icInfo.CardNo, Area = icInfo.StadiumArea, Row = icInfo.Row, Seat = icInfo.Position, TelNo = IrAdvanced.ReadString("TelNo"), TelArea = IrAdvanced.ReadString("TelArea"), BuyName = icInfo.Name, BuyPhoto = null, BuyDate = null, ValidateType = 2, SyncTime = null, Status = 0, Remark = "", UserName = AftUserName, }; if (FaceFun.AddSessions(info) > 0) { Dispatcher.InvokeAsync(() => { ShowEventMsg("检票成功", MsgType.FaceOk); MyArea.Text = string.Format("区域:{0}{1}排{2}座", info.Area, info.Row, info.Seat); MyNum.Text = "票号:" + info.TicketNo; MyType.Text = "类型:年票"; MyTime.Text = "时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); }); } } } else if (i == 16) { i.ToString().ToSaveLog("已刷卡:"); var str = (tempTime == null) ? "拒绝入场" : string.Format("{0}入场", tempTime); ShowEventMsg("一天只能入场一次!\n" + str, MsgType.InfoErr); ShowEventMsg("检票失败", MsgType.FaceErr); Thread.Sleep(500); } else if (i == 1) //未放卡 { tempTime = null; } else { i.ToString().ToSaveLog("IC卡读卡失败:"); Thread.Sleep(300); } FaceFun.TimeStop("IC读写耗时:"); return(i); }
public FaceWhiteIc() { InitializeComponent(); _confidence = IrAdvanced.ReadInt("Confidence", 65) / 100.0f; //可信度 }
/// <summary> 读写IC卡 </summary> private int CheckICard() { FaceFun.TimeStart(); var icInfo = new IdCardFunc.TicketCardInfo(); int i = IdCardFunc.GetTicketData_New(ref icInfo); if (i == 0) { if (icInfo.IDCard.IsNullOrEmpty()) { "读卡成功,但身份证号码为空.".ToSaveLog(); return(1); } //黑名单检查 if (IsCheckBlack && FaceFun.IsInBlack(icInfo.IDCard)) { LeftImg.Visibility = Visibility.Visible; } //判断是否超过时限 var now = DateTime.Now; var time = IrAdvanced.StringToDateTime(icInfo.Reserved2); if ((time.Year <= now.Year && time.Month <= now.Month && time.Day < now.Day)) { //读取数据库白名单记录 white = FaceFun.CheckWhiteName(icInfo.IDCard); if (white != null) { Bitmap photobitmap = IrAdvanced.GetBitmapFormByte(white.Value.IdCardPhoto); Dispatcher.Invoke(() => { BitmapImage photoImg = IrAdvanced.GetBitmapImageFormByte(white.Value.IdCardPhoto); CvrImgMain.Source = CvrImg.Source = photoImg; }); Rft2 = Face.FaceTz(photobitmap); if (Face.TzIr.ToInt32() == 0) { icPass = true; ShowEventMsg("正在进行人脸识别", MsgType.Info); } else { ShowEventMsg("无法识别该照片人脸特征码", MsgType.InfoErr); } } else { ShowEventMsg("白名单不存在此年票记录.", MsgType.InfoErr); } } else { Dispatcher.InvokeAsync(() => { ShowEventMsg(string.Format("一天只能入场一次!\n{0}已使用", icInfo.Reserved2), MsgType.InfoErr); MyArea.Text = string.Format("区域:{0}区{1}排{2}座", icInfo.StadiumArea, icInfo.Row, icInfo.Position); MyNum.Text = "票号:" + icInfo.CardNo; MyType.Text = "类型:年票"; MyTime.Text = "时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); ShowEventMsg("检票失败", MsgType.FaceErr); }); } } FaceFun.TimeStop("IC读写耗时:"); return(i); }
/// <summary> 读写IC卡 </summary> private int CheckICard() { try { "准备请求读卡".ToSaveLog("CheckIcard:"); FaceFun.TimeStart(); var icInfo = new IdCardFunc.TicketCardInfo(); int i = IdCardFunc.GetTicketData_New(ref icInfo); if (i == 0) { tempTime = DateTime.Now; icInfo.IDCard.ToSaveLog("读取到IC卡:"); //判断是否超过时限 if (!icInfo.IDCard.IsNullOrEmpty()) { Dispatcher.Invoke(() => MyIdNo.Text = icInfo.IDCard); } var flag = true; Dispatcher.Invoke(() => { //黑名单检查 if (IsCheckBlack && FaceFun.IsInBlack(MyIdNo.Text)) { LeftImg.Visibility = Visibility.Visible; } if (IsCheckIdNo && MyIdNo.Text.IsNullOrEmpty()) { flag = false; } }); if (!flag) { ShowEventMsg("请录入身份证号码.", MsgType.TipErr); return(1); } //检查白名单验证 if (!CheckWhite(icInfo.IDCard)) { return(1); } PhotoOk = null; lock (Obj) { if (MyCapture != null) { "拍照获取Photo.".ToSaveLog(""); using (var myMap = MyCapture.QueryFrame()) { if (myMap != null) { PhotoOk = FaceFun.BitmapToByte(myMap.Bitmap); } else { "未取得摄像头Mat数据".ToSaveLog("OnlyQrView.BarCode_OnKeyUp:"); } } } } //写入本地记录并且通知 var info = new SessionsInfo { SessionId = MyMatch.SessionId, CreateDate = DateTime.Now, Name = MyMatch.SessionName, IdNo = icInfo.IDCard, IdCardPhoto = null, TakePhoto = PhotoOk, FaceData = null, IdAddress = "", TicketType = 1, TicketNo = icInfo.CardNo, Area = icInfo.StadiumArea, Row = icInfo.Row, Seat = icInfo.Position, TelNo = IrAdvanced.ReadString("TelNo"), TelArea = IrAdvanced.ReadString("TelArea"), BuyName = icInfo.Name, BuyPhoto = null, BuyDate = null, ValidateType = 4, SyncTime = null, Status = 0, Remark = "", UserName = AftUserName, }; if (FaceFun.AddSessions(info) > 0) { Dispatcher.Invoke(() => { MyArea.Text = string.Format("区域:{0}区{1}排{2}座", info.Area, info.Row, info.Seat); MyNum.Text = "票号:" + info.TicketNo; MyType.Text = "类型:年票"; MyTime.Text = "时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); }); ShowEventMsg("检票成功", MsgType.FaceOk); Thread.Sleep(500); } FaceFun.TimeStop("IC读写耗时:"); } else if (i == 16) { i.ToString().ToSaveLog("已刷卡:"); var str = (tempTime == null) ? "拒绝入场" : string.Format("{0}入场", tempTime); ShowEventMsg("一天只能入场一次!\n" + str, MsgType.FaceErr); Thread.Sleep(500); } else if (i == 1) //未放卡 { tempTime = null; } else { i.ToString().ToSaveLog("IC卡读卡失败:"); Thread.Sleep(300); } icPass = false; return(i); } catch (Exception ex) { ex.ToSaveLog("CheckICard失败:"); } icPass = false; return(0); }
public static int TestMatch() { return(IrAdvanced.StringToInt(MysqlHelper.ExecuteScalar("SELECT count(*) FROM sessions").ToString(), 0)); }
public BaseFaceView() { _confidence = IrAdvanced.ReadInt("Confidence", 65) / 100.0f; //可信度 }