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}"); + } + } } }