直接封装成用户控件使用,无需再研究原SDK,同时解决一窗多枪的事件注册问题。using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Windows.Forms; namespace tzUcPlate{ public partial class tzUcPlate : UserControl { TZplateSDK.TZCam cam = new TZplateSDK.TZCam(); public tzUcPlate() { InitializeComponent(); } #region 属性 string _CamearIP = ""; ///
/// 摄像机IP /// public string CamearIP { get { return _CamearIP; } set { _CamearIP = value; } } bool _isMaxVido = true; ///
/// 是/否允许放大实时视频 /// public bool IsMaxVido { get { return _isMaxVido; } set { _isMaxVido = value; } } #endregion 属性 #region 私有有变量 ///
/// 是/否在播放实时视频 /// bool isPlaying = false; #endregion 私有有变量 #region 事件 public delegate void OnGetPlateDeg(object sender, TZplateSDK.PlateEventAges e); public event OnGetPlateDeg OnGetPlage; public event EventHandler
OnSerialData; #endregion 事件 #region 方法 /// /// 连接摄像机 /// public void Connect() { cam.CamIP = _CamearIP; cam.OnGetPlage += new TZplateSDK.TZCam.OnGetPlateDeg(cam_OnGetPlage); cam.OnSerialData += cam_OnSerialData; cam.init(); } /// /// 串口透传回传事件 /// /// /// void cam_OnSerialData(object sender, TZplateSDK.OnSerialDataAges data) { if (OnSerialData != null) OnSerialData(this, data); } /// /// 识别结果事件 /// /// /// void cam_OnGetPlage(object sender, TZplateSDK.PlateEventAges e) { if (OnGetPlage != null) OnGetPlage(this, e); } /// /// 播放实时视频到指定控件 /// public void Play() { cam.StartPaly(pictureBox1); pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; isPlaying = true; } /// /// 截图 /// /// public Image CapturePicture() { return cam.getPicture(); } /// /// 模拟触发识别 /// /// public int Trigger() { return cam.Trigger(); } /// /// 开闸信号 /// public void Open() { cam.Open(); } /// /// 通过485透传发送数据 /// /// public void SerialSend(byte[] data) { cam.SerialSend(data); } #endregion 方法 /// /// 开启相机485透传,有些相机不需要开启就可以的,方法内部代码留空即可。 /// /// public void OpenSerial(int baudrate) { } /// /// 关闭相机 /// public void Close() { // cam.Close(); } private void tzUcPlate_Load(object sender, EventArgs e) { } /// /// 双击视频时全屏显示实时视频 /// /// /// private void pictureBox1_DoubleClick(object sender, EventArgs e) { if (isPlaying && IsMaxVido) { frmMaxVido frm = new frmMaxVido(cam); frm.play(); frm.ShowDialog(); this.Play(); } } private void pictureBox1_Paint(object sender, PaintEventArgs e) { } }