救救我啊我救我
This commit is contained in:
parent
987ef1083c
commit
3a309775a0
@ -54,6 +54,7 @@ namespace Camera_connect
|
||||
}
|
||||
|
||||
allCameras.Clear();
|
||||
isCameraOpen = false;
|
||||
isGrabbing = false;
|
||||
MessageBox.Show("相機已斷開連接");
|
||||
}
|
||||
@ -74,17 +75,17 @@ namespace Camera_connect
|
||||
|
||||
public void KeepShot()
|
||||
{
|
||||
if (isGrabbing && allCameras.Count > 0)
|
||||
if (!isGrabbing || allCameras.Count == 0)
|
||||
{
|
||||
MessageBox.Show("請確保相機已連接!");
|
||||
return;
|
||||
}
|
||||
|
||||
var camera = allCameras[0];
|
||||
camera.Parameters[PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.Continuous);
|
||||
camera.StreamGrabber.Start(GrabStrategy.OneByOne, GrabLoop.ProvidedByStreamGrabber);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("請確保相機已連接!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
@ -94,8 +95,8 @@ namespace Camera_connect
|
||||
camera.StreamGrabber.Stop(); // 停止抓取
|
||||
allCameras[0].StreamGrabber.Stop();
|
||||
CameraImageEvent = null; // 解除訂閱事件,防止影像更新
|
||||
isGrabbing = false;
|
||||
isCameraOpen = false;
|
||||
isGrabbing = true;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
103
Camera_connect/Main.Designer.cs
generated
103
Camera_connect/Main.Designer.cs
generated
@ -28,58 +28,59 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
bt_connect = new Button();
|
||||
bt_OneShot = new Button();
|
||||
bt_KeepShot = new Button();
|
||||
bt_Stop = new Button();
|
||||
Bt_connect = new Button();
|
||||
Bt_OneShot = new Button();
|
||||
Bt_KeepShot = new Button();
|
||||
Bt_Stop = new Button();
|
||||
pictureBox1 = new PictureBox();
|
||||
Label_status = new Label();
|
||||
comboBox1 = new ComboBox();
|
||||
camera_serialnumber = new TextBox();
|
||||
label2 = new Label();
|
||||
label3 = new Label();
|
||||
Bt_disconnect = new Button();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// bt_connect
|
||||
// Bt_connect
|
||||
//
|
||||
bt_connect.Location = new Point(99, 75);
|
||||
bt_connect.Name = "bt_connect";
|
||||
bt_connect.Size = new Size(116, 63);
|
||||
bt_connect.TabIndex = 0;
|
||||
bt_connect.Text = "相機連線";
|
||||
bt_connect.UseVisualStyleBackColor = true;
|
||||
bt_connect.Click += bt_connect_Click;
|
||||
Bt_connect.Location = new Point(99, 75);
|
||||
Bt_connect.Name = "Bt_connect";
|
||||
Bt_connect.Size = new Size(116, 63);
|
||||
Bt_connect.TabIndex = 0;
|
||||
Bt_connect.Text = "相機連線";
|
||||
Bt_connect.UseVisualStyleBackColor = true;
|
||||
Bt_connect.Click += Bt_connect_Click;
|
||||
//
|
||||
// bt_OneShot
|
||||
// Bt_OneShot
|
||||
//
|
||||
bt_OneShot.Location = new Point(99, 242);
|
||||
bt_OneShot.Name = "bt_OneShot";
|
||||
bt_OneShot.Size = new Size(116, 63);
|
||||
bt_OneShot.TabIndex = 1;
|
||||
bt_OneShot.Text = "單張擷取";
|
||||
bt_OneShot.UseVisualStyleBackColor = true;
|
||||
bt_OneShot.Click += bt_OneShot_Click;
|
||||
Bt_OneShot.Location = new Point(99, 242);
|
||||
Bt_OneShot.Name = "Bt_OneShot";
|
||||
Bt_OneShot.Size = new Size(116, 63);
|
||||
Bt_OneShot.TabIndex = 1;
|
||||
Bt_OneShot.Text = "單張擷取";
|
||||
Bt_OneShot.UseVisualStyleBackColor = true;
|
||||
Bt_OneShot.Click += Bt_OneShot_Click;
|
||||
//
|
||||
// bt_KeepShot
|
||||
// Bt_KeepShot
|
||||
//
|
||||
bt_KeepShot.Location = new Point(243, 242);
|
||||
bt_KeepShot.Name = "bt_KeepShot";
|
||||
bt_KeepShot.Size = new Size(116, 63);
|
||||
bt_KeepShot.TabIndex = 2;
|
||||
bt_KeepShot.Text = "連續取像";
|
||||
bt_KeepShot.UseVisualStyleBackColor = true;
|
||||
bt_KeepShot.Click += bt_KeepShot_Click;
|
||||
Bt_KeepShot.Location = new Point(243, 242);
|
||||
Bt_KeepShot.Name = "Bt_KeepShot";
|
||||
Bt_KeepShot.Size = new Size(116, 63);
|
||||
Bt_KeepShot.TabIndex = 2;
|
||||
Bt_KeepShot.Text = "連續取像";
|
||||
Bt_KeepShot.UseVisualStyleBackColor = true;
|
||||
Bt_KeepShot.Click += Bt_KeepShot_Click;
|
||||
//
|
||||
// bt_Stop
|
||||
// Bt_Stop
|
||||
//
|
||||
bt_Stop.Location = new Point(385, 242);
|
||||
bt_Stop.Name = "bt_Stop";
|
||||
bt_Stop.Size = new Size(116, 63);
|
||||
bt_Stop.TabIndex = 3;
|
||||
bt_Stop.Text = "停止";
|
||||
bt_Stop.UseVisualStyleBackColor = true;
|
||||
bt_Stop.Click += bt_Stop_Click;
|
||||
Bt_Stop.Location = new Point(385, 242);
|
||||
Bt_Stop.Name = "Bt_Stop";
|
||||
Bt_Stop.Size = new Size(116, 63);
|
||||
Bt_Stop.TabIndex = 3;
|
||||
Bt_Stop.Text = "停止";
|
||||
Bt_Stop.UseVisualStyleBackColor = true;
|
||||
Bt_Stop.Click += Bt_Stop_Click;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
@ -102,7 +103,7 @@
|
||||
//
|
||||
comboBox1.FormattingEnabled = true;
|
||||
comboBox1.Items.AddRange(new object[] { "Basler", "IDS" });
|
||||
comboBox1.Location = new Point(300, 75);
|
||||
comboBox1.Location = new Point(424, 74);
|
||||
comboBox1.Name = "comboBox1";
|
||||
comboBox1.Size = new Size(182, 31);
|
||||
comboBox1.TabIndex = 6;
|
||||
@ -132,21 +133,32 @@
|
||||
label3.TabIndex = 11;
|
||||
label3.Text = "相機序號";
|
||||
//
|
||||
// Bt_disconnect
|
||||
//
|
||||
Bt_disconnect.Location = new Point(263, 75);
|
||||
Bt_disconnect.Name = "Bt_disconnect";
|
||||
Bt_disconnect.Size = new Size(116, 63);
|
||||
Bt_disconnect.TabIndex = 12;
|
||||
Bt_disconnect.Text = "中斷連線";
|
||||
Bt_disconnect.UseVisualStyleBackColor = true;
|
||||
Bt_disconnect.Click += Bt_disconnect_Click;
|
||||
//
|
||||
// Main
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(11F, 23F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(1746, 1294);
|
||||
Controls.Add(Bt_disconnect);
|
||||
Controls.Add(label3);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(camera_serialnumber);
|
||||
Controls.Add(comboBox1);
|
||||
Controls.Add(Label_status);
|
||||
Controls.Add(pictureBox1);
|
||||
Controls.Add(bt_Stop);
|
||||
Controls.Add(bt_KeepShot);
|
||||
Controls.Add(bt_OneShot);
|
||||
Controls.Add(bt_connect);
|
||||
Controls.Add(Bt_Stop);
|
||||
Controls.Add(Bt_KeepShot);
|
||||
Controls.Add(Bt_OneShot);
|
||||
Controls.Add(Bt_connect);
|
||||
Name = "Main";
|
||||
Text = "Form1";
|
||||
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
||||
@ -156,15 +168,16 @@
|
||||
|
||||
#endregion
|
||||
|
||||
private Button bt_connect;
|
||||
private Button bt_OneShot;
|
||||
private Button bt_KeepShot;
|
||||
private Button bt_Stop;
|
||||
private Button Bt_connect;
|
||||
private Button Bt_OneShot;
|
||||
private Button Bt_KeepShot;
|
||||
private Button Bt_Stop;
|
||||
private PictureBox pictureBox1;
|
||||
private Label Label_status;
|
||||
private ComboBox comboBox1;
|
||||
private TextBox camera_serialnumber;
|
||||
private Label label2;
|
||||
private Label label3;
|
||||
private Button Bt_disconnect;
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ namespace Camera_connect
|
||||
}
|
||||
//IDS測試相機序號 4103372214
|
||||
|
||||
private async void bt_connect_Click(object sender, EventArgs e)
|
||||
private async void Bt_connect_Click(object sender, EventArgs e)
|
||||
{
|
||||
string? selectedCamera = comboBox1.SelectedItem?.ToString();
|
||||
|
||||
@ -125,7 +125,7 @@ namespace Camera_connect
|
||||
}
|
||||
}
|
||||
|
||||
private void bt_OneShot_Click(object sender, EventArgs e)
|
||||
private void Bt_OneShot_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -161,7 +161,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();
|
||||
if (isKeepShotting == true) return;
|
||||
@ -175,9 +175,7 @@ namespace Camera_connect
|
||||
// Basler 相機的連續拍攝邏輯
|
||||
if (Basler != null)
|
||||
{
|
||||
if (Basler != null)
|
||||
{
|
||||
Basler.KeepShot(); // 啟動連續拍攝
|
||||
Basler.KeepShot();
|
||||
isKeepShotting = true;
|
||||
}
|
||||
else
|
||||
@ -186,9 +184,8 @@ namespace Camera_connect
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void bt_Stop_Click(object sender, EventArgs e)
|
||||
private void Bt_Stop_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!isKeepShotting)
|
||||
{
|
||||
@ -208,9 +205,9 @@ namespace Camera_connect
|
||||
|
||||
if (Basler != null)
|
||||
{
|
||||
Basler.Stop();
|
||||
Basler.CameraImageEvent -= Camera_CameraImageEvent;
|
||||
Label_status.Text = "basler結束連續取像";
|
||||
Basler?.Stop();
|
||||
isKeepShotting = false;
|
||||
Label_status.Text = "Basler結束連續取像";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -256,14 +253,18 @@ namespace Camera_connect
|
||||
|
||||
private void Camera_CameraImageEvent(Bitmap bmp)
|
||||
{
|
||||
// 直接更新單一 PictureBox1
|
||||
pictureBox1.BeginInvoke(new MethodInvoker(delegate
|
||||
pictureBox1.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
Bitmap old = pictureBox1.Image as Bitmap;
|
||||
Bitmap? old = pictureBox1.Image as Bitmap;
|
||||
pictureBox1.Image = bmp;
|
||||
if (old != null)
|
||||
old.Dispose();
|
||||
}));
|
||||
old?.Dispose();
|
||||
});
|
||||
}
|
||||
|
||||
private void Bt_disconnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
Basler.Close();
|
||||
Label_status.Text = "相機中斷連線";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user