Commit a469b622 张东亮

监控相机优化

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