FrmUsbCamera.cs 2.7 KB
using HalconDotNet;
using LineSoldering.DeviceLibrary;
using LineSoldering.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LineSoldering.Common;

namespace LineSoldering.Client
{
    public partial class FrmUsbCamera : FrmBase
    {
        public FrmUsbCamera()
        {
            InitializeComponent();
        }

        private void btnOpen_Click(object sender, EventArgs e)
        {
            if (UsbCameraHDevelop.OpenCamera())
            {
                FormStatus(true);
            }
        }
        private void FormStatus(bool open)
        {
            btnOpen.Enabled = !open;
            btnCloseCamera.Enabled = open;
         
            timer1.Enabled = open;
        }
      
        private void btnCloseCamera_Click(object sender, EventArgs e)
        { 
            UsbCameraHDevelop.CloseCamera();
            FormStatus(false);
        }

        private void FrmCamera_Load(object sender, EventArgs e)
        {
            if (UsbCameraHDevelop.OpenCamera())
            {
                FormStatus(true);
            }
            else
            {
                MessageBox.Show("打开摄像机失败");
                this.Close();
            }
        }

        private void FrmCamera_FormClosed(object sender, FormClosedEventArgs e)
        {
        }
        private int preIndex = 0;
        int dWidth = 0; int dHeight = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {
            preIndex++;
            try { 
            HObject ho_Image =  UsbCameraHDevelop.GrabImage(); 
            if (ho_Image != null)
            {
                if (dWidth <= 0)
                {
                    HTuple width, height;
                    //int dWidth = 0; int dHeight = 0;
                    HOperatorSet.GetImageSize(ho_Image, out width, out height);

                    dWidth = (int)width.D;
                    dHeight = (int)height.D;
                    hWindowControl1.HalconWindow.SetPart(0, 0, dHeight, dWidth);
                }

                HOperatorSet.DispObj(ho_Image, hWindowControl1.HalconWindow);
                }
            }
            catch (Exception ex)
            {
                LogUtil.error("获取实时出错:" + ex.ToString());
            }
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void FrmUsbCamera_FormClosing(object sender, FormClosingEventArgs e)
        {
            FormStatus(false);
            UsbCameraHDevelop.CloseCamera();
        }
    }
}