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");
     }
 }
Exemple #3
0
 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);
     }
 }
Exemple #5
0
 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:");
     }
 }
Exemple #6
0
 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);
 }
Exemple #7
0
        /// <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);
            }
        }
Exemple #8
0
 /// <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);
 }
Exemple #9
0
 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);
            }
        }
Exemple #11
0
        /// <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);
            }
        }
Exemple #12
0
        /// <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);
     }
 }
Exemple #14
0
        /// <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);
        }
Exemple #20
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;   //可信度
 }