From 2e8b38ddf4bbb89734c75beaa4e64a26ebbcf75c Mon Sep 17 00:00:00 2001 From: JEFF Date: Wed, 22 Jan 2025 14:00:12 +0800 Subject: [PATCH] =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=E8=AA=BF=E6=95=B4Basler?= =?UTF-8?q?=E6=9B=9D=E5=85=89=E6=99=82=E9=96=93=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Camera_connect/BaslerCamera.cs | 51 ++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/Camera_connect/BaslerCamera.cs b/Camera_connect/BaslerCamera.cs index 976cfb4..58a7645 100644 --- a/Camera_connect/BaslerCamera.cs +++ b/Camera_connect/BaslerCamera.cs @@ -129,24 +129,6 @@ namespace Camera_connect } } - //private void StreamGrabber_ImageGrabbed1(object sender, ImageGrabbedEventArgs e) - //{ - // lock (lockObject) - // { - // IGrabResult grabResult1 = e.GrabResult; - // if (grabResult1.IsValid && Graber) - // { - // // 將 IGrabResult 物件存入陣列 - // grabResults[1] = grabResult1; - // // 在需要時轉換為 Bitmap 物件 - // images[1] = GrabResult2Bmp(grabResults[1]); - // //委托就用到了! - // CameraImageEvent1(images[1]); - // } - // } - //} - - /// /// 開始擷取 /// @@ -223,6 +205,8 @@ namespace Camera_connect { if (i < CameraNumber) { + // 更新曝光時間 + UpdateExposureTime(i); //PLCamera:所有可用于basler摄像机设备dByStre的参数名称列表 SingleFrame:启用单帧采集模式。 allCameras[i].Parameters[PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.SingleFrame); allCameras[i].StreamGrabber.Start(1, GrabStrategy.OneByOne, GrabLoop.ProvidedByStreamGrabber); @@ -248,6 +232,9 @@ namespace Camera_connect if (i < CameraNumber) { + // 更新曝光時間 + UpdateExposureTime(i); + //Continuous:啟用連續採集模式。 allCameras[i].Parameters[PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.Continuous); //camera.StreamGrabber.Start(GrabStrategy.OneByOne, GrabLoop.ProvidedByStreamGrabber); @@ -288,5 +275,33 @@ namespace Camera_connect MessageBox.Show("該相機已停止擷取"); } } + public void UpdateExposureTime(int cameraIndex) + { + try + { + if (cameraIndex < CameraNumber) + { + // 從 TextBox 中讀取曝光時間 + string exposureTimeText = form.Basler_ExposureTime.Text; + if (double.TryParse(exposureTimeText, out double exposureTime)) + { + // 設定曝光時間到相機 + allCameras[cameraIndex].Parameters[PLCamera.ExposureTime].SetValue(exposureTime); + } + else + { + MessageBox.Show("請輸入有效的曝光時間!"); + } + } + else + { + MessageBox.Show("請確保相機索引正確!"); + } + } + catch (Exception ex) + { + MessageBox.Show($"設定曝光時間時發生錯誤: {ex.Message}"); + } + } } }