This commit is contained in:
liyaobang 2025-04-24 09:00:44 +08:00
parent 33e94b92f9
commit 99226f4cb0
2 changed files with 750 additions and 404 deletions

View File

@ -62,10 +62,19 @@
btnMotorForward = new AntdUI.Button(); btnMotorForward = new AntdUI.Button();
iptMotorSpeed = new AntdUI.InputNumber(); iptMotorSpeed = new AntdUI.InputNumber();
label8 = new AntdUI.Label(); label8 = new AntdUI.Label();
panel3 = new AntdUI.Panel();
btnSaveBarrierPos = new AntdUI.Button();
iptBarrierPos = new AntdUI.InputNumber();
label10 = new AntdUI.Label();
btnBarrierZero = new AntdUI.Button();
btnBarrier = new AntdUI.Button();
iptBarrierSpeed = new AntdUI.InputNumber();
label11 = new AntdUI.Label();
imageViewerControl1 = new ImageViewerControl(); imageViewerControl1 = new ImageViewerControl();
panel1.SuspendLayout(); panel1.SuspendLayout();
panel2.SuspendLayout(); panel2.SuspendLayout();
panelMotor.SuspendLayout(); panelMotor.SuspendLayout();
panel3.SuspendLayout();
SuspendLayout(); SuspendLayout();
// //
// titlebar // titlebar
@ -77,12 +86,11 @@
titlebar.Font = new Font("Microsoft YaHei UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 134); titlebar.Font = new Font("Microsoft YaHei UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
titlebar.ForeColor = Color.White; titlebar.ForeColor = Color.White;
titlebar.Location = new Point(0, 0); titlebar.Location = new Point(0, 0);
titlebar.Margin = new Padding(4, 4, 4, 4);
titlebar.Mode = AntdUI.TAMode.Dark; titlebar.Mode = AntdUI.TAMode.Dark;
titlebar.Name = "titlebar"; titlebar.Name = "titlebar";
titlebar.ShowButton = true; titlebar.ShowButton = true;
titlebar.ShowIcon = true; titlebar.ShowIcon = true;
titlebar.Size = new Size(1551, 44); titlebar.Size = new Size(1210, 37);
titlebar.SubText = "视觉定位系统"; titlebar.SubText = "视觉定位系统";
titlebar.TabIndex = 1; titlebar.TabIndex = 1;
titlebar.Text = "山东迭慧智能科技有限公司"; titlebar.Text = "山东迭慧智能科技有限公司";
@ -100,39 +108,35 @@
panel1.Controls.Add(sltCameraName); panel1.Controls.Add(sltCameraName);
panel1.Controls.Add(label1); panel1.Controls.Add(label1);
panel1.Dock = DockStyle.Top; panel1.Dock = DockStyle.Top;
panel1.Location = new Point(0, 44); panel1.Location = new Point(0, 37);
panel1.Margin = new Padding(4, 4, 4, 4);
panel1.Name = "panel1"; panel1.Name = "panel1";
panel1.Size = new Size(1551, 66); panel1.Size = new Size(1210, 56);
panel1.TabIndex = 2; panel1.TabIndex = 2;
panel1.Text = "panel1"; panel1.Text = "panel1";
// //
// iptThreshold // iptThreshold
// //
iptThreshold.Location = new Point(1407, 7); iptThreshold.Location = new Point(1094, 6);
iptThreshold.Margin = new Padding(4, 4, 4, 4);
iptThreshold.Name = "iptThreshold"; iptThreshold.Name = "iptThreshold";
iptThreshold.Size = new Size(138, 51); iptThreshold.Size = new Size(107, 43);
iptThreshold.TabIndex = 15; iptThreshold.TabIndex = 15;
iptThreshold.Text = "0"; iptThreshold.Text = "0";
// //
// label6 // label6
// //
label6.BackColor = SystemColors.Window; label6.BackColor = SystemColors.Window;
label6.Location = new Point(1342, 21); label6.Location = new Point(1044, 18);
label6.Margin = new Padding(4, 4, 4, 4);
label6.Name = "label6"; label6.Name = "label6";
label6.Size = new Size(73, 27); label6.Size = new Size(57, 23);
label6.TabIndex = 14; label6.TabIndex = 14;
label6.Text = "定位阈值"; label6.Text = "定位阈值";
// //
// btnSelectBackImg // btnSelectBackImg
// //
btnSelectBackImg.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnSelectBackImg.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnSelectBackImg.Location = new Point(1238, 13); btnSelectBackImg.Location = new Point(963, 11);
btnSelectBackImg.Margin = new Padding(4, 4, 4, 4);
btnSelectBackImg.Name = "btnSelectBackImg"; btnSelectBackImg.Name = "btnSelectBackImg";
btnSelectBackImg.Size = new Size(96, 45); btnSelectBackImg.Size = new Size(75, 38);
btnSelectBackImg.TabIndex = 13; btnSelectBackImg.TabIndex = 13;
btnSelectBackImg.Text = "打开"; btnSelectBackImg.Text = "打开";
btnSelectBackImg.Type = AntdUI.TTypeMini.Primary; btnSelectBackImg.Type = AntdUI.TTypeMini.Primary;
@ -140,70 +144,63 @@
// btnSelectModel // btnSelectModel
// //
btnSelectModel.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnSelectModel.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnSelectModel.Location = new Point(675, 11); btnSelectModel.Location = new Point(525, 9);
btnSelectModel.Margin = new Padding(4, 4, 4, 4);
btnSelectModel.Name = "btnSelectModel"; btnSelectModel.Name = "btnSelectModel";
btnSelectModel.Size = new Size(96, 45); btnSelectModel.Size = new Size(75, 38);
btnSelectModel.TabIndex = 12; btnSelectModel.TabIndex = 12;
btnSelectModel.Text = "打开"; btnSelectModel.Text = "打开";
btnSelectModel.Type = AntdUI.TTypeMini.Primary; btnSelectModel.Type = AntdUI.TTypeMini.Primary;
// //
// iptBackImg // iptBackImg
// //
iptBackImg.Location = new Point(892, 7); iptBackImg.Location = new Point(694, 6);
iptBackImg.Margin = new Padding(4, 4, 4, 4);
iptBackImg.Name = "iptBackImg"; iptBackImg.Name = "iptBackImg";
iptBackImg.PlaceholderText = "请选择背景图片"; iptBackImg.PlaceholderText = "请选择背景图片";
iptBackImg.Size = new Size(338, 51); iptBackImg.Size = new Size(263, 43);
iptBackImg.TabIndex = 10; iptBackImg.TabIndex = 10;
// //
// label3 // label3
// //
label3.BackColor = SystemColors.Window; label3.BackColor = SystemColors.Window;
label3.Location = new Point(779, 21); label3.Location = new Point(606, 18);
label3.Margin = new Padding(4, 4, 4, 4);
label3.Name = "label3"; label3.Name = "label3";
label3.Size = new Size(105, 27); label3.Size = new Size(82, 23);
label3.TabIndex = 9; label3.TabIndex = 9;
label3.Text = "背景图片路径"; label3.Text = "背景图片路径";
// //
// iptModel // iptModel
// //
iptModel.Location = new Point(329, 7); iptModel.Location = new Point(256, 6);
iptModel.Margin = new Padding(4, 4, 4, 4);
iptModel.Name = "iptModel"; iptModel.Name = "iptModel";
iptModel.PlaceholderText = "请选择算法"; iptModel.PlaceholderText = "请选择算法";
iptModel.Size = new Size(338, 51); iptModel.Size = new Size(263, 43);
iptModel.TabIndex = 3; iptModel.TabIndex = 3;
// //
// label2 // label2
// //
label2.BackColor = SystemColors.Window; label2.BackColor = SystemColors.Window;
label2.Location = new Point(248, 21); label2.Location = new Point(193, 18);
label2.Margin = new Padding(4, 4, 4, 4);
label2.Name = "label2"; label2.Name = "label2";
label2.Size = new Size(73, 27); label2.Size = new Size(57, 23);
label2.TabIndex = 2; label2.TabIndex = 2;
label2.Text = "算法路径"; label2.Text = "算法路径";
// //
// sltCameraName // sltCameraName
// //
sltCameraName.List = true; sltCameraName.List = true;
sltCameraName.Location = new Point(93, 8); sltCameraName.Location = new Point(72, 7);
sltCameraName.Margin = new Padding(4, 4, 4, 4);
sltCameraName.MaxCount = 10; sltCameraName.MaxCount = 10;
sltCameraName.Name = "sltCameraName"; sltCameraName.Name = "sltCameraName";
sltCameraName.PlaceholderText = "请选择相机"; sltCameraName.PlaceholderText = "请选择相机";
sltCameraName.Size = new Size(148, 51); sltCameraName.Size = new Size(115, 43);
sltCameraName.TabIndex = 1; sltCameraName.TabIndex = 1;
// //
// label1 // label1
// //
label1.BackColor = SystemColors.Window; label1.BackColor = SystemColors.Window;
label1.Location = new Point(12, 21); label1.Location = new Point(9, 18);
label1.Margin = new Padding(4, 4, 4, 4);
label1.Name = "label1"; label1.Name = "label1";
label1.Size = new Size(73, 27); label1.Size = new Size(57, 23);
label1.TabIndex = 0; label1.TabIndex = 0;
label1.Text = "相机名称"; label1.Text = "相机名称";
// //
@ -222,39 +219,35 @@
panel2.Controls.Add(sltDirection); panel2.Controls.Add(sltDirection);
panel2.Controls.Add(label4); panel2.Controls.Add(label4);
panel2.Dock = DockStyle.Top; panel2.Dock = DockStyle.Top;
panel2.Location = new Point(0, 110); panel2.Location = new Point(0, 93);
panel2.Margin = new Padding(4, 4, 4, 4);
panel2.Name = "panel2"; panel2.Name = "panel2";
panel2.Size = new Size(1551, 66); panel2.Size = new Size(1210, 56);
panel2.TabIndex = 3; panel2.TabIndex = 3;
panel2.Text = "panel2"; panel2.Text = "panel2";
// //
// iptSpeed // iptSpeed
// //
iptSpeed.Location = new Point(329, 7); iptSpeed.Location = new Point(256, 6);
iptSpeed.Margin = new Padding(4, 4, 4, 4);
iptSpeed.Name = "iptSpeed"; iptSpeed.Name = "iptSpeed";
iptSpeed.Size = new Size(138, 51); iptSpeed.Size = new Size(107, 43);
iptSpeed.TabIndex = 20; iptSpeed.TabIndex = 20;
iptSpeed.Text = "0"; iptSpeed.Text = "0";
// //
// label7 // label7
// //
label7.BackColor = SystemColors.Window; label7.BackColor = SystemColors.Window;
label7.Location = new Point(248, 21); label7.Location = new Point(193, 18);
label7.Margin = new Padding(4, 4, 4, 4);
label7.Name = "label7"; label7.Name = "label7";
label7.Size = new Size(73, 27); label7.Size = new Size(57, 23);
label7.TabIndex = 19; label7.TabIndex = 19;
label7.Text = "转盘速度"; label7.Text = "转盘速度";
// //
// btnSaveImg // btnSaveImg
// //
btnSaveImg.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnSaveImg.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnSaveImg.Location = new Point(1448, 13); btnSaveImg.Location = new Point(1126, 11);
btnSaveImg.Margin = new Padding(4, 4, 4, 4);
btnSaveImg.Name = "btnSaveImg"; btnSaveImg.Name = "btnSaveImg";
btnSaveImg.Size = new Size(96, 45); btnSaveImg.Size = new Size(75, 38);
btnSaveImg.TabIndex = 18; btnSaveImg.TabIndex = 18;
btnSaveImg.Text = "保存图像"; btnSaveImg.Text = "保存图像";
btnSaveImg.Type = AntdUI.TTypeMini.Primary; btnSaveImg.Type = AntdUI.TTypeMini.Primary;
@ -262,10 +255,9 @@
// btnSavePos // btnSavePos
// //
btnSavePos.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnSavePos.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnSavePos.Location = new Point(1302, 13); btnSavePos.Location = new Point(1013, 11);
btnSavePos.Margin = new Padding(4, 4, 4, 4);
btnSavePos.Name = "btnSavePos"; btnSavePos.Name = "btnSavePos";
btnSavePos.Size = new Size(96, 45); btnSavePos.Size = new Size(75, 38);
btnSavePos.TabIndex = 17; btnSavePos.TabIndex = 17;
btnSavePos.Text = "保存定位"; btnSavePos.Text = "保存定位";
btnSavePos.Type = AntdUI.TTypeMini.Primary; btnSavePos.Type = AntdUI.TTypeMini.Primary;
@ -273,10 +265,9 @@
// btnReverse // btnReverse
// //
btnReverse.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnReverse.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnReverse.Location = new Point(1162, 13); btnReverse.Location = new Point(904, 11);
btnReverse.Margin = new Padding(4, 4, 4, 4);
btnReverse.Name = "btnReverse"; btnReverse.Name = "btnReverse";
btnReverse.Size = new Size(96, 45); btnReverse.Size = new Size(75, 38);
btnReverse.TabIndex = 16; btnReverse.TabIndex = 16;
btnReverse.Text = "转盘反转"; btnReverse.Text = "转盘反转";
btnReverse.Type = AntdUI.TTypeMini.Primary; btnReverse.Type = AntdUI.TTypeMini.Primary;
@ -284,10 +275,9 @@
// btnForward // btnForward
// //
btnForward.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnForward.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnForward.Location = new Point(1034, 13); btnForward.Location = new Point(804, 11);
btnForward.Margin = new Padding(4, 4, 4, 4);
btnForward.Name = "btnForward"; btnForward.Name = "btnForward";
btnForward.Size = new Size(96, 45); btnForward.Size = new Size(75, 38);
btnForward.TabIndex = 15; btnForward.TabIndex = 15;
btnForward.Text = "转盘正转"; btnForward.Text = "转盘正转";
btnForward.Type = AntdUI.TTypeMini.Primary; btnForward.Type = AntdUI.TTypeMini.Primary;
@ -295,10 +285,9 @@
// btnLocalization // btnLocalization
// //
btnLocalization.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnLocalization.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnLocalization.Location = new Point(905, 13); btnLocalization.Location = new Point(704, 11);
btnLocalization.Margin = new Padding(4, 4, 4, 4);
btnLocalization.Name = "btnLocalization"; btnLocalization.Name = "btnLocalization";
btnLocalization.Size = new Size(96, 45); btnLocalization.Size = new Size(75, 38);
btnLocalization.TabIndex = 14; btnLocalization.TabIndex = 14;
btnLocalization.Text = "开始定位"; btnLocalization.Text = "开始定位";
btnLocalization.Type = AntdUI.TTypeMini.Primary; btnLocalization.Type = AntdUI.TTypeMini.Primary;
@ -306,31 +295,28 @@
// btnAcquisition // btnAcquisition
// //
btnAcquisition.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnAcquisition.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnAcquisition.Location = new Point(779, 13); btnAcquisition.Location = new Point(606, 11);
btnAcquisition.Margin = new Padding(4, 4, 4, 4);
btnAcquisition.Name = "btnAcquisition"; btnAcquisition.Name = "btnAcquisition";
btnAcquisition.Size = new Size(96, 45); btnAcquisition.Size = new Size(75, 38);
btnAcquisition.TabIndex = 13; btnAcquisition.TabIndex = 13;
btnAcquisition.Text = "开始采集"; btnAcquisition.Text = "开始采集";
btnAcquisition.Type = AntdUI.TTypeMini.Primary; btnAcquisition.Type = AntdUI.TTypeMini.Primary;
// //
// iptPosition // iptPosition
// //
iptPosition.Location = new Point(546, 7); iptPosition.Location = new Point(425, 6);
iptPosition.Margin = new Padding(4, 4, 4, 4);
iptPosition.Name = "iptPosition"; iptPosition.Name = "iptPosition";
iptPosition.ReadOnly = true; iptPosition.ReadOnly = true;
iptPosition.Size = new Size(225, 51); iptPosition.Size = new Size(175, 43);
iptPosition.TabIndex = 7; iptPosition.TabIndex = 7;
iptPosition.Text = "0"; iptPosition.Text = "0";
// //
// label5 // label5
// //
label5.BackColor = SystemColors.Window; label5.BackColor = SystemColors.Window;
label5.Location = new Point(474, 21); label5.Location = new Point(369, 18);
label5.Margin = new Padding(4, 4, 4, 4);
label5.Name = "label5"; label5.Name = "label5";
label5.Size = new Size(76, 27); label5.Size = new Size(59, 23);
label5.TabIndex = 6; label5.TabIndex = 6;
label5.Text = "当前位置"; label5.Text = "当前位置";
// //
@ -338,21 +324,19 @@
// //
sltDirection.Items.AddRange(new object[] { "正方向", "反方向" }); sltDirection.Items.AddRange(new object[] { "正方向", "反方向" });
sltDirection.List = true; sltDirection.List = true;
sltDirection.Location = new Point(93, 7); sltDirection.Location = new Point(72, 6);
sltDirection.Margin = new Padding(4, 4, 4, 4);
sltDirection.MaxCount = 10; sltDirection.MaxCount = 10;
sltDirection.Name = "sltDirection"; sltDirection.Name = "sltDirection";
sltDirection.PlaceholderText = "请选择方向"; sltDirection.PlaceholderText = "请选择方向";
sltDirection.Size = new Size(148, 51); sltDirection.Size = new Size(115, 43);
sltDirection.TabIndex = 5; sltDirection.TabIndex = 5;
// //
// label4 // label4
// //
label4.BackColor = SystemColors.Window; label4.BackColor = SystemColors.Window;
label4.Location = new Point(12, 21); label4.Location = new Point(9, 18);
label4.Margin = new Padding(4, 4, 4, 4);
label4.Name = "label4"; label4.Name = "label4";
label4.Size = new Size(73, 27); label4.Size = new Size(57, 23);
label4.TabIndex = 4; label4.TabIndex = 4;
label4.Text = "转盘方向"; label4.Text = "转盘方向";
// //
@ -367,51 +351,46 @@
panelMotor.Controls.Add(iptMotorSpeed); panelMotor.Controls.Add(iptMotorSpeed);
panelMotor.Controls.Add(label8); panelMotor.Controls.Add(label8);
panelMotor.Dock = DockStyle.Top; panelMotor.Dock = DockStyle.Top;
panelMotor.Location = new Point(0, 176); panelMotor.Location = new Point(0, 149);
panelMotor.Margin = new Padding(4, 4, 4, 4);
panelMotor.Name = "panelMotor"; panelMotor.Name = "panelMotor";
panelMotor.Size = new Size(1551, 54); panelMotor.Size = new Size(1210, 46);
panelMotor.TabIndex = 4; panelMotor.TabIndex = 4;
panelMotor.Text = "panel3"; panelMotor.Text = "panel3";
// //
// btnSaveMotorPos // btnSaveMotorPos
// //
btnSaveMotorPos.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnSaveMotorPos.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnSaveMotorPos.Location = new Point(966, 6); btnSaveMotorPos.Location = new Point(751, 5);
btnSaveMotorPos.Margin = new Padding(4, 4, 4, 4);
btnSaveMotorPos.Name = "btnSaveMotorPos"; btnSaveMotorPos.Name = "btnSaveMotorPos";
btnSaveMotorPos.Size = new Size(111, 45); btnSaveMotorPos.Size = new Size(109, 38);
btnSaveMotorPos.TabIndex = 21; btnSaveMotorPos.TabIndex = 21;
btnSaveMotorPos.Text = "保存电机位置"; btnSaveMotorPos.Text = "保存相机电机位置";
btnSaveMotorPos.Type = AntdUI.TTypeMini.Primary; btnSaveMotorPos.Type = AntdUI.TTypeMini.Primary;
// //
// iptMotorPos // iptMotorPos
// //
iptMotorPos.Location = new Point(365, 0); iptMotorPos.Location = new Point(284, 0);
iptMotorPos.Margin = new Padding(4, 4, 4, 4);
iptMotorPos.Name = "iptMotorPos"; iptMotorPos.Name = "iptMotorPos";
iptMotorPos.ReadOnly = true; iptMotorPos.ReadOnly = true;
iptMotorPos.Size = new Size(225, 51); iptMotorPos.Size = new Size(175, 43);
iptMotorPos.TabIndex = 20; iptMotorPos.TabIndex = 20;
iptMotorPos.Text = "0"; iptMotorPos.Text = "0";
// //
// label9 // label9
// //
label9.BackColor = SystemColors.Window; label9.BackColor = SystemColors.Window;
label9.Location = new Point(261, 12); label9.Location = new Point(203, 10);
label9.Margin = new Padding(4, 4, 4, 4);
label9.Name = "label9"; label9.Name = "label9";
label9.Size = new Size(104, 27); label9.Size = new Size(81, 23);
label9.TabIndex = 19; label9.TabIndex = 19;
label9.Text = "变焦电机位置"; label9.Text = "变焦电机位置";
// //
// btnMotorZero // btnMotorZero
// //
btnMotorZero.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnMotorZero.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnMotorZero.Location = new Point(598, 6); btnMotorZero.Location = new Point(465, 5);
btnMotorZero.Margin = new Padding(4, 4, 4, 4);
btnMotorZero.Name = "btnMotorZero"; btnMotorZero.Name = "btnMotorZero";
btnMotorZero.Size = new Size(96, 45); btnMotorZero.Size = new Size(75, 38);
btnMotorZero.TabIndex = 18; btnMotorZero.TabIndex = 18;
btnMotorZero.Text = "电机回原点"; btnMotorZero.Text = "电机回原点";
btnMotorZero.Type = AntdUI.TTypeMini.Primary; btnMotorZero.Type = AntdUI.TTypeMini.Primary;
@ -419,10 +398,9 @@
// btnMotorReverse // btnMotorReverse
// //
btnMotorReverse.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnMotorReverse.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnMotorReverse.Location = new Point(847, 6); btnMotorReverse.Location = new Point(659, 5);
btnMotorReverse.Margin = new Padding(4, 4, 4, 4);
btnMotorReverse.Name = "btnMotorReverse"; btnMotorReverse.Name = "btnMotorReverse";
btnMotorReverse.Size = new Size(96, 45); btnMotorReverse.Size = new Size(75, 38);
btnMotorReverse.TabIndex = 17; btnMotorReverse.TabIndex = 17;
btnMotorReverse.Text = "电机反转"; btnMotorReverse.Text = "电机反转";
btnMotorReverse.Type = AntdUI.TTypeMini.Primary; btnMotorReverse.Type = AntdUI.TTypeMini.Primary;
@ -430,60 +408,138 @@
// btnMotorForward // btnMotorForward
// //
btnMotorForward.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134); btnMotorForward.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnMotorForward.Location = new Point(724, 6); btnMotorForward.Location = new Point(563, 5);
btnMotorForward.Margin = new Padding(4, 4, 4, 4);
btnMotorForward.Name = "btnMotorForward"; btnMotorForward.Name = "btnMotorForward";
btnMotorForward.Size = new Size(96, 45); btnMotorForward.Size = new Size(75, 38);
btnMotorForward.TabIndex = 16; btnMotorForward.TabIndex = 16;
btnMotorForward.Text = "电机正转"; btnMotorForward.Text = "电机正转";
btnMotorForward.Type = AntdUI.TTypeMini.Primary; btnMotorForward.Type = AntdUI.TTypeMini.Primary;
// //
// iptMotorSpeed // iptMotorSpeed
// //
iptMotorSpeed.Location = new Point(116, 0); iptMotorSpeed.Location = new Point(90, 0);
iptMotorSpeed.Margin = new Padding(4, 4, 4, 4);
iptMotorSpeed.Name = "iptMotorSpeed"; iptMotorSpeed.Name = "iptMotorSpeed";
iptMotorSpeed.Size = new Size(138, 51); iptMotorSpeed.Size = new Size(107, 43);
iptMotorSpeed.TabIndex = 8; iptMotorSpeed.TabIndex = 8;
iptMotorSpeed.Text = "0"; iptMotorSpeed.Text = "0";
// //
// label8 // label8
// //
label8.BackColor = SystemColors.Window; label8.BackColor = SystemColors.Window;
label8.Location = new Point(12, 12); label8.Location = new Point(9, 10);
label8.Margin = new Padding(4, 4, 4, 4);
label8.Name = "label8"; label8.Name = "label8";
label8.Size = new Size(104, 27); label8.Size = new Size(81, 23);
label8.TabIndex = 1; label8.TabIndex = 1;
label8.Text = "变焦电机速度"; label8.Text = "变焦电机速度";
// //
// panel3
//
panel3.Controls.Add(btnSaveBarrierPos);
panel3.Controls.Add(iptBarrierPos);
panel3.Controls.Add(label10);
panel3.Controls.Add(btnBarrierZero);
panel3.Controls.Add(btnBarrier);
panel3.Controls.Add(iptBarrierSpeed);
panel3.Controls.Add(label11);
panel3.Dock = DockStyle.Top;
panel3.Location = new Point(0, 195);
panel3.Name = "panel3";
panel3.Size = new Size(1210, 46);
panel3.TabIndex = 6;
panel3.Text = "panel3";
//
// btnSaveBarrierPos
//
btnSaveBarrierPos.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnSaveBarrierPos.Location = new Point(681, 5);
btnSaveBarrierPos.Name = "btnSaveBarrierPos";
btnSaveBarrierPos.Size = new Size(109, 38);
btnSaveBarrierPos.TabIndex = 21;
btnSaveBarrierPos.Text = "保存挡料电机位置";
btnSaveBarrierPos.Type = AntdUI.TTypeMini.Primary;
//
// iptBarrierPos
//
iptBarrierPos.Location = new Point(284, 0);
iptBarrierPos.Name = "iptBarrierPos";
iptBarrierPos.ReadOnly = true;
iptBarrierPos.Size = new Size(175, 43);
iptBarrierPos.TabIndex = 20;
iptBarrierPos.Text = "0";
//
// label10
//
label10.BackColor = SystemColors.Window;
label10.Location = new Point(203, 10);
label10.Name = "label10";
label10.Size = new Size(81, 23);
label10.TabIndex = 19;
label10.Text = "挡料电机位置";
//
// btnBarrierZero
//
btnBarrierZero.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnBarrierZero.Location = new Point(465, 5);
btnBarrierZero.Name = "btnBarrierZero";
btnBarrierZero.Size = new Size(75, 38);
btnBarrierZero.TabIndex = 18;
btnBarrierZero.Text = "电机回原点";
btnBarrierZero.Type = AntdUI.TTypeMini.Primary;
//
// btnBarrier
//
btnBarrier.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
btnBarrier.Location = new Point(563, 5);
btnBarrier.Name = "btnBarrier";
btnBarrier.Size = new Size(101, 38);
btnBarrier.TabIndex = 16;
btnBarrier.Text = "挡料电机转动";
btnBarrier.Type = AntdUI.TTypeMini.Primary;
//
// iptBarrierSpeed
//
iptBarrierSpeed.Location = new Point(90, 0);
iptBarrierSpeed.Name = "iptBarrierSpeed";
iptBarrierSpeed.Size = new Size(107, 43);
iptBarrierSpeed.TabIndex = 8;
iptBarrierSpeed.Text = "0";
//
// label11
//
label11.BackColor = SystemColors.Window;
label11.Location = new Point(9, 10);
label11.Name = "label11";
label11.Size = new Size(81, 23);
label11.TabIndex = 1;
label11.Text = "挡料电机速度";
//
// imageViewerControl1 // imageViewerControl1
// //
imageViewerControl1.Dock = DockStyle.Fill; imageViewerControl1.Dock = DockStyle.Fill;
imageViewerControl1.Image = null; imageViewerControl1.Image = null;
imageViewerControl1.Location = new Point(0, 230); imageViewerControl1.Location = new Point(0, 241);
imageViewerControl1.Margin = new Padding(4, 4, 4, 4);
imageViewerControl1.Name = "imageViewerControl1"; imageViewerControl1.Name = "imageViewerControl1";
imageViewerControl1.Size = new Size(1551, 593); imageViewerControl1.Size = new Size(1210, 464);
imageViewerControl1.TabIndex = 5; imageViewerControl1.TabIndex = 7;
// //
// VisualLocalizationWindow // VisualLocalizationWindow
// //
AutoScaleDimensions = new SizeF(9F, 20F); AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1551, 823); ClientSize = new Size(1210, 705);
Controls.Add(imageViewerControl1); Controls.Add(imageViewerControl1);
Controls.Add(panel3);
Controls.Add(panelMotor); Controls.Add(panelMotor);
Controls.Add(panel2); Controls.Add(panel2);
Controls.Add(panel1); Controls.Add(panel1);
Controls.Add(titlebar); Controls.Add(titlebar);
Margin = new Padding(4, 4, 4, 4);
Name = "VisualLocalizationWindow"; Name = "VisualLocalizationWindow";
Text = "CCD光学筛选定位系统"; Text = "CCD光学筛选定位系统";
WindowState = FormWindowState.Maximized; WindowState = FormWindowState.Maximized;
panel1.ResumeLayout(false); panel1.ResumeLayout(false);
panel2.ResumeLayout(false); panel2.ResumeLayout(false);
panelMotor.ResumeLayout(false); panelMotor.ResumeLayout(false);
panel3.ResumeLayout(false);
ResumeLayout(false); ResumeLayout(false);
} }
@ -517,12 +573,20 @@
private AntdUI.Panel panelMotor; private AntdUI.Panel panelMotor;
private AntdUI.InputNumber iptMotorSpeed; private AntdUI.InputNumber iptMotorSpeed;
private AntdUI.Label label8; private AntdUI.Label label8;
private ImageViewerControl imageViewerControl1;
private AntdUI.Button btnMotorReverse; private AntdUI.Button btnMotorReverse;
private AntdUI.Button btnMotorForward; private AntdUI.Button btnMotorForward;
private AntdUI.InputNumber iptMotorPos; private AntdUI.InputNumber iptMotorPos;
private AntdUI.Label label9; private AntdUI.Label label9;
private AntdUI.Button btnMotorZero; private AntdUI.Button btnMotorZero;
private AntdUI.Button btnSaveMotorPos; private AntdUI.Button btnSaveMotorPos;
private AntdUI.Panel panel3;
private AntdUI.Button btnSaveBarrierPos;
private AntdUI.InputNumber iptBarrierPos;
private AntdUI.Label label10;
private AntdUI.Button btnBarrierZero;
private AntdUI.Button btnBarrier;
private AntdUI.InputNumber iptBarrierSpeed;
private AntdUI.Label label11;
private ImageViewerControl imageViewerControl1;
} }
} }

View File

@ -31,7 +31,53 @@ namespace DHSoftware.Views
private System.Threading.Timer Timer; private System.Threading.Timer Timer;
List<VisualLocalization> localizations = new List<VisualLocalization>(); List<VisualLocalization> localizations = new List<VisualLocalization>();
#region
private readonly float x; //定义当前窗体的宽度
private readonly float y; //定义当前窗体的高度
private void setTag(Control cons)
{
foreach (Control con in cons.Controls)
{
con.Tag = con.Width + ";" + con.Height + ";" + con.Left + ";" + con.Top + ";" + con.Font.Size;
if (con.Controls.Count > 0) setTag(con);
}
}
private void setControls(float newx, float newy, Control cons)
{
//遍历窗体中的控件,重新设置控件的值
foreach (Control con in cons.Controls)
//获取控件的Tag属性值并分割后存储字符串数组
if (con.Tag != null)
{
var mytag = con.Tag.ToString().Split(';');
//根据窗体缩放的比例确定控件的值
con.Width = Convert.ToInt32(Convert.ToSingle(mytag[0]) * newx); //宽度
con.Height = Convert.ToInt32(Convert.ToSingle(mytag[1]) * newy); //高度
con.Left = Convert.ToInt32(Convert.ToSingle(mytag[2]) * newx); //左边距
con.Top = Convert.ToInt32(Convert.ToSingle(mytag[3]) * newy); //顶边距
var currentSize = Convert.ToSingle(mytag[4]) * newy; //字体大小
if (currentSize > 0) con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
con.Focus();
if (con.Controls.Count > 0) setControls(newx, newy, con);
}
}
/// <summary>
/// 重置窗体布局
/// </summary>
private void ReWinformLayout()
{
var newx = Width / x;
var newy = Height / y;
setControls(newx, newy, this);
}
#endregion
public VisualLocalizationWindow() public VisualLocalizationWindow()
{ {
@ -55,11 +101,157 @@ namespace DHSoftware.Views
btnMotorZero.Click += BtnMotorZero_Click; btnMotorZero.Click += BtnMotorZero_Click;
btnSaveMotorPos.Click += BtnSaveMotorPos_Click; btnSaveMotorPos.Click += BtnSaveMotorPos_Click;
panelMotor.Visible = false; panelMotor.Visible = false;
Resize += VisualLocalizationWindow_Resize;
btnBarrierZero.Click += BtnBarrierZero_Click;
btnBarrier.Click += BtnBarrier_Click;
btnSaveBarrierPos.Click += BtnSaveBarrierPos_Click;
iptMotorSpeed.Value =1200;
iptBarrierSpeed.Value = 500;
AutoDpi(this);
x = Width;
y = Height;
setTag(this);
} }
private void BtnSaveBarrierPos_Click(object? sender, EventArgs e)
{
try
{
//根据工位查找点位
PLCItem? pLCItem = ConfigModel.PLCBaseList?
.FirstOrDefault()?
.PLCItemList?
.Where(it => it.Name == "挡料电机位置").FirstOrDefault();
if (pLCItem == null)
{
AntdUI.Message.warn(this, $"未找到挡料电机位置地址,请检查该地址是否存在于点位表!", autoClose: 3);
return;
}
PLCItem? pLCItem1 = ConfigModel.GlobalList?
.FirstOrDefault()?
.StartProcessList?
.Where(it => it.Name == "挡料电机位置").FirstOrDefault();
if (pLCItem1 == null)
{
pLCItem1 = new PLCItem();
pLCItem1.Name = pLCItem.Name;
pLCItem1.Address = pLCItem.Address;
pLCItem1.Value = iptBarrierPos.Text;
pLCItem1.Type = pLCItem.Type;
pLCItem1.StartExecute = true;
ConfigModel.GlobalList?
.FirstOrDefault()?
.StartProcessList?.Add(pLCItem1);
}
else
{
pLCItem1.Value = iptBarrierPos.Text;
}
ConfigHelper.SaveConfig();
AntdUI.Message.success(this, "保存成功!", autoClose: 3);
}
catch (Exception ex)
{
AntdUI.Message.error(this,ex.Message, autoClose: 3);
}
}
private async void BtnBarrier_Click(object? sender, EventArgs e)
{
if (_isOperating) return;
_isOperating = true;
try
{
// 获取并处理速度值
if (!int.TryParse(iptBarrierSpeed.Text, out int speed) || speed == 0)
{
AntdUI.Message.warn(this, "挡料电机速度值无效");
return;
}
if (!int.TryParse(iptBarrierPos.Text, out int barrierPos) || speed == 0)
{
AntdUI.Message.warn(this, "挡料电机位置值无效");
return;
}
btnBarrierZero.Enabled= false;
int actualSpeed = Math.Abs(speed); // 正转取绝对值
MainWindow.Instance.PLC.BarrierSpeed(actualSpeed);
MainWindow.Instance.PLC.BarrierPos(barrierPos);
MainWindow.Instance.PLC.BarrierClockwise(true);
// 实时更新循环
while (barrierPos!=MainWindow.Instance.PLC.ReadBarrierRealPos())
{
await Task.Delay(50);
}
}
catch (Exception ex)
{
_isOperating = false;
btnBarrierZero.Enabled = true;
AntdUI.Message.error(this, $"挡料电机转动异常: {ex.Message}");
}
finally
{
MainWindow.Instance.PLC.BarrierClockwise(false);
_isOperating = false;
btnBarrierZero.Enabled = true;
}
}
private CancellationTokenSource? _bCts;
private bool _isOperating;
private async void BtnBarrierZero_Click(object? sender, EventArgs e)
{
if (_isOperating) return;
_isOperating = true;
btnBarrier.Enabled = false;
try
{
// 执行回零
await Task.Run(() => MainWindow.Instance.PLC.BarrierToZero(true));
// 等待回零完成
while (!MainWindow.Instance.PLC.ReadBarrierToZero())
{
await Task.Delay(50);
}
await Task.Run(() => MainWindow.Instance.PLC.BarrierToZero(false));
}
catch (Exception ex)
{
btnBarrier.Enabled = true;
_isOperating = false;
AntdUI.Message.error(this, $"回零失败: {ex.Message}");
}
finally
{
btnBarrier.Enabled = true;
_isOperating = false;
}
}
private void VisualLocalizationWindow_Resize(object? sender, EventArgs e)
{
ReWinformLayout();
}
private void BtnSaveMotorPos_Click(object? sender, EventArgs e) private void BtnSaveMotorPos_Click(object? sender, EventArgs e)
{
try
{ {
//根据工位查找点位 //根据工位查找点位
PLCItem? pLCItem = ConfigModel.PLCBaseList? PLCItem? pLCItem = ConfigModel.PLCBaseList?
@ -97,9 +289,12 @@ namespace DHSoftware.Views
ConfigHelper.SaveConfig(); ConfigHelper.SaveConfig();
AntdUI.Message.success(this, "保存成功!", autoClose: 3); AntdUI.Message.success(this, "保存成功!", autoClose: 3);
} }
private CancellationTokenSource? _motorCts; catch (Exception ex)
private bool _isMotorOperating; {
private bool _isHoming; AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
@ -138,6 +333,7 @@ namespace DHSoftware.Views
} }
catch (Exception ex) catch (Exception ex)
{ {
_isBusy = false;
AntdUI.Message.error(this, $"正转异常: {ex.Message}"); AntdUI.Message.error(this, $"正转异常: {ex.Message}");
} }
finally finally
@ -201,6 +397,7 @@ namespace DHSoftware.Views
} }
catch (Exception ex) catch (Exception ex)
{ {
_isBusy = false;
AntdUI.Message.error(this, $"反转异常: {ex.Message}"); AntdUI.Message.error(this, $"反转异常: {ex.Message}");
} }
finally finally
@ -247,6 +444,8 @@ namespace DHSoftware.Views
} }
catch (Exception ex) catch (Exception ex)
{ {
btnMotorForward.Enabled = btnMotorReverse.Enabled = true;
_isBusy = false;
AntdUI.Message.error(this, $"回零失败: {ex.Message}"); AntdUI.Message.error(this, $"回零失败: {ex.Message}");
} }
finally finally
@ -258,6 +457,8 @@ namespace DHSoftware.Views
} }
private void SltCameraName_SelectedIndexChanged(object sender, IntEventArgs e) private void SltCameraName_SelectedIndexChanged(object sender, IntEventArgs e)
{
try
{ {
try try
{ {
@ -268,9 +469,9 @@ namespace DHSoftware.Views
{ {
} }
string cameraName= sltCameraName.Text; string cameraName = sltCameraName.Text;
Do3ThinkCamera = MainWindow.Instance.Cameras.Where(it => it.CameraName == cameraName).FirstOrDefault() ?? new Do3ThinkCamera(); Do3ThinkCamera = MainWindow.Instance.Cameras.Where(it => it.CameraName == cameraName).FirstOrDefault() ?? new Do3ThinkCamera();
VisualLocalization? visual= localizations.Where(it=>it.CameraName==cameraName).FirstOrDefault(); VisualLocalization? visual = localizations.Where(it => it.CameraName == cameraName).FirstOrDefault();
if (visual != null) if (visual != null)
{ {
iptModel.Text = visual.ModelPath; iptModel.Text = visual.ModelPath;
@ -281,17 +482,24 @@ namespace DHSoftware.Views
} }
if (Do3ThinkCamera.IsZoomCamera) if (Do3ThinkCamera.IsZoomCamera)
{ {
panelMotor.Visible=true; panelMotor.Visible = true;
} }
else else
{ {
panelMotor.Visible = false; panelMotor.Visible = false;
} }
} }
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
private void BtnSavePos_Click(object? sender, EventArgs e) private void BtnSavePos_Click(object? sender, EventArgs e)
{ {
var form = new SavePositionControl(this,Convert.ToInt32(iptPosition.Text)) { Size = new Size(300, 300) }; try
{
var form = new SavePositionControl(this, Convert.ToInt32(iptPosition.Text)) { Size = new Size(300, 300) };
AntdUI.Modal.open(new AntdUI.Modal.Config(this, "", form, TType.None) AntdUI.Modal.open(new AntdUI.Modal.Config(this, "", form, TType.None)
{ {
BtnHeight = 0, BtnHeight = 0,
@ -301,14 +509,19 @@ namespace DHSoftware.Views
VisualLocalization visualLocalization = new VisualLocalization(); VisualLocalization visualLocalization = new VisualLocalization();
//保存用户操作到文件 //保存用户操作到文件
visualLocalization.CameraName = sltCameraName.Text; visualLocalization.CameraName = sltCameraName.Text;
visualLocalization.ModelPath=iptModel.Text; visualLocalization.ModelPath = iptModel.Text;
visualLocalization.ImgPath=iptBackImg.Text; visualLocalization.ImgPath = iptBackImg.Text;
visualLocalization.Threshold=iptThreshold.Text; visualLocalization.Threshold = iptThreshold.Text;
visualLocalization.Direction=sltDirection.Text; visualLocalization.Direction = sltDirection.Text;
visualLocalization.Speed=iptSpeed.Text; visualLocalization.Speed = iptSpeed.Text;
visualLocalization.Save(); visualLocalization.Save();
} }
} }
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
/// <summary> /// <summary>
/// 保存图像 /// 保存图像
@ -316,13 +529,15 @@ namespace DHSoftware.Views
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void BtnSaveImg_Click(object? sender, EventArgs e) private void BtnSaveImg_Click(object? sender, EventArgs e)
{
try
{ {
if (!isCapturing) if (!isCapturing)
{ {
AntdUI.Message.warn(this, $"未开始采集,无法保存图像!", autoClose: 3); AntdUI.Message.warn(this, $"未开始采集,无法保存图像!", autoClose: 3);
return; return;
} }
Bitmap bitmap =imageViewerControl1.GetCurrentSnapshot(); Bitmap bitmap = imageViewerControl1.GetCurrentSnapshot();
using (SaveFileDialog saveDialog = new SaveFileDialog()) using (SaveFileDialog saveDialog = new SaveFileDialog())
{ {
saveDialog.Title = "保存图像文件"; saveDialog.Title = "保存图像文件";
@ -341,6 +556,12 @@ namespace DHSoftware.Views
AntdUI.Message.warn(this, $"取消图像保存操作!", autoClose: 3); AntdUI.Message.warn(this, $"取消图像保存操作!", autoClose: 3);
} }
} }
}
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
} }
/// <summary> /// <summary>
@ -349,6 +570,8 @@ namespace DHSoftware.Views
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void BtnLocalization_Click(object? sender, EventArgs e) private void BtnLocalization_Click(object? sender, EventArgs e)
{
try
{ {
if (!isCapturing) if (!isCapturing)
{ {
@ -357,7 +580,7 @@ namespace DHSoftware.Views
} }
if (!isLocationing) if (!isLocationing)
{ {
bool direction =sltDirection.SelectedIndex==0?true:false; bool direction = sltDirection.SelectedIndex == 0 ? true : false;
if (string.IsNullOrEmpty(iptSpeed.Text)) if (string.IsNullOrEmpty(iptSpeed.Text))
{ {
AntdUI.Message.warn(this, $"请输入速度!", autoClose: 3); AntdUI.Message.warn(this, $"请输入速度!", autoClose: 3);
@ -385,11 +608,16 @@ namespace DHSoftware.Views
else else
{ {
MainWindow.Instance.PLC.TurnStart(false); MainWindow.Instance.PLC.TurnStart(false);
iptPosition.Text= MainWindow.Instance.PLC.ReadVisionPos().ToString(); iptPosition.Text = MainWindow.Instance.PLC.ReadVisionPos().ToString();
isLocationing = false; isLocationing = false;
btnLocalization.Text = "开始定位"; btnLocalization.Text = "开始定位";
btnLocalization.Type = TTypeMini.Primary; btnLocalization.Type = TTypeMini.Primary;
} }
}
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
} }
@ -399,6 +627,8 @@ namespace DHSoftware.Views
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void BtnAcquisition_Click(object? sender, EventArgs e) private void BtnAcquisition_Click(object? sender, EventArgs e)
{
try
{ {
if (!isCapturing) if (!isCapturing)
{ {
@ -452,7 +682,7 @@ namespace DHSoftware.Views
AntdUI.Message.warn(this, $"未连接PLC,无法视觉定位!", autoClose: 3); AntdUI.Message.warn(this, $"未连接PLC,无法视觉定位!", autoClose: 3);
return; return;
} }
Do3ThinkCamera=MainWindow.Instance.Cameras.Where(it=>it.CameraName==sltCameraName.Text).FirstOrDefault()??new Do3ThinkCamera(); Do3ThinkCamera = MainWindow.Instance.Cameras.Where(it => it.CameraName == sltCameraName.Text).FirstOrDefault() ?? new Do3ThinkCamera();
Do3ThinkCamera.OnHImageOutput += OnCameraHImageOutput; Do3ThinkCamera.OnHImageOutput += OnCameraHImageOutput;
Timer = new System.Threading.Timer(CaptureLoop, null, 0, 50); Timer = new System.Threading.Timer(CaptureLoop, null, 0, 50);
isCapturing = true; isCapturing = true;
@ -475,6 +705,13 @@ namespace DHSoftware.Views
btnAcquisition.Type = TTypeMini.Primary; btnAcquisition.Type = TTypeMini.Primary;
} }
}
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
} }
@ -484,9 +721,16 @@ namespace DHSoftware.Views
/// </summary> /// </summary>
/// <param name="state"></param> /// <param name="state"></param>
private void CaptureLoop(object? state) private void CaptureLoop(object? state)
{
try
{ {
Do3ThinkCamera.Snapshot(); Do3ThinkCamera.Snapshot();
} }
catch(Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
private CancellationTokenSource? _rotateCts; private CancellationTokenSource? _rotateCts;
private bool _isRotating; private bool _isRotating;
@ -494,6 +738,8 @@ namespace DHSoftware.Views
/// 统一旋转控制方法 /// 统一旋转控制方法
/// </summary> /// </summary>
private async Task RotateControlAsync(bool direction) private async Task RotateControlAsync(bool direction)
{
try
{ {
// 防止重复启动 // 防止重复启动
if (_isRotating) return; if (_isRotating) return;
@ -558,6 +804,11 @@ namespace DHSoftware.Views
_rotateCts = null; _rotateCts = null;
} }
} }
catch (Exception ex) {
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
/// <summary> /// <summary>
@ -606,6 +857,8 @@ namespace DHSoftware.Views
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void BtnSelectBackImg_Click(object? sender, EventArgs e) private void BtnSelectBackImg_Click(object? sender, EventArgs e)
{
try
{ {
using (OpenFileDialog openFileDialog = new OpenFileDialog()) using (OpenFileDialog openFileDialog = new OpenFileDialog())
{ {
@ -626,6 +879,12 @@ namespace DHSoftware.Views
} }
} }
} }
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
/// <summary> /// <summary>
/// 选择算法 /// 选择算法
@ -633,6 +892,8 @@ namespace DHSoftware.Views
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void BtnSelectModel_Click(object? sender, EventArgs e) private void BtnSelectModel_Click(object? sender, EventArgs e)
{
try
{ {
using (OpenFileDialog openFileDialog = new OpenFileDialog()) using (OpenFileDialog openFileDialog = new OpenFileDialog())
{ {
@ -653,6 +914,11 @@ namespace DHSoftware.Views
} }
} }
} }
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
/// <summary> /// <summary>
/// 加载事件 /// 加载事件
@ -660,12 +926,14 @@ namespace DHSoftware.Views
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void VisualLocalizationWindow_Load(object? sender, EventArgs e) private void VisualLocalizationWindow_Load(object? sender, EventArgs e)
{
try
{ {
sltDirection.SelectedIndex = 0; sltDirection.SelectedIndex = 0;
sltCameraName.Items.Clear(); sltCameraName.Items.Clear();
if (MainWindow.Instance.Cameras?.Count > 0) if (MainWindow.Instance.Cameras?.Count > 0)
{ {
foreach(var cam in MainWindow.Instance.Cameras) foreach (var cam in MainWindow.Instance.Cameras)
{ {
sltCameraName.Items.Add(cam.CameraName); sltCameraName.Items.Add(cam.CameraName);
} }
@ -675,6 +943,13 @@ namespace DHSoftware.Views
AntdUI.Message.warn(this, $"未找到启用相机!", autoClose: 3); AntdUI.Message.warn(this, $"未找到启用相机!", autoClose: 3);
} }
}
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
} }
@ -702,7 +977,8 @@ namespace DHSoftware.Views
private void OnCameraHImageOutput(DateTime dt, CameraBase camera, MatSet imageSet) private void OnCameraHImageOutput(DateTime dt, CameraBase camera, MatSet imageSet)
{ {
try
{
this.BeginInvoke(new MethodInvoker(delegate () this.BeginInvoke(new MethodInvoker(delegate ()
{ {
@ -733,6 +1009,12 @@ namespace DHSoftware.Views
})); }));
} }
catch (Exception ex)
{
AntdUI.Message.error(this, ex.Message, autoClose: 3);
}
}
} }
} }