Exemple #1
0
 /// <summary>
 /// 检测大于极限温度的值
 /// </summary>
 /// <param name="values"></param>
 public List <ImgPosition> NewGetInfo(  )
 {
     try
     {
         list.Clear();
         device      = _DataDisplay.GetDevice();
         cAMERA_INFO = device.GetCamInfo();
         tempr       = new int[cAMERA_INFO.intFPAHeight * cAMERA_INFO.intFPAWidth];                       //可以优化,改成固定值
         device.GetTemperatureData(tempr, (uint)(cAMERA_INFO.intFPAHeight * cAMERA_INFO.intFPAWidth), 1); //获取整帧图像热点
         for (int x = 1; x <= cAMERA_INFO.intFPAWidth; x += Globals.DetectionAccuracy)                    //X轴
         {
             for (int y = 1; y <= cAMERA_INFO.intFPAHeight; y += Globals.DetectionAccuracy)               //Y轴
             {
                 float temper = tempr[x * y] * 0.001f;                                                    // device.GetTemperatureProbe((uint)x, (uint)y,(uint)Globals.DetectionAccuracy) * 0.001f;//获取温度 检测精度 1  有60*80的点 精度越高时间越长
                 if (temper >= LimitTmper)                                                                //如果大于等于极限温度
                 {
                     img.tmper = temper;
                     img.x     = x;
                     img.y     = y;
                     list.Add(img);
                 }
             }
         }
         list.Sort(new ImgPosition());
         // FormMain.GetOPCTaskInfo("一共有" + list.Count + "个点");
         return(list);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #2
0
        /// <summary>
        /// 连接相机
        /// </summary>
        /// <param name="cmaerIp">相机IP</param>
        void ConnectionCamer(uint cmaerIp)
        {
            if (_DataControl.IsLinkedByMyself(cmaerIp))//如果是我自己在使用
            {
                return;
            }
            else if (_DataControl.IsLinkedByOthers(cmaerIp))//如果是其他人在使用
            {
                DialogResult result = MessageBox.Show("相机正与其它终端连接,确信要抢占吗?", "连接相机", MessageBoxButtons.YesNo);
                if (result != DialogResult.Yes)
                {
                    return;
                }
            }

            if (_DataControl.IsInvadedByOthers(cmaerIp)) //如果被别人抢了摄像头
            {
                DislinkCamera(cmaerIp);                  //就断开连接
            }

            FormDisplay display = _DataControl.GetCurrDisplayForm();

            if (display != null)
            {
                MagDevice device = display.GetDateDisplay().GetDevice();

                if (device.LinkCamera(cmaerIp, 2000))                                     //连接相机
                {
                    DataDisplay.CurrSelectedWndIndex = display.GetDateDisplay().WndIndex; //更新选中框
                    Globals.GetMainFrm().GetFormDisplayBG().Invalidate(false);
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// 鼠标测温
        /// </summary>
        /// <param name="graphic"></param>
        /// <param name="w"></param>
        /// <param name="h"></param>
        void DrawMouseTemp(Graphics graphic, int w, int h)
        {
            Point pt = MousePosition;

            Point ptLeftUp    = this.PointToScreen(new Point(0, 0));
            Point ptRightDown = this.PointToScreen(new Point(this.Width - 1, this.Height - 1));

            if (pt.X > ptRightDown.X || pt.X < ptLeftUp.X || pt.Y > ptRightDown.Y || pt.Y < ptLeftUp.Y)
            {
                return;
            }

            MagDevice device = _DataDisplay.GetDevice();

            GroupSDK.CAMERA_INFO info = device.GetCamInfo();

            int intFPAx = _ptMouse.X * info.intFPAWidth / w;                          //鼠标X
            int intFPAy = info.intFPAHeight - _ptMouse.Y * info.intFPAHeight / h - 1; //鼠标Y

            int intTemp = device.GetTemperatureProbe((uint)intFPAx, (uint)intFPAy, 1);

            GroupSDK.FIX_PARAM param = new GroupSDK.FIX_PARAM();
            device.GetFixPara(ref param);

            if (_DataDisplay.GetDisplayConfig().bEnableExtCorrect)
            {
                intTemp = device.FixTemperature(intTemp, param.fEmissivity, (uint)intFPAx, (uint)intFPAy);
            }


            string sText = (intTemp * 0.001f).ToString("0.0") + "坐标X:" + intFPAx + "坐标Y:" + intFPAy;

            int cx = (int)graphic.MeasureString(sText, this.Font).Width;
            int cy = (int)graphic.MeasureString(sText, this.Font).Height;

            int x = _ptMouse.X;
            int y = _ptMouse.Y - cy; //默认右上

            if (_ptMouse.Y < cy)     //处于上边沿
            {
                y = _ptMouse.Y + 16;

                if (_ptMouse.X < cx)//处于左边沿
                {
                    x = _ptMouse.X + 16;
                }
                else
                {
                    x = _ptMouse.X - cx;
                }
            }
            else if (_ptMouse.X > w - cx)//右边沿
            {
                x = _ptMouse.X - cx;
            }

            graphic.FillRectangle(Brushes.White, new Rectangle(x, y, cx, cy));
            graphic.DrawString(sText, this.Font, Brushes.Black, (float)x, (float)y);
        }
Exemple #4
0
        /// <summary>
        /// 断开摄像头连接
        /// </summary>
        /// <param name="intCameraIP"></param>
        private void DislinkCamera(uint intCameraIP)
        {
            FormDisplay frmDisplay = _DataControl.GetBindedDisplayForm(intCameraIP);

            if (frmDisplay != null)
            {
                MagDevice device = frmDisplay.GetDateDisplay().GetDevice();
                device.StopProcessImage();
                device.DisLinkCamera();
                frmDisplay.Invalidate(false);
            }
        }
Exemple #5
0
        public bool CreateDevice()
        {
            if (_MagDevice == null)
            {
                _MagDevice = new MagDevice(IntPtr.Zero);
            }

            if (NewFrame == null)
            {
                NewFrame = new GroupSDK.DelegateNewFrame(NewFrameCome);
            }

            return(_MagDevice.Initialize());
        }
Exemple #6
0
        public FormDisplay GetCurrDisplayForm()
        {
            FormDisplay frmDisplay = Globals.GetMainFrm().GetFormDisplay(DataDisplay.CurrSelectedWndIndex);
            MagDevice   device     = frmDisplay.GetDateDisplay().GetDevice();

            if (device.GetDevIPAddress() == 0)
            {
                return(frmDisplay);
            }
            else
            {
                return(GetFirstFreeDisplayForm());
            }
        }
Exemple #7
0
        void OnDestroy()
        {
            MagDevice device = _DataDisplay.GetDevice();

            if (device.IsProcessingImage())
            {
                device.StopProcessImage();
            }

            if (device.IsLinked())
            {
                device.DisLinkCamera();
            }

            _DataDisplay.DestroyDevice();
        }
Exemple #8
0
        /// <summary>
        /// 是否被别人抢占了相机
        /// </summary>
        /// <returns></returns>
        public bool IsInvadedByOthers(uint intUserIP)
        {
            uint max_wnd = Globals.GetMainFrm().GetMaxDeviceWnd();

            for (uint i = 0; i < max_wnd; i++)
            {
                MagDevice device = Globals.GetMainFrm().GetFormDisplay(i).GetDateDisplay().GetDevice();

                if (device.GetDevIPAddress() != 0 && intUserIP != _MagService.GetLocalIp())
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #9
0
        public bool IsLinkedByMyself(uint intCameraIP)
        {
            uint max_wnd = Globals.GetMainFrm().GetMaxDeviceWnd();

            for (uint i = 0; i < max_wnd; i++)
            {
                MagDevice device = Globals.GetMainFrm().GetFormDisplay(i).GetDateDisplay().GetDevice();

                if (device.IsLinked() && device.GetDevIPAddress() == intCameraIP)
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #10
0
        public FormDisplay GetFirstFreeDisplayForm()
        {
            uint max_wnd = Globals.GetMainFrm().GetMaxDeviceWnd();

            for (uint i = 0; i < max_wnd; i++)
            {
                FormDisplay frmDisplay = Globals.GetMainFrm().GetFormDisplay(i);
                MagDevice   device     = frmDisplay.GetDateDisplay().GetDevice();

                if (device.GetDevIPAddress() == 0)
                {
                    return(frmDisplay);
                }
            }

            return(null);
        }
Exemple #11
0
        private void buttonLink_Click(object sender, EventArgs e)
        {
            int index = comboBoxOnlineDevice.SelectedIndex;

            if (index < 0)
            {
                return;
            }

            MagService service = _DataControl.GetService();
            uint       dev_num = service.GetTerminalList(_LstEnumInfo, MAX_ENUMDEVICE);

            if (_DataControl.IsLinkedByMyself(_LstEnumInfo[index].intCamIp))
            {
                return;
            }
            else if (_DataControl.IsLinkedByOthers(_LstEnumInfo[index].intUsrIp))
            {
                DialogResult result = MessageBox.Show("相机正与其它终端连接,确信要抢占吗?", "连接相机", MessageBoxButtons.YesNo);
                if (result != DialogResult.Yes)
                {
                    return;
                }
            }

            if (_DataControl.IsInvadedByOthers(_LstEnumInfo[index].intUsrIp))
            {
                DislinkCamera(_LstEnumInfo[index].intCamIp);
            }

            FormDisplay display = _DataControl.GetCurrDisplayForm();

            if (display != null)
            {
                MagDevice device = display.GetDateDisplay().GetDevice();

                if (device.LinkCamera(_LstEnumInfo[index].intCamIp, 2000))
                {
                    DataDisplay.CurrSelectedWndIndex = display.GetDateDisplay().WndIndex;//更新选中框
                    Globals.GetMainFrm().GetFormDisplayBG().Invalidate(false);
                }
            }

            RefreshOnlineDevice();
        }