殺蟲0116

This commit is contained in:
JEFF 2025-01-16 20:19:38 +08:00
parent bd94bc1f45
commit 987ef1083c
2 changed files with 7 additions and 2 deletions

View File

@ -17,6 +17,7 @@ namespace Camera_connect
private readonly List<Camera> allCameras = new List<Camera>(); private readonly List<Camera> allCameras = new List<Camera>();
private readonly PixelDataConverter pxConvert = new PixelDataConverter(); private readonly PixelDataConverter pxConvert = new PixelDataConverter();
private bool isGrabbing; private bool isGrabbing;
private bool isCameraOpen = false;
public BaslerCamera(Main form) public BaslerCamera(Main form)
{ {
@ -27,6 +28,7 @@ namespace Camera_connect
{ {
var allCameraInfos = CameraFinder.Enumerate(); var allCameraInfos = CameraFinder.Enumerate();
allCameras.Clear(); allCameras.Clear();
if (isCameraOpen == true) return;
foreach (var cameraInfo in allCameraInfos) foreach (var cameraInfo in allCameraInfos)
{ {
@ -36,6 +38,7 @@ namespace Camera_connect
camera.StreamGrabber.ImageGrabbed += StreamGrabber_ImageGrabbed; camera.StreamGrabber.ImageGrabbed += StreamGrabber_ImageGrabbed;
camera.Open(); camera.Open();
allCameras.Add(camera); allCameras.Add(camera);
isCameraOpen = true; ;
} }
isGrabbing = true; isGrabbing = true;
@ -92,6 +95,7 @@ namespace Camera_connect
allCameras[0].StreamGrabber.Stop(); allCameras[0].StreamGrabber.Stop();
CameraImageEvent = null; // 解除訂閱事件,防止影像更新 CameraImageEvent = null; // 解除訂閱事件,防止影像更新
isGrabbing = false; isGrabbing = false;
isCameraOpen = false;
} }
else else
{ {

View File

@ -125,7 +125,6 @@ namespace Camera_connect
} }
} }
private void bt_OneShot_Click(object sender, EventArgs e) private void bt_OneShot_Click(object sender, EventArgs e)
{ {
try try
@ -145,6 +144,7 @@ namespace Camera_connect
} }
else if (selectedCamera == "Basler") else if (selectedCamera == "Basler")
{ {
if (isKeepShotting == true) return;
if (Basler != null) if (Basler != null)
{ {
Basler.OneShot(); // 單次拍攝 Basler.OneShot(); // 單次拍攝
@ -164,7 +164,7 @@ namespace Camera_connect
private void bt_KeepShot_Click(object sender, EventArgs e) private void bt_KeepShot_Click(object sender, EventArgs e)
{ {
string? selectedCamera = comboBox1.SelectedItem?.ToString(); string? selectedCamera = comboBox1.SelectedItem?.ToString();
if (isKeepShotting == true) return;
if (selectedCamera == "IDS") if (selectedCamera == "IDS")
{ {
// IDS 相機的連續拍攝邏輯 // IDS 相機的連續拍攝邏輯
@ -205,6 +205,7 @@ namespace Camera_connect
} }
else if (selectedCamera == "Basler") else if (selectedCamera == "Basler")
{ {
if (Basler != null) if (Basler != null)
{ {
Basler.Stop(); Basler.Stop();