private void btnTestCap_Click(object sender, EventArgs e) { if (tbIp.Text.Trim() == "") { WinInfoHelper.ShowInfoWindow(this, "IP不能为空!"); return; } if (picBox.Image != null) { picBox.Image.Dispose(); picBox.Image = null; } IPCamera ipcamera = new IPCamera(); ipcamera.IP = tbIp.Text.Trim(); ipcamera.Port = iiPort.Value; ipcamera.User = tbUser.Text.Trim(); ipcamera.Password = tbPwd.Text; CameraModel model = CameraModel.None; Enum.TryParse <CameraModel>((string)cbModel.SelectedItem, out model); ipcamera.Model = model; ipcamera.CapturePort = iiCapPort.Value; CapType captype = CapType.Onvif; Enum.TryParse <CapType>((string)cbCapType.SelectedItem, out captype); ipcamera.CapType = captype; IIPCamera engine = ipcamera.GetEngine(); if (engine != null) { CtrlWaiting waiting = new CtrlWaiting(() => { try { Image image = engine.CaptureImage(); if (image == null) { WinInfoHelper.ShowInfoWindow(this, "截图失败!"); return; } this.Invoke(new Action(() => { picBox.Image = image; })); } catch (System.Exception ex) { WinInfoHelper.ShowInfoWindow(this, "截图失败!" + ex.Message); log.Error("截图失败:", ex); } }); waiting.Show(this); } }
private void ConnectBtn_Click(object sender, EventArgs e) { for (int i = 0; i < 9; i++) { Cameras[i] = IPCameraFactory.GetCamera(connectStr[i], "admin", (String)ar.GetValue("password" + (i + 1).ToString(), typeof(String))); CamPTZ[i] = new IPCamera(PTZStr[i], "admin", (String)ar.GetValue("password" + (i + 1).ToString(), typeof(String))); //CamPTZ[i] = new IPCamera("165.246.112.35", "admin","ibst0552997730"); _connector[i].Connect(Cameras[i].VideoChannel, _imageProvider[i]); //_connector[i].Connect(Cameras[i].AudioChannel, _speaker); Cameras[i].Start(); CamPTZ[i].Start(); videoViewerWFs[i].Start(); } _speaker.Start(); }
private void GenerateTicket(string vehicleNumber) { var ticketNumber = parkingDatabaseFactory.GetUniqueCode(); var validationNumber = parkingDatabaseFactory.GetUniqueCode(); var entryTime = DateTime.Now.ToString(); var qrCode = QRCode.GenerateQRCode(vehicleNumber, validationNumber, (int)_vehicleType, entryTime); var qrCodeImage = QRCode.GetQRCodeImage(qrCode); var driverImage = (Image)IPCamera.GetDriverImage(); var vehicleImage = (Image)IPCamera.GetVehicleImage(); ticket = new Ticket() { TicketNumber = ticketNumber, ValidationNumber = validationNumber, VehicleNumber = vehicleNumber, VehicleType = _vehicleType, QRCodeImage = qrCodeImage, QRCode = qrCode, EntryTime = entryTime, DriverImage = (Bitmap)driverImage, VehicleImage = (Bitmap)vehicleImage }; }
private void DoLoadCtrlr() { try { log.Info("加载抓拍配置..."); string sql = "SELECT SDC.*,SDI.CTRL_ID,SDI.CTRL_DOOR_INDEX,SCI.*,SCIF.* FROM SMT_DOOR_CAMERA SDC INNER JOIN SMT_DOOR_INFO SDI ON SDC.DOOR_ID=SDI.ID INNER JOIN SMT_CAMERA_INFO SCI ON SDC.CAMERA_ID=SCI.ID INNER JOIN SMT_CONTROLLER_INFO SCIF ON SDI.CTRL_ID=SCIF.ID WHERE SDC.ENABLE_CAP=1"; DataTable dt = Maticsoft.DBUtility.DbHelperSQL.Query(sql).Tables[0]; doorCameraObjects.Clear(); foreach (DataRow dr in dt.Rows) { try { DoorCameraObject dco = new DoorCameraObject(); Controller ctrlr = new Controller(); ControllerDoorType type = ControllerDoorType.TwoDoorsTwoDirections; Enum.TryParse <ControllerDoorType>(Convert.ToString(dr["CTRLR_TYPE"]), out type); ctrlr.doorType = type; ctrlr.driverReleaseTime = dr["DRIVER_DATE"] == null ? DateTime.MinValue : (DateTime)dr["DRIVER_DATE"]; ctrlr.driverVersion = Convert.ToString(dr["DRIVER_VERSION"]); ctrlr.gateway = Convert.ToString(dr["GATEWAY"]); ctrlr.id = dr["CTRL_ID"] == null ? -1 : (decimal)dr["CTRL_ID"]; ctrlr.ip = Convert.ToString(dr["IP"]); ctrlr.mac = Convert.ToString(dr["MAC"]); ctrlr.mask = Convert.ToString(dr["MASK"]); ctrlr.model = Convert.ToString(dr["CTRLR_MODEL"]); ctrlr.port = dr["PORT"] == null ? 60000 : (int)dr["PORT"]; ctrlr.sn = Convert.ToString(dr["SN_NO"]); dco.controller = ctrlr; IPCamera camera = new IPCamera(); camera.CapturePort = dr["CAMERA_CAP_PORT"] == null ? 80 : (int)dr["CAMERA_CAP_PORT"]; CapType ct = CapType.Onvif; Enum.TryParse <CapType>(Convert.ToString(dr["CAMERA_CAP_TYPE"]), out ct); camera.CapType = ct; camera.IP = Convert.ToString(dr["CAMERA_IP"]); CameraModel model = CameraModel.None; Enum.TryParse <CameraModel>(Convert.ToString(dr["CAMERA_MODEL"]), out model); camera.Model = model; camera.Password = Convert.ToString(dr["CAMERA_PWD"]); camera.Port = dr["CAMERA_PORT"] == null ? 80 : (int)dr["CAMERA_PORT"]; camera.User = Convert.ToString(dr["CAMERA_USER"]); dco.camera = camera; dco.ctrl_door_index = dr["CTRL_DOOR_INDEX"] == null ? 1 : (byte)dr["CTRL_DOOR_INDEX"]; doorCameraObjects.Add(dco); } catch (Exception ex) { log.Error("加载抓拍配置异常:DOOR_ID=" + dr["DOOR_ID"] + ",CAMERA_IP=" + dr["CAMERA_IP"], ex); } } List <string> sns = new List <string>(); var curSNs = watchService.GetControllerSNs(); foreach (var item in doorCameraObjects) { if (!curSNs.Contains(item.controller.sn)) { sns.Add(item.controller.sn); } } foreach (var item in curSNs) { if (!sns.Contains(item)) { watchService.RemoveController(item); } } foreach (var item in doorCameraObjects) { watchService.AddController(item.controller, ControllerStateCallBack, "test"); } } catch (Exception ex) { log.Error("读取抓拍配置异常:", ex); } }
public OnvifCore(IPCamera ipcamera) { _ipcamera = ipcamera; }