예제 #1
0
        private void SetAoiTop(Int32 s32Value)
        {
            uEye.Defines.Status      statusRet;
            System.Drawing.Rectangle rect;

            uEye.Types.Range <Int32> rangePosX, rangePosY;
            statusRet = m_Camera.Size.AOI.GetPosRange(out rangePosX, out rangePosY);

            while ((s32Value % rangePosY.Increment) != 0)
            {
                --s32Value;
            }

            statusRet = m_Camera.Size.AOI.Get(out rect);
            rect.Y    = s32Value;
            numericUpDownAoiTop.Value = s32Value;
            trackBarAoiTop.Value      = s32Value;

            statusRet = m_Camera.Size.AOI.Set(rect);

            // update aoi height
            uEye.Types.Range <Int32> rangeWidth, rangeHeight;
            statusRet = m_Camera.Size.AOI.GetSizeRange(out rangeWidth, out rangeHeight);

            trackBarAoiHeight.Maximum      = rangeHeight.Maximum;
            numericUpDownAoiHeight.Maximum = trackBarAoiHeight.Maximum;

            labelAoiHeightMax.Text = trackBarAoiHeight.Maximum.ToString();

            // inform our main form
            AOIChanged.Invoke(this, EventArgs.Empty);
        }
예제 #2
0
        private void SetAoiHeight(Int32 s32Value)
        {
            uEye.Defines.Status      statusRet;
            System.Drawing.Rectangle rect;

            uEye.Types.Range <Int32> rangeWidth, rangeHeight;
            statusRet = m_Camera.Size.AOI.GetPosRange(out rangeWidth, out rangeHeight);

            while ((s32Value % rangeHeight.Increment) != 0)
            {
                --s32Value;
            }

            statusRet   = m_Camera.Size.AOI.Get(out rect);
            rect.Height = s32Value;
            numericUpDownAoiHeight.Value = s32Value;
            trackBarAoiHeight.Value      = s32Value;

            Boolean isLive;

            statusRet = m_Camera.Acquisition.HasStarted(out isLive);

            if (isLive)
            {
                statusRet = m_Camera.Acquisition.Stop(uEye.Defines.DeviceParameter.Wait);
            }

            statusRet = m_Camera.Size.AOI.Set(rect);

            // update top aoi
            numericUpDownAoiTop.Minimum = 0;
            numericUpDownAoiTop.Maximum = numericUpDownAoiTop.Value + trackBarAoiHeight.Maximum - trackBarAoiHeight.Value;
            trackBarAoiTop.SetRange((int)numericUpDownAoiTop.Minimum, (int)numericUpDownAoiTop.Maximum);

            labelAoiTopMin.Text = trackBarAoiTop.Minimum.ToString();
            labelAoiTopMax.Text = trackBarAoiTop.Maximum.ToString();

            // memory reallocation
            int[] idList;
            m_Camera.Memory.GetList(out idList);

            statusRet = MemoryHelper.ClearSequence(m_Camera);
            statusRet = MemoryHelper.FreeImageMems(m_Camera);

            statusRet = MemoryHelper.AllocImageMems(m_Camera, idList.Count());
            statusRet = MemoryHelper.InitSequence(m_Camera);

            if (isLive)
            {
                statusRet = m_Camera.Acquisition.Capture();
            }

            // inform our main form
            AOIChanged.Invoke(this, EventArgs.Empty);
        }
예제 #3
0
        private void comboBoxFormatSubsamplingVertical_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBoxFormatSubsamplingVertical.Focused)
            {
                uEye.Defines.Status statusRet;

                Boolean isLive;
                statusRet = m_Camera.Acquisition.HasStarted(out isLive);

                if (isLive)
                {
                    statusRet = m_Camera.Acquisition.Stop(uEye.Defines.DeviceParameter.Wait);
                }

                uEye.Defines.SubsamplingMode mode = GetSubsamplingMode();
                statusRet = m_Camera.Size.Subsampling.Set(mode);

                // memory reallocation
                int[] idList;
                m_Camera.Memory.GetList(out idList);

                statusRet = MemoryHelper.ClearSequence(m_Camera);
                statusRet = MemoryHelper.FreeImageMems(m_Camera);

                statusRet = MemoryHelper.AllocImageMems(m_Camera, idList.Count());
                statusRet = MemoryHelper.InitSequence(m_Camera);

                if (isLive)
                {
                    statusRet = m_Camera.Acquisition.Capture();
                }

                updateHorizontalSubsampling();
                updateVerticalBinning();
                updateHorizontalBinning();

                // inform our main form
                AOIChanged.Invoke(this, EventArgs.Empty);
            }
        }