private void btnReadHistoryData_Click(object sender, EventArgs e) { AppendText("【获取历史数据】开始"); Thread t = new Thread(() => { T_ReceiveData[] datas = DAL_ReceiveData.GetAllDatas(); this.Invoke((MethodInvoker) delegate { DataReceiveLogGrid.Rows.Clear(); }); foreach (T_ReceiveData item in datas) { T_PathIdentifyEquip equip = Cache.PathIdEquips.Where(it => it.Id == item.EquipId).FirstOrDefault(); this.Invoke((MethodInvoker) delegate { int rowIndex = DataReceiveLogGrid.Rows.Add(); DataGridViewRow row = DataReceiveLogGrid.Rows[rowIndex]; row.Cells["colId"].Value = item.EquipId; row.Cells["colImageFullPath"].Value = item.ImageAllPath; row.Cells["colImageNear"].Value = item.ImageNearPath; row.Cells["colVehiclePlate"].Value = item.ImagePlateNoPath; row.Cells["colBinVehiclePlate"].Value = item.ImageBinPlateNoPath; row.Cells["colEquipName"].Value = equip == null ? "未知设备" : equip.EquipName; row.Cells["colVehPlateNo"].Value = item.VehPlateNo; row.Cells["colVehPlateColor"].Value = item.VehPlateColor; row.Cells["colReachTime"].Value = item.ReachTime.ToString(); row.Cells["colVehSpeed"].Value = item.VehicleSpeed; }); } AppendText("【获取历史数据】完成"); }); t.IsBackground = true; t.Start(); }
private static void OnVehicleInfoNotify(object sender, VehicleInfoReceiveEventArgs arg) { string path = ImageSavePath + arg.Device.Id.ToString() + DateTime.Now.ToString("yyyyMMdd") + "\\"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string nameid = string.Format("{0}{1}", string.IsNullOrEmpty(arg.VehiclePlateNo) ? "无牌" : arg.VehiclePlateNo, arg.ReachTime.ToString("HHmmss")); T_ReceiveData data = new T_ReceiveData(); data.EquipId = arg.Device.Id; #region 保存图片 if (arg.PanoramaPhoto != null && arg.PanoramaPhoto.Length > 0) { string PanoramaPhotoPath = path + nameid + "_All.jpg"; FileIOUtil.SaveFileByByteArray(PanoramaPhotoPath, arg.PanoramaPhoto); data.ImageAllPath = PanoramaPhotoPath; } if (arg.CloseShotPhoto != null && arg.CloseShotPhoto.Length > 0) { string CloseShotPhotoPath = path + nameid + "_Near.jpg"; FileIOUtil.SaveFileByByteArray(CloseShotPhotoPath, arg.CloseShotPhoto); data.ImageNearPath = CloseShotPhotoPath; } if (arg.VehiclePlatePhoto != null && arg.VehiclePlatePhoto.Length > 0) { string VehiclePlatePhotoPath = path + nameid + "_VehiclePlate.jpg"; FileIOUtil.SaveFileByByteArray(VehiclePlatePhotoPath, arg.VehiclePlatePhoto); data.ImagePlateNoPath = VehiclePlatePhotoPath; } if (arg.VehiclePlateBinPhoto != null && arg.VehiclePlateBinPhoto.Length > 0) { string BinVehiclePlatePhotoPath = path + nameid + "_Bin.jpg"; FileIOUtil.SaveFileByByteArray(BinVehiclePlatePhotoPath, arg.VehiclePlateBinPhoto); data.ImageBinPlateNoPath = BinVehiclePlatePhotoPath; } #endregion 保存图片 data.ReachTime = arg.ReachTime; data.VehicleLength = arg.VehicleLength; data.VehicleSpeed = arg.VehicleSpeed; data.VehPlateColor = string.IsNullOrEmpty(arg.VehiclePlateColor) ? "未知" : arg.VehiclePlateColor; data.VehPlateNo = arg.VehiclePlateNo; DAL_ReceiveData.SaveReceiveData(data); arg.DbData = data; if (VehicleInfoReceiveNotifyHandler != null) { VehicleInfoReceiveNotifyHandler.Invoke(sender, arg); } }