Commit a469b622 张东亮

监控相机优化

1 个父辈 deaffbad
......@@ -34,7 +34,7 @@ public class HIKCamera
public event EventHandler<Bitmap> camera_event;
public string DeviceName = "monitor1";
public PictureBox picture = new PictureBox();
public bool LoadCameraConfig(string CameraID, out string msg)
public bool LoadCameraConfig(string CameraID, out string msg,object preview=null)
{
Name = CameraID;
msg = "";
......@@ -65,7 +65,14 @@ public class HIKCamera
return false;
}
//PictureBox p1 = new PictureBox();
camera.PreviewImage(DeviceName, picture.Handle);
if(preview==null)
{
camera.PreviewImage(DeviceName, picture.Handle);
}
else
{
camera.PreviewImage(DeviceName, (IntPtr)preview);
}
camera.Open(DeviceName);
Bitmap bmp = camera.GetImage(DeviceName);
if (bmp == null)
......@@ -74,10 +81,10 @@ public class HIKCamera
LogUtil.error(Name + $"监控相机打开失败");
return false;
}
camerathread = new Thread(new ThreadStart(startCamera));
camerathread.Start();
GC.KeepAlive(camerathread);
camera_event?.Invoke(this, bmp);
//camerathread = new Thread(new ThreadStart(startCamera));
//camerathread.Start();
//GC.KeepAlive(camerathread);
return true;
}
int errortimes = 0;
......
......@@ -43,7 +43,7 @@ namespace DeviceLibrary
public static HIKCamera CameraA=new HIKCamera();
public static void Init() {
public static void Init(params object[] param) {
string msg = "";
try
{
......@@ -80,7 +80,7 @@ namespace DeviceLibrary
msg += crc.GetString(L.iocard_init_fail, "IO板卡初始化失败")+ "\n";
}
// IOManager.CloseAllConnection();
if (!CameraA.LoadCameraConfig("CameraA", out string errmsg))
if (!CameraA.LoadCameraConfig("CameraA", out string errmsg, param[0]))
{
IsLoadOk = false;
msg += errmsg + "\r\n";
......
......@@ -131,9 +131,10 @@ namespace TheMachine
RobotManage.CameraA.camera_event += CameraA_camera_event;
CodeManager.camera_event += CameraB_camera_event;
IntPtr camAIntptr = pictureBox1.Handle;
var loadtask = Task.Run(() =>
{
RobotManage.Init();
RobotManage.Init(camAIntptr);
});
ListViewItem lvi = new ListViewItem(new string[] { "", DateTime.Now.ToString(), crc.GetString(L.device_initializing, "设备加载中,请稍后...") });
lvi.ForeColor = Color.DarkGreen;
......@@ -149,7 +150,7 @@ namespace TheMachine
this.Invoke((EventHandler<Bitmap>)delegate
{
pictureBox1.Visible = true;
pictureBox1.Image = e;
//pictureBox1.Image = e;
}, sender, e);
}
private void CameraB_camera_event(object sender, Bitmap e)
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!