private void PlateReceived(object sender, PlateEventArgs e) { IdentificationInfo info = new IdentificationInfo(e.LicensePlateNumber, e.LicensePlateType, e.LicensePlateColor, e.PanoramaImage, e.VehicleImage, e.IdentificationTime); CameraParam cameraParam = m_CameraParams.Where(w => w.Ip == e.IP).FirstOrDefault(); if (cameraParam != null) { IDoor door = cameraParam.Direction == Directions.Enter ? EnterDoor : ExitDoor; door.Execute(info); } }
/// <summary> /// 处理识别到的图片 /// </summary> /// <param name="args"></param> private void SaveCapPicture(PlateEventArgs args, string ip, ref string base64, ref string pic1Path, ref string pic1Name, ref string pic2Path, ref string pic2Name) { if (args.SightImage != null && args.SightImage.Length > 0) { base64 = Convert.ToBase64String(args.SightImage); on_plate(args, ip, ref pic1Name, ref pic1Path, ref pic2Name, ref pic2Path); } else { log.Error("【抓拍异常】,车牌号:'" + args.PlateNum + "',未抓拍到图片,相机IP:" + ip); } }
/// <summary> /// 识别出场 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void IPC_PlateExitEvent(object sender, PlateEventArgs args) { IPC ipc = (IPC)sender; Console.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "," + ipc.IP + ",开始处理【出场】车牌号:" + args.PlateNum + "的业务逻辑!"); log.Debug("ip:" + ipc.IP + ",plate:" + args.PlateNum + "开始处理出场业务逻辑"); try { Guard guard = null; guard = FindGuardByIP(ipc.IP); string guardName = (guard.IsExit ? "出口" : "入口") + "_" + guard.No; psBll.SaveOrder_count(2, args.PlateColor.GetDisplayName(), args.PlateNum, args.CaptureTime, guardName); } catch (Exception ex) { log.Error("出场识别发生异常:" + ex.Message + ",其他" + ex.StackTrace); } }
protected static void onIsplataPlata(object o, PlateEventArgs e) => Firma.IsplataPlata?.Invoke(o, e);
/// <summary> /// 识别到车牌号 /// </summary> /// <param name="args"></param> private void on_plate(PlateEventArgs args, string ip, ref string sightName, ref string sightPath, ref string plateName, ref string platePath) { //保存抓拍到的车牌全景图和车牌识别图 StorePic(args.SightImage, ip, args.PlateNum, false, args.CaptureTime, ref sightName, ref sightPath); StorePic(args.PlateImage, ip, args.PlateNum, true, args.CaptureTime, ref plateName, ref platePath); }