示例#1
0
        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);
            }
        }
示例#2
0
        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();
        }
示例#3
0
        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
            };
        }
示例#4
0
        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);
            }
        }
示例#5
0
 public OnvifCore(IPCamera ipcamera)
 {
     _ipcamera = ipcamera;
 }