| LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.Designer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.resx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs
@@ -78,7 +78,7 @@ uiComboBoxBrand.Margin = new Padding(4, 5, 4, 5); uiComboBoxBrand.MinimumSize = new Size(63, 0); uiComboBoxBrand.Name = "uiComboBoxBrand"; uiComboBoxBrand.Size = new Size(260, 24); uiComboBoxBrand.Size = new Size(260, 28); uiComboBoxBrand.TabIndex = 24; uiComboBoxBrand.SelectedIndexChanged += cob_Brand_SelectedIndexChanged; // @@ -86,10 +86,10 @@ // uiRadioButtonSoftTrigger.Dock = DockStyle.Fill; uiRadioButtonSoftTrigger.Font = new Font("å®ä½", 12F); uiRadioButtonSoftTrigger.Location = new Point(3, 55); uiRadioButtonSoftTrigger.Location = new Point(3, 54); uiRadioButtonSoftTrigger.MinimumSize = new Size(1, 1); uiRadioButtonSoftTrigger.Name = "uiRadioButtonSoftTrigger"; uiRadioButtonSoftTrigger.Size = new Size(368, 46); uiRadioButtonSoftTrigger.Size = new Size(368, 45); uiRadioButtonSoftTrigger.TabIndex = 25; uiRadioButtonSoftTrigger.Text = "软触å"; uiRadioButtonSoftTrigger.CheckedChanged += uiRadioButtonSoftTrigger_CheckedChanged; @@ -98,10 +98,10 @@ // uiRadioButtonHardTrigger.Dock = DockStyle.Fill; uiRadioButtonHardTrigger.Font = new Font("å®ä½", 12F); uiRadioButtonHardTrigger.Location = new Point(3, 159); uiRadioButtonHardTrigger.Location = new Point(3, 156); uiRadioButtonHardTrigger.MinimumSize = new Size(1, 1); uiRadioButtonHardTrigger.Name = "uiRadioButtonHardTrigger"; uiRadioButtonHardTrigger.Size = new Size(368, 46); uiRadioButtonHardTrigger.Size = new Size(368, 45); uiRadioButtonHardTrigger.TabIndex = 26; uiRadioButtonHardTrigger.Text = "硬触å"; // @@ -162,7 +162,7 @@ tableLayoutPanel2.Controls.Add(tableLayoutPanel5, 0, 6); tableLayoutPanel2.Controls.Add(tableLayoutPanel6, 0, 7); tableLayoutPanel2.Dock = DockStyle.Fill; tableLayoutPanel2.Location = new Point(0, 51); tableLayoutPanel2.Location = new Point(0, 55); tableLayoutPanel2.Name = "tableLayoutPanel2"; tableLayoutPanel2.RowCount = 9; tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 10F)); @@ -174,7 +174,7 @@ tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 10F)); tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 10F)); tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 10F)); tableLayoutPanel2.Size = new Size(374, 470); tableLayoutPanel2.Size = new Size(374, 466); tableLayoutPanel2.TabIndex = 17; // // tableLayoutPanel3 @@ -189,7 +189,7 @@ tableLayoutPanel3.Name = "tableLayoutPanel3"; tableLayoutPanel3.RowCount = 1; tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel3.Size = new Size(368, 46); tableLayoutPanel3.Size = new Size(368, 45); tableLayoutPanel3.TabIndex = 0; // // uiMarkLabel1 @@ -200,7 +200,7 @@ uiMarkLabel1.Location = new Point(3, 0); uiMarkLabel1.Name = "uiMarkLabel1"; uiMarkLabel1.Padding = new Padding(5, 0, 0, 0); uiMarkLabel1.Size = new Size(94, 46); uiMarkLabel1.Size = new Size(94, 45); uiMarkLabel1.TabIndex = 25; uiMarkLabel1.Text = "åç"; uiMarkLabel1.TextAlign = ContentAlignment.MiddleLeft; @@ -215,11 +215,11 @@ tableLayoutPanel1.Controls.Add(uiButtonStartSoftGrab, 1, 0); tableLayoutPanel1.Controls.Add(uiButtonCloseSoftGrab, 2, 0); tableLayoutPanel1.Dock = DockStyle.Fill; tableLayoutPanel1.Location = new Point(3, 107); tableLayoutPanel1.Location = new Point(3, 105); tableLayoutPanel1.Name = "tableLayoutPanel1"; tableLayoutPanel1.RowCount = 1; tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel1.Size = new Size(368, 46); tableLayoutPanel1.Size = new Size(368, 45); tableLayoutPanel1.TabIndex = 30; // // uiButtonGrabOnce @@ -229,7 +229,7 @@ uiButtonGrabOnce.Location = new Point(3, 3); uiButtonGrabOnce.MinimumSize = new Size(1, 1); uiButtonGrabOnce.Name = "uiButtonGrabOnce"; uiButtonGrabOnce.Size = new Size(116, 40); uiButtonGrabOnce.Size = new Size(116, 39); uiButtonGrabOnce.TabIndex = 31; uiButtonGrabOnce.Text = "åå¼ éé"; uiButtonGrabOnce.Click += uiButtonGrabOnce_Click; @@ -241,7 +241,7 @@ uiButtonStartSoftGrab.Location = new Point(125, 3); uiButtonStartSoftGrab.MinimumSize = new Size(1, 1); uiButtonStartSoftGrab.Name = "uiButtonStartSoftGrab"; uiButtonStartSoftGrab.Size = new Size(116, 40); uiButtonStartSoftGrab.Size = new Size(116, 39); uiButtonStartSoftGrab.TabIndex = 31; uiButtonStartSoftGrab.Text = "è¿ç»éé"; uiButtonStartSoftGrab.Click += uiButtonStartSoftGrab_Click; @@ -253,7 +253,7 @@ uiButtonCloseSoftGrab.Location = new Point(247, 3); uiButtonCloseSoftGrab.MinimumSize = new Size(1, 1); uiButtonCloseSoftGrab.Name = "uiButtonCloseSoftGrab"; uiButtonCloseSoftGrab.Size = new Size(118, 40); uiButtonCloseSoftGrab.Size = new Size(118, 39); uiButtonCloseSoftGrab.TabIndex = 31; uiButtonCloseSoftGrab.Text = "å ³ééé"; uiButtonCloseSoftGrab.Click += uiButtonCloseSoftGrab_Click; @@ -262,10 +262,10 @@ // uiButtonStartHardGrab.Dock = DockStyle.Fill; uiButtonStartHardGrab.Font = new Font("å®ä½", 12F); uiButtonStartHardGrab.Location = new Point(3, 211); uiButtonStartHardGrab.Location = new Point(3, 207); uiButtonStartHardGrab.MinimumSize = new Size(1, 1); uiButtonStartHardGrab.Name = "uiButtonStartHardGrab"; uiButtonStartHardGrab.Size = new Size(368, 46); uiButtonStartHardGrab.Size = new Size(368, 45); uiButtonStartHardGrab.TabIndex = 27; uiButtonStartHardGrab.Text = "çå¾ ç¡¬ä»¶è§¦å"; uiButtonStartHardGrab.Click += uiButtonStartHardGrab_Click; @@ -278,11 +278,11 @@ tableLayoutPanel4.Controls.Add(uiMarkLabel2, 0, 0); tableLayoutPanel4.Controls.Add(uiTextBoxExp, 1, 0); tableLayoutPanel4.Dock = DockStyle.Fill; tableLayoutPanel4.Location = new Point(3, 263); tableLayoutPanel4.Location = new Point(3, 258); tableLayoutPanel4.Name = "tableLayoutPanel4"; tableLayoutPanel4.RowCount = 1; tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel4.Size = new Size(368, 46); tableLayoutPanel4.Size = new Size(368, 45); tableLayoutPanel4.TabIndex = 28; // // uiMarkLabel2 @@ -293,7 +293,7 @@ uiMarkLabel2.Location = new Point(3, 0); uiMarkLabel2.Name = "uiMarkLabel2"; uiMarkLabel2.Padding = new Padding(5, 0, 0, 0); uiMarkLabel2.Size = new Size(94, 46); uiMarkLabel2.Size = new Size(94, 45); uiMarkLabel2.TabIndex = 31; uiMarkLabel2.Text = "æå (us)"; uiMarkLabel2.TextAlign = ContentAlignment.MiddleLeft; @@ -306,7 +306,7 @@ uiTextBoxExp.Margin = new Padding(4, 5, 4, 5); uiTextBoxExp.MinimumSize = new Size(1, 16); uiTextBoxExp.Name = "uiTextBoxExp"; uiTextBoxExp.Size = new Size(260, 26); uiTextBoxExp.Size = new Size(260, 30); uiTextBoxExp.TabIndex = 31; uiTextBoxExp.Text = "1000"; uiTextBoxExp.TextChanged += uiTextBoxExp_TextChanged; @@ -319,11 +319,11 @@ tableLayoutPanel5.Controls.Add(uiMarkLabel3, 0, 0); tableLayoutPanel5.Controls.Add(uiTextBoxGain, 1, 0); tableLayoutPanel5.Dock = DockStyle.Fill; tableLayoutPanel5.Location = new Point(3, 315); tableLayoutPanel5.Location = new Point(3, 309); tableLayoutPanel5.Name = "tableLayoutPanel5"; tableLayoutPanel5.RowCount = 1; tableLayoutPanel5.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel5.Size = new Size(368, 46); tableLayoutPanel5.Size = new Size(368, 45); tableLayoutPanel5.TabIndex = 29; // // uiMarkLabel3 @@ -334,7 +334,7 @@ uiMarkLabel3.Location = new Point(3, 0); uiMarkLabel3.Name = "uiMarkLabel3"; uiMarkLabel3.Padding = new Padding(5, 0, 0, 0); uiMarkLabel3.Size = new Size(94, 46); uiMarkLabel3.Size = new Size(94, 45); uiMarkLabel3.TabIndex = 31; uiMarkLabel3.Text = "å¢ç"; uiMarkLabel3.TextAlign = ContentAlignment.MiddleLeft; @@ -347,7 +347,7 @@ uiTextBoxGain.Margin = new Padding(4, 5, 4, 5); uiTextBoxGain.MinimumSize = new Size(1, 16); uiTextBoxGain.Name = "uiTextBoxGain"; uiTextBoxGain.Size = new Size(260, 26); uiTextBoxGain.Size = new Size(260, 30); uiTextBoxGain.TabIndex = 32; uiTextBoxGain.Text = "1"; uiTextBoxGain.TextChanged += uiTextBoxGain_TextChanged; @@ -360,11 +360,11 @@ tableLayoutPanel6.Controls.Add(uiMarkLabel4, 0, 0); tableLayoutPanel6.Controls.Add(uiTextBoxGrabTime, 1, 0); tableLayoutPanel6.Dock = DockStyle.Fill; tableLayoutPanel6.Location = new Point(3, 367); tableLayoutPanel6.Location = new Point(3, 360); tableLayoutPanel6.Name = "tableLayoutPanel6"; tableLayoutPanel6.RowCount = 1; tableLayoutPanel6.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel6.Size = new Size(368, 46); tableLayoutPanel6.Size = new Size(368, 45); tableLayoutPanel6.TabIndex = 31; // // uiMarkLabel4 @@ -375,7 +375,7 @@ uiMarkLabel4.Location = new Point(3, 0); uiMarkLabel4.Name = "uiMarkLabel4"; uiMarkLabel4.Padding = new Padding(5, 0, 0, 0); uiMarkLabel4.Size = new Size(94, 46); uiMarkLabel4.Size = new Size(94, 45); uiMarkLabel4.TabIndex = 31; uiMarkLabel4.Text = "èæ¶(ms)"; uiMarkLabel4.TextAlign = ContentAlignment.MiddleLeft; @@ -389,7 +389,7 @@ uiTextBoxGrabTime.Margin = new Padding(4, 5, 4, 5); uiTextBoxGrabTime.MinimumSize = new Size(1, 16); uiTextBoxGrabTime.Name = "uiTextBoxGrabTime"; uiTextBoxGrabTime.Size = new Size(260, 26); uiTextBoxGrabTime.Size = new Size(260, 30); uiTextBoxGrabTime.TabIndex = 31; // // uiSplitContainer1 LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx
@@ -121,24 +121,24 @@ <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vgAADr4B6kKxwAAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/ evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM 2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/ NNs5DgaTKLinEQYVO4Trf1mkV81wixLUslPmA3bzF2XcKeP+hWY/u3n0fCXcrQwLyjAvjNsb1dI6N05P mFAIHlHG73sEypPgGwnhfpn0zzH7jzddcK4Q7kqfKNMI4a9K+MwBDgbdeF04MBWsFYYdQvhbLlBvfhKT f+vMtLfG7C0JJXxKGY67WnvCmPAFGRs7z42boul5AzHBfdK6TjdQtzPGk8oos5F/5Y7sfVvPhg+lp+1h 0yIsxARPmtaN78WEl8eEX+SNclxUhne0glUrNrN9zfMGlPAuZTzaQ99FYfwuDv3ruoLvq5bWaQSvZCfL GXUYLwrj240Qxtu2lkSN4FpdWfKZH9jb9RQ1Cq62f9sVOlxUxn3KQXnJ0PO8QxU/jBm1h74v7ZniEG9K Hdg/quzvXO709k0Y3u08ucGqWgheX862H4XgxbR47SqU8D1X0EXC2VmGizqDz0xPr0kYH9eO360gNe0b jWppozB+1kOQEb5MCLa0C64NoeGrhOGrvH6lhK81GiIvnggmrDLzgvTkvwvDA+5wsU4nhG/m9AUoBD/F HFzWN4H0XQn2vF8eXN8Z3FAPYasl59oUYjuB+sTImDB+nhfgYQ39STf4fmu1DHtz+oIUgiM1KkWtwcFw sOujVT3hrnaL7UQc+hcL5W+sKIXhw0OVjaW0iwnBc47gqIQ45QY32PKRzv8eTguRYM9SS5YouEEZjv37 EffbzbjBDdZyxZYQ12EB2qS0bWrJqRVazPDWkojwZbuZrsgZtDJ0iY1g12khEtTicMTvclwn2CKE32YJ 7G5PORfZ1HtMCH7MOV4BrQ3XCe92+4onk5Nn2PolDAvWXnuOzAwzo6Nnx4Q3SrojwqfKeMxWMpsXWVs+ 2WrfKRdbW1W6Hf0shM/33Y7my4PrleFZIfhAaWjU/e5ivlw+y3S2FySMtynjvcrwsFiLJv/RhPBB2ws1 hK2WcBLBFf1qawlplwvxaQlxe786OOU4PBWsjSO85mBlQ8n99r/BisSdAas4FfgHpdEUZpwUX7sAAAAA SUVORK5CYII= vAAADrwBlbxySQAAA+xJREFUWEftV0loFUkYbvcNFzJi0lWdBEPQruqXKEYdcRgz4AYqeplBwYiXEUVB UHAhCEG8iR509OBlmIsOjJ5EBvQSRVHzuvslxjAy8eCG+75GozF+f716L6873fqe2ykffDR59e9/1V8V ow99KARtUg72J5aypGNN8xy2yJPWcleylb5gS13HnJdy+KSW6uJx3b8ZA7TKl6PbMPq3SbMsBUcpyf/2 BP8PDh96kr32BX/rS/4O30789grfO1j/k4LQ6p8POO6XdFgpDNbDSZsn2Bt8u2MpWGdKsCPeBNMm3TZp FaUc6/cW20pQEtpsflCllmwxjDbpLKOd9vAZuBPOx5J+86TyMdDbBxsdYLsn+SpUZYQy/imQILLdBIP3 cxzEU7Dbns3WejXmcNK/NPGHkajabtUiLYO/nyOgXWdRFeUkDmdnWMOg2ACFFwEn8fzfFeaSxlpjIOlT EHC0HVm/CstSC13B93sVFaOVszDQpwGuYGtQLipnQDlMyLzH12t2zJ8adH/TbeMbVLYROmmyDvjYRrLK aS4Q3Y/gtWjFALtg6KSf4NW02Uj3HwSPzOuw9iAk24sI/p5rm3OV0wyOo+++ww7pzCIViVjvAk+02GyC VlWnpUmw2Qggn+AV0eZ/A61oEtYsOttRwjlE5vy4L61KrabQmjBtV3I/JPtRUptcmy9UBuiM+tLc+bHs aQ1Rn8rNnEC7Gpvr8KcqF0XoHVCbl0qB8p2OEspS8OZmySZrvwqNtbUDMRm3Yj9kj1uB9NXcwLkfjwyu RAhoshuYcHMyGy4DT5T+jKrcjNbJh+yW75QIw62yqhDAvUghwV/Cybrw5UKTDn08GqmTJ9GCx660pscG oPoq2MHzlUWjtN8skjZbRsGFdQpiJoBkVVkFnF3tLcCv+7ZZo31mcYZGLY5RL/kCiQrcaRLFTvrikOxc YJF2PeZ5ZsTmAkNkCtaiW1YAkcTF1sT4YjXFEM3ekMADz+YztM8AULqlqE5nSL5wor3Zkew51nxU4WnP Ij9DlVGLIWCtDhV6FzBWIJH9a3pNaZOGQRsNT6tjWSHB/6LK6OUA/ETJVER/O9dgwcQ7w7XLTG0yjSTO Onp7Ny3A92VuuTD0rbcFbXsUMJonaQwnBV8Rniu4y2sGYbEe5emA8cORV6ZGY3n5UNycC9AKvBHZZRh+ iqxoX9BlRWMZozvLLiSEV5V6HT2Bjz9iX0ftaAWE9sDoBV+UlOufY9FeWTmE5OhdgLH8Kxyvhv5GON3q C3NzSvD19C70MTco4JTDZsbtrSzUlLP5DnBV3D745riOp5nr8F/OJcYV65++P2iTfNV/MPoQCcP4AKXR FGYxo/VGAAAAAElFTkSuQmCC </value> </data> </root> LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs
@@ -100,8 +100,8 @@ tableLayoutPanel1.ColumnCount = 1; tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F)); tableLayoutPanel1.Controls.Add(uiFlowLayoutPanel1, 0, 0); tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 1); tableLayoutPanel1.Controls.Add(uiFlowLayoutPanel1, 0, 0); tableLayoutPanel1.Dock = DockStyle.Fill; tableLayoutPanel1.Location = new Point(0, 0); tableLayoutPanel1.Name = "tableLayoutPanel1"; LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.cs
@@ -137,16 +137,11 @@ if (name != Name) continue; RemoveFlowEvent(flow); uiFlowLayoutPanel1.Controls.Remove(uiFlowLayoutPanel1.Controls[i]); if (GlobalVar.dicCameras.TryRemove(name, out BaseCamera BaseCamera)) if (GlobalVar.dicCameras.ContainsKey(name)) { BaseCamera.Dispose(); LogInfo?.Invoke(string.Format("ç§»é¤ç¸æº[{0}]", name), LogInfoType.INFO); MotionControlPage.MotionControlForm cameraForm = new MotionControlPage.MotionControlForm(GlobalVar.dicCameras[name]); cameraForm.Show(); } else LogInfo?.Invoke(string.Format("ç§»é¤ç¸æº[{0}]失败", name), LogInfoType.ERROR); } } LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs
@@ -33,7 +33,7 @@ { uiButton1 = new HopeButton(); uiButton2 = new LostButton(); uiFlowLayoutPanel1 = new FlowLayoutPanel(); uiMCLayoutPanel1 = new FlowLayoutPanel(); tableLayoutPanel1 = new TableLayoutPanel(); tableLayoutPanel2 = new TableLayoutPanel(); tableLayoutPanel1.SuspendLayout(); @@ -61,6 +61,7 @@ uiButton1.Text = "å¢å "; uiButton1.TextColor = Color.White; uiButton1.WarningColor = Color.FromArgb(230, 162, 60); uiButton1.Click += uiButton1_Click; // // uiButton2 // @@ -78,27 +79,27 @@ uiButton2.TabIndex = 12; uiButton2.Text = "æ¸ é¤"; // // uiFlowLayoutPanel1 // uiMCLayoutPanel1 // uiFlowLayoutPanel1.BackColor = Color.FromArgb(32, 41, 50); uiFlowLayoutPanel1.Dock = DockStyle.Fill; uiFlowLayoutPanel1.Font = new Font("å®ä½", 12F); uiFlowLayoutPanel1.ForeColor = SystemColors.Control; uiFlowLayoutPanel1.Location = new Point(4, 5); uiFlowLayoutPanel1.Margin = new Padding(4, 5, 4, 5); uiFlowLayoutPanel1.MinimumSize = new Size(1, 1); uiFlowLayoutPanel1.Name = "uiFlowLayoutPanel1"; uiFlowLayoutPanel1.Padding = new Padding(2); uiFlowLayoutPanel1.Size = new Size(599, 293); uiFlowLayoutPanel1.TabIndex = 10; uiFlowLayoutPanel1.Text = "`"; uiMCLayoutPanel1.BackColor = Color.FromArgb(32, 41, 50); uiMCLayoutPanel1.Dock = DockStyle.Fill; uiMCLayoutPanel1.Font = new Font("å®ä½", 12F); uiMCLayoutPanel1.ForeColor = SystemColors.Control; uiMCLayoutPanel1.Location = new Point(4, 5); uiMCLayoutPanel1.Margin = new Padding(4, 5, 4, 5); uiMCLayoutPanel1.MinimumSize = new Size(1, 1); uiMCLayoutPanel1.Name = "uiMCLayoutPanel1"; uiMCLayoutPanel1.Padding = new Padding(2); uiMCLayoutPanel1.Size = new Size(599, 293); uiMCLayoutPanel1.TabIndex = 10; uiMCLayoutPanel1.Text = "`"; // // tableLayoutPanel1 // tableLayoutPanel1.ColumnCount = 1; tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F)); tableLayoutPanel1.Controls.Add(uiFlowLayoutPanel1, 0, 0); tableLayoutPanel1.Controls.Add(uiMCLayoutPanel1, 0, 0); tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 1); tableLayoutPanel1.Dock = DockStyle.Fill; tableLayoutPanel1.Location = new Point(0, 0); @@ -145,7 +146,7 @@ private ReaLTaiizor.Controls.HopeButton uiButton1; private ReaLTaiizor.Controls.LostButton uiButton2; private FlowLayoutPanel uiFlowLayoutPanel1; private FlowLayoutPanel uiMCLayoutPanel1; private TableLayoutPanel tableLayoutPanel1; private TableLayoutPanel tableLayoutPanel2; } LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.cs
@@ -1,4 +1,7 @@ using LB_VisionControl; using LB_SmartVision.Forms.Pages.CameraPage; using LB_SmartVision.Forms.Pages.MotionControlPage; using LB_VisionControl; using LB_VisionProcesses.Cameras; using OpenCvSharp.Flann; using System; using System.Collections.Concurrent; @@ -11,7 +14,6 @@ { public Action<string, LogInfoType> LogInfo; public MotionControlEditPage() { InitializeComponent(); @@ -22,9 +24,156 @@ private void MESEditPage_Paint(object sender, PaintEventArgs e) { uiFlowLayoutPanel1.Controls.Clear(); uiMCLayoutPanel1.Controls.Clear(); if (GlobalVar.dicCameras.Count <= 0) return; foreach (var item in GlobalVar.dicCameras) { string CameraSN = item.Key; string CameraBrand = item.Value.Brand.ToString(); if (string.IsNullOrEmpty(CameraSN) || string.IsNullOrEmpty(CameraBrand)) return; UserItem flow = new UserItem(new string[] { "è¿å¨æ§å¶", "å·æ°", "ç§»é¤" }); flow.Name = CameraSN; flow.Text = $"[{CameraBrand}]"; if (item.Value.isGrabbing) flow.state = State.Pass; else flow.state |= State.Error; LoadFlowEvent(flow); uiMCLayoutPanel1.Controls.Add(flow); } } private void uiButton1_Click(object sender, System.EventArgs e) { CreateCameraForm createCameraForm = new CreateCameraForm(); createCameraForm.ShowDialog(); if (createCameraForm.bCreate) { BaseCamera camera = createCameraForm.camera; if (GlobalVar.dicCameras.ContainsKey(camera.SN)) { MessageBox.Show($"ç¸æº[{camera.SN}]å·²åå¨!", "å¼å¸¸"); return; } string CameraSN = camera.SN;//"127.0.0.1" string CameraBrand = camera.Brand.ToString();//"1111" if (string.IsNullOrEmpty(CameraSN) || string.IsNullOrEmpty(CameraBrand)) return; GlobalVar.dicCameras.TryAdd(CameraSN, camera); LogInfo?.Invoke(string.Format("æ·»å ç¸æº[{0}][{1}]æå", CameraBrand, CameraSN), LogInfoType.PASS); } this.Invalidate(); } private void uiButton2_Click(object sender, System.EventArgs e) { //æ¸ é¤ç¨Clearæ¹æ³ uiMCLayoutPanel1.Controls.Clear(); foreach (var camera in GlobalVar.dicCameras.Values) { camera.CloseDevice(); } GlobalVar.dicCameras.Clear(); } private void LoadFlowEvent(UserItem flow) { //æé®1为æµè¯ flow.MenuItem1ClickedEvent += MCEvent; //æé®2ä¸ºå·æ° flow.MenuItem2ClickedEvent += ReconnectEvent; //æé®3ä¸ºç§»é¤ flow.MenuItem3ClickedEvent += DeleteEvent; } private void RemoveFlowEvent(UserItem flow) { //æé®1为æµè¯ flow.MenuItem1ClickedEvent -= MCEvent; //æé®2ä¸ºå·æ° flow.MenuItem2ClickedEvent -= ReconnectEvent; //æé®3ä¸ºç§»é¤ flow.MenuItem3ClickedEvent -= DeleteEvent; } // è¿å¨æ§å¶ private void MCEvent(string Name, string Text) { for (int i = 0; i < uiMCLayoutPanel1.Controls.Count; i++) { UserItem flow = (UserItem)uiMCLayoutPanel1.Controls[i]; string name = flow.Name; if (name != Name) continue; if (GlobalVar.dicCameras.ContainsKey(name)) { MotionControlPage.MotionControlForm cameraForm = new MotionControlPage.MotionControlForm(GlobalVar.dicCameras[name]); cameraForm.Show(); } } } // ç§»é¤ç¸æº private void DeleteEvent(string Name, string Text) { for (int i = 0; i < uiMCLayoutPanel1.Controls.Count; i++) { UserItem flow = (UserItem)uiMCLayoutPanel1.Controls[i]; string name = flow.Name; if (name != Name) continue; RemoveFlowEvent(flow); uiMCLayoutPanel1.Controls.Remove(uiMCLayoutPanel1.Controls[i]); if (GlobalVar.dicCameras.TryRemove(name, out BaseCamera BaseCamera)) { BaseCamera.Dispose(); LogInfo?.Invoke(string.Format("ç§»é¤ç¸æº[{0}]", name), LogInfoType.INFO); } else LogInfo?.Invoke(string.Format("ç§»é¤ç¸æº[{0}]失败", name), LogInfoType.ERROR); } } // éè¿ç¸æº private void ReconnectEvent(string Name, string Text) { for (int i = 0; i < uiMCLayoutPanel1.Controls.Count; i++) { UserItem flow = (UserItem)uiMCLayoutPanel1.Controls[i]; string name = flow.Name; if (name != Name) continue; GlobalVar.dicCameras[name].CloseDevice(); Thread.Sleep(50); GlobalVar.dicCameras[name].InitDevice(name, this.Handle); if (GlobalVar.dicCameras[name].isGrabbing) { flow.state = State.Pass; LogInfo?.Invoke(string.Format("éè¿ç¸æº[{0}]æå", name), LogInfoType.PASS); } else { flow.state = State.Error; LogInfo?.Invoke(string.Format("éè¿ç¸æº[{0}]失败", name), LogInfoType.ERROR); } flow.Refresh(); } } } } LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.Designer.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,781 @@ namespace LB_SmartVision.Forms.Pages.MotionControlPage { partial class MotionControlForm { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MotionControlForm)); uiGroupBoxMotionControl = new GroupBox(); tableLayoutPanel3 = new TableLayoutPanel(); tableLayoutPanel6 = new TableLayoutPanel(); uiButtonCloseSoftGrab = new Button(); uiButtonHardGrabWithPLC = new Button(); tableLayoutPanel5 = new TableLayoutPanel(); uiButtonGrabOnce = new Button(); tableLayoutPanel4 = new TableLayoutPanel(); labelPointSpeed = new Label(); textBoxAngleNow = new TextBox(); labelAngleNow = new Label(); textBoxPositionNow = new TextBox(); labelPositionNow = new Label(); textBoxAngSpeed = new TextBox(); labelAngSpeed = new Label(); textBoxPointSpeed = new TextBox(); tableLayoutPanel2 = new TableLayoutPanel(); uiButtonIncreasePitchAngle = new Button(); groupBoxPitchAnglePosition = new GroupBox(); textBoxPitchAnglePosition = new TextBox(); uiButtonDecreasePitchAngle = new Button(); groupBoxZPosition = new GroupBox(); textBoxZPosition = new TextBox(); groupBoxYPosition = new GroupBox(); textBoxYPosition = new TextBox(); uiButtonIncreaseZ = new Button(); uiButtonDecreaseZ = new Button(); uiButtonIncreaseY = new Button(); uiButtonDecreaseY = new Button(); uiButtonIncreaseX = new Button(); uiButtonDecreaseX = new Button(); groupBoxXPosition = new GroupBox(); textBoxXPosition = new TextBox(); tableLayoutPanel1 = new TableLayoutPanel(); textBox1 = new TextBox(); uiMarkLabelSN = new Label(); tableLayoutPanel7 = new TableLayoutPanel(); textBox2 = new TextBox(); uiMarkLabelName = new Label(); uiGroupBoxImage = new GroupBox(); uiSplitContainer1 = new SplitContainer(); themeForm1 = new ReaLTaiizor.Forms.ThemeForm(); controlBox1 = new ReaLTaiizor.Controls.ControlBox(); uiGroupBoxMotionControl.SuspendLayout(); tableLayoutPanel3.SuspendLayout(); tableLayoutPanel6.SuspendLayout(); tableLayoutPanel5.SuspendLayout(); tableLayoutPanel4.SuspendLayout(); tableLayoutPanel2.SuspendLayout(); groupBoxPitchAnglePosition.SuspendLayout(); groupBoxZPosition.SuspendLayout(); groupBoxYPosition.SuspendLayout(); groupBoxXPosition.SuspendLayout(); tableLayoutPanel1.SuspendLayout(); tableLayoutPanel7.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)uiSplitContainer1).BeginInit(); uiSplitContainer1.Panel1.SuspendLayout(); uiSplitContainer1.Panel2.SuspendLayout(); uiSplitContainer1.SuspendLayout(); themeForm1.SuspendLayout(); SuspendLayout(); // // uiGroupBoxMotionControl // uiGroupBoxMotionControl.Controls.Add(tableLayoutPanel3); uiGroupBoxMotionControl.Font = new Font("å®ä½", 12F); uiGroupBoxMotionControl.ForeColor = SystemColors.Control; uiGroupBoxMotionControl.Location = new Point(0, 0); uiGroupBoxMotionControl.Margin = new Padding(4, 5, 4, 5); uiGroupBoxMotionControl.MinimumSize = new Size(1, 1); uiGroupBoxMotionControl.Name = "uiGroupBoxMotionControl"; uiGroupBoxMotionControl.Padding = new Padding(0, 32, 0, 0); uiGroupBoxMotionControl.Size = new Size(374, 624); uiGroupBoxMotionControl.TabIndex = 18; uiGroupBoxMotionControl.TabStop = false; uiGroupBoxMotionControl.Text = "è¿å¨æ§å¶åæ°"; // // tableLayoutPanel3 // tableLayoutPanel3.ColumnCount = 1; tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); tableLayoutPanel3.Controls.Add(tableLayoutPanel6, 0, 3); tableLayoutPanel3.Controls.Add(tableLayoutPanel5, 0, 2); tableLayoutPanel3.Controls.Add(tableLayoutPanel4, 0, 5); tableLayoutPanel3.Controls.Add(tableLayoutPanel2, 0, 4); tableLayoutPanel3.Controls.Add(tableLayoutPanel1, 0, 0); tableLayoutPanel3.Controls.Add(tableLayoutPanel7, 0, 1); tableLayoutPanel3.Location = new Point(0, 55); tableLayoutPanel3.Name = "tableLayoutPanel3"; tableLayoutPanel3.RowCount = 6; tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); tableLayoutPanel3.Size = new Size(374, 560); tableLayoutPanel3.TabIndex = 0; tableLayoutPanel3.Paint += tableLayoutPanel3_Paint; // // tableLayoutPanel6 // tableLayoutPanel6.ColumnCount = 2; tableLayoutPanel6.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); tableLayoutPanel6.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); tableLayoutPanel6.Controls.Add(uiButtonCloseSoftGrab, 1, 0); tableLayoutPanel6.Controls.Add(uiButtonHardGrabWithPLC, 0, 0); tableLayoutPanel6.Dock = DockStyle.Fill; tableLayoutPanel6.Location = new Point(3, 138); tableLayoutPanel6.Name = "tableLayoutPanel6"; tableLayoutPanel6.RowCount = 1; tableLayoutPanel6.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel6.Size = new Size(368, 39); tableLayoutPanel6.TabIndex = 6; // // uiButtonCloseSoftGrab // uiButtonCloseSoftGrab.Anchor = AnchorStyles.None; uiButtonCloseSoftGrab.BackColor = Color.Black; uiButtonCloseSoftGrab.Location = new Point(225, 5); uiButtonCloseSoftGrab.Name = "uiButtonCloseSoftGrab"; uiButtonCloseSoftGrab.Size = new Size(102, 29); uiButtonCloseSoftGrab.TabIndex = 2; uiButtonCloseSoftGrab.Text = "æåéé"; uiButtonCloseSoftGrab.UseVisualStyleBackColor = false; // // uiButtonHardGrabWithPLC // uiButtonHardGrabWithPLC.Anchor = AnchorStyles.None; uiButtonHardGrabWithPLC.BackColor = Color.Black; uiButtonHardGrabWithPLC.Location = new Point(41, 5); uiButtonHardGrabWithPLC.Name = "uiButtonHardGrabWithPLC"; uiButtonHardGrabWithPLC.Size = new Size(102, 29); uiButtonHardGrabWithPLC.TabIndex = 1; uiButtonHardGrabWithPLC.Text = "模æéé"; uiButtonHardGrabWithPLC.UseVisualStyleBackColor = false; uiButtonHardGrabWithPLC.Click += uiButtonHardGrabWithPLC_Click; // // tableLayoutPanel5 // tableLayoutPanel5.ColumnCount = 1; tableLayoutPanel5.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); tableLayoutPanel5.Controls.Add(uiButtonGrabOnce, 0, 0); tableLayoutPanel5.Dock = DockStyle.Fill; tableLayoutPanel5.Location = new Point(3, 93); tableLayoutPanel5.Name = "tableLayoutPanel5"; tableLayoutPanel5.RowCount = 1; tableLayoutPanel5.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); tableLayoutPanel5.Size = new Size(368, 39); tableLayoutPanel5.TabIndex = 5; // // uiButtonGrabOnce // uiButtonGrabOnce.BackColor = Color.Black; uiButtonGrabOnce.Dock = DockStyle.Fill; uiButtonGrabOnce.Location = new Point(3, 3); uiButtonGrabOnce.Name = "uiButtonGrabOnce"; uiButtonGrabOnce.Size = new Size(362, 33); uiButtonGrabOnce.TabIndex = 0; uiButtonGrabOnce.Text = "åå¼ éé"; uiButtonGrabOnce.UseVisualStyleBackColor = false; uiButtonGrabOnce.Click += uiButtonGrabOnce_Click; // // tableLayoutPanel4 // tableLayoutPanel4.ColumnCount = 2; tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 42.81768F)); tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 57.18232F)); tableLayoutPanel4.Controls.Add(labelPointSpeed, 0, 0); tableLayoutPanel4.Controls.Add(textBoxAngleNow, 1, 3); tableLayoutPanel4.Controls.Add(labelAngleNow, 0, 3); tableLayoutPanel4.Controls.Add(textBoxPositionNow, 1, 2); tableLayoutPanel4.Controls.Add(labelPositionNow, 0, 2); tableLayoutPanel4.Controls.Add(textBoxAngSpeed, 1, 1); tableLayoutPanel4.Controls.Add(labelAngSpeed, 0, 1); tableLayoutPanel4.Controls.Add(textBoxPointSpeed, 1, 0); tableLayoutPanel4.Dock = DockStyle.Fill; tableLayoutPanel4.Location = new Point(3, 373); tableLayoutPanel4.Name = "tableLayoutPanel4"; tableLayoutPanel4.RowCount = 4; tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel4.Size = new Size(368, 184); tableLayoutPanel4.TabIndex = 2; // // labelPointSpeed // labelPointSpeed.AutoSize = true; labelPointSpeed.Dock = DockStyle.Fill; labelPointSpeed.Location = new Point(3, 5); labelPointSpeed.Margin = new Padding(3, 5, 3, 5); labelPointSpeed.Name = "labelPointSpeed"; labelPointSpeed.Size = new Size(151, 35); labelPointSpeed.TabIndex = 18; labelPointSpeed.Text = "ç¹å¨é度(mm/s)"; labelPointSpeed.TextAlign = ContentAlignment.MiddleLeft; // // textBoxAngleNow // textBoxAngleNow.Anchor = AnchorStyles.Left | AnchorStyles.Right; textBoxAngleNow.Enabled = false; textBoxAngleNow.Location = new Point(160, 144); textBoxAngleNow.Name = "textBoxAngleNow"; textBoxAngleNow.Size = new Size(205, 30); textBoxAngleNow.TabIndex = 17; textBoxAngleNow.Text = "0"; textBoxAngleNow.TextChanged += textBoxAngleNow_TextChanged; // // labelAngleNow // labelAngleNow.AutoSize = true; labelAngleNow.Dock = DockStyle.Fill; labelAngleNow.Location = new Point(3, 140); labelAngleNow.Margin = new Padding(3, 5, 3, 5); labelAngleNow.Name = "labelAngleNow"; labelAngleNow.Size = new Size(151, 39); labelAngleNow.TabIndex = 16; labelAngleNow.Text = "å½åè§åº¦(°)"; labelAngleNow.TextAlign = ContentAlignment.MiddleLeft; // // textBoxPositionNow // textBoxPositionNow.Anchor = AnchorStyles.Left | AnchorStyles.Right; textBoxPositionNow.Enabled = false; textBoxPositionNow.Location = new Point(160, 97); textBoxPositionNow.Name = "textBoxPositionNow"; textBoxPositionNow.Size = new Size(205, 30); textBoxPositionNow.TabIndex = 15; textBoxPositionNow.Text = "(0,0,0)"; textBoxPositionNow.TextChanged += textBoxPositionNow_TextChanged; // // labelPositionNow // labelPositionNow.AutoSize = true; labelPositionNow.Dock = DockStyle.Fill; labelPositionNow.Location = new Point(3, 95); labelPositionNow.Margin = new Padding(3, 5, 3, 5); labelPositionNow.Name = "labelPositionNow"; labelPositionNow.Size = new Size(151, 35); labelPositionNow.TabIndex = 14; labelPositionNow.Text = "å½åç¹ä½(mm)"; labelPositionNow.TextAlign = ContentAlignment.MiddleLeft; // // textBoxAngSpeed // textBoxAngSpeed.Anchor = AnchorStyles.Left | AnchorStyles.Right; textBoxAngSpeed.Location = new Point(160, 52); textBoxAngSpeed.Name = "textBoxAngSpeed"; textBoxAngSpeed.Size = new Size(205, 30); textBoxAngSpeed.TabIndex = 13; textBoxAngSpeed.Text = "0"; textBoxAngSpeed.TextChanged += textBoxAngSpeed_TextChanged; textBoxAngSpeed.KeyDown += textBoxXPosition_KeyDown; textBoxAngSpeed.KeyPress += textBoxXPosition_KeyPress; // // labelAngSpeed // labelAngSpeed.AutoSize = true; labelAngSpeed.Dock = DockStyle.Fill; labelAngSpeed.Location = new Point(3, 50); labelAngSpeed.Margin = new Padding(3, 5, 3, 5); labelAngSpeed.Name = "labelAngSpeed"; labelAngSpeed.Size = new Size(151, 35); labelAngSpeed.TabIndex = 12; labelAngSpeed.Text = "è§é度(rad/s)"; labelAngSpeed.TextAlign = ContentAlignment.MiddleLeft; // // textBoxPointSpeed // textBoxPointSpeed.Anchor = AnchorStyles.Left | AnchorStyles.Right; textBoxPointSpeed.Location = new Point(160, 7); textBoxPointSpeed.Name = "textBoxPointSpeed"; textBoxPointSpeed.Size = new Size(205, 30); textBoxPointSpeed.TabIndex = 11; textBoxPointSpeed.Text = "0"; textBoxPointSpeed.TextChanged += textBoxPointSpeed_TextChanged; textBoxPointSpeed.KeyDown += textBoxXPosition_KeyDown; textBoxPointSpeed.KeyPress += textBoxXPosition_KeyPress; // // tableLayoutPanel2 // tableLayoutPanel2.ColumnCount = 3; tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F)); tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F)); tableLayoutPanel2.Controls.Add(uiButtonIncreasePitchAngle, 2, 3); tableLayoutPanel2.Controls.Add(groupBoxPitchAnglePosition, 1, 3); tableLayoutPanel2.Controls.Add(uiButtonDecreasePitchAngle, 0, 3); tableLayoutPanel2.Controls.Add(groupBoxZPosition, 1, 2); tableLayoutPanel2.Controls.Add(groupBoxYPosition, 1, 1); tableLayoutPanel2.Controls.Add(uiButtonIncreaseZ, 2, 2); tableLayoutPanel2.Controls.Add(uiButtonDecreaseZ, 0, 2); tableLayoutPanel2.Controls.Add(uiButtonIncreaseY, 2, 1); tableLayoutPanel2.Controls.Add(uiButtonDecreaseY, 0, 1); tableLayoutPanel2.Controls.Add(uiButtonIncreaseX, 2, 0); tableLayoutPanel2.Controls.Add(uiButtonDecreaseX, 0, 0); tableLayoutPanel2.Controls.Add(groupBoxXPosition, 1, 0); tableLayoutPanel2.Dock = DockStyle.Fill; tableLayoutPanel2.Location = new Point(3, 183); tableLayoutPanel2.Name = "tableLayoutPanel2"; tableLayoutPanel2.RowCount = 1; tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); tableLayoutPanel2.Size = new Size(368, 184); tableLayoutPanel2.TabIndex = 3; // // uiButtonIncreasePitchAngle // uiButtonIncreasePitchAngle.BackColor = Color.Black; uiButtonIncreasePitchAngle.Dock = DockStyle.Left; uiButtonIncreasePitchAngle.Location = new Point(298, 140); uiButtonIncreasePitchAngle.Margin = new Padding(5); uiButtonIncreasePitchAngle.Name = "uiButtonIncreasePitchAngle"; uiButtonIncreasePitchAngle.Size = new Size(32, 39); uiButtonIncreasePitchAngle.TabIndex = 27; uiButtonIncreasePitchAngle.Text = "+"; uiButtonIncreasePitchAngle.UseVisualStyleBackColor = false; uiButtonIncreasePitchAngle.Click += uiButtonIncreasePitchAngle_Click; // // groupBoxPitchAnglePosition // groupBoxPitchAnglePosition.Controls.Add(textBoxPitchAnglePosition); groupBoxPitchAnglePosition.Font = new Font("å®ä½", 8F); groupBoxPitchAnglePosition.ForeColor = Color.White; groupBoxPitchAnglePosition.Location = new Point(123, 138); groupBoxPitchAnglePosition.Margin = new Padding(50, 3, 3, 3); groupBoxPitchAnglePosition.Name = "groupBoxPitchAnglePosition"; groupBoxPitchAnglePosition.Size = new Size(115, 39); groupBoxPitchAnglePosition.TabIndex = 26; groupBoxPitchAnglePosition.TabStop = false; groupBoxPitchAnglePosition.Text = "俯仰è§(°)"; // // textBoxPitchAnglePosition // textBoxPitchAnglePosition.Dock = DockStyle.Bottom; textBoxPitchAnglePosition.Font = new Font("å®ä½", 10F); textBoxPitchAnglePosition.Location = new Point(3, 16); textBoxPitchAnglePosition.Multiline = true; textBoxPitchAnglePosition.Name = "textBoxPitchAnglePosition"; textBoxPitchAnglePosition.Size = new Size(109, 20); textBoxPitchAnglePosition.TabIndex = 13; textBoxPitchAnglePosition.Text = "1"; textBoxPitchAnglePosition.KeyDown += textBoxXPosition_KeyDown; textBoxPitchAnglePosition.KeyPress += textBoxXPosition_KeyPress; // // uiButtonDecreasePitchAngle // uiButtonDecreasePitchAngle.BackColor = Color.Black; uiButtonDecreasePitchAngle.Dock = DockStyle.Right; uiButtonDecreasePitchAngle.Location = new Point(37, 140); uiButtonDecreasePitchAngle.Margin = new Padding(5); uiButtonDecreasePitchAngle.Name = "uiButtonDecreasePitchAngle"; uiButtonDecreasePitchAngle.Size = new Size(31, 39); uiButtonDecreasePitchAngle.TabIndex = 25; uiButtonDecreasePitchAngle.Text = "-"; uiButtonDecreasePitchAngle.UseVisualStyleBackColor = false; uiButtonDecreasePitchAngle.Click += uiButtonDecreasePitchAngle_Click; // // groupBoxZPosition // groupBoxZPosition.Controls.Add(textBoxZPosition); groupBoxZPosition.Font = new Font("å®ä½", 8F); groupBoxZPosition.ForeColor = Color.White; groupBoxZPosition.Location = new Point(123, 93); groupBoxZPosition.Margin = new Padding(50, 3, 3, 3); groupBoxZPosition.Name = "groupBoxZPosition"; groupBoxZPosition.Size = new Size(115, 39); groupBoxZPosition.TabIndex = 24; groupBoxZPosition.TabStop = false; groupBoxZPosition.Text = "Z(mm)"; // // textBoxZPosition // textBoxZPosition.Dock = DockStyle.Bottom; textBoxZPosition.Font = new Font("å®ä½", 10F); textBoxZPosition.Location = new Point(3, 16); textBoxZPosition.Multiline = true; textBoxZPosition.Name = "textBoxZPosition"; textBoxZPosition.Size = new Size(109, 20); textBoxZPosition.TabIndex = 13; textBoxZPosition.Text = "1"; textBoxZPosition.KeyDown += textBoxXPosition_KeyDown; textBoxZPosition.KeyPress += textBoxXPosition_KeyPress; // // groupBoxYPosition // groupBoxYPosition.Controls.Add(textBoxYPosition); groupBoxYPosition.Font = new Font("å®ä½", 8F); groupBoxYPosition.ForeColor = Color.White; groupBoxYPosition.Location = new Point(123, 48); groupBoxYPosition.Margin = new Padding(50, 3, 3, 3); groupBoxYPosition.Name = "groupBoxYPosition"; groupBoxYPosition.Size = new Size(115, 39); groupBoxYPosition.TabIndex = 23; groupBoxYPosition.TabStop = false; groupBoxYPosition.Text = "Y(mm)"; // // textBoxYPosition // textBoxYPosition.Dock = DockStyle.Bottom; textBoxYPosition.Font = new Font("å®ä½", 10F); textBoxYPosition.Location = new Point(3, 16); textBoxYPosition.Multiline = true; textBoxYPosition.Name = "textBoxYPosition"; textBoxYPosition.Size = new Size(109, 20); textBoxYPosition.TabIndex = 13; textBoxYPosition.Text = "1"; textBoxYPosition.KeyDown += textBoxXPosition_KeyDown; textBoxYPosition.KeyPress += textBoxXPosition_KeyPress; // // uiButtonIncreaseZ // uiButtonIncreaseZ.BackColor = Color.Black; uiButtonIncreaseZ.Dock = DockStyle.Left; uiButtonIncreaseZ.Location = new Point(298, 95); uiButtonIncreaseZ.Margin = new Padding(5); uiButtonIncreaseZ.Name = "uiButtonIncreaseZ"; uiButtonIncreaseZ.Size = new Size(32, 35); uiButtonIncreaseZ.TabIndex = 19; uiButtonIncreaseZ.Text = "+"; uiButtonIncreaseZ.UseVisualStyleBackColor = false; uiButtonIncreaseZ.Click += uiButtonIncreaseZ_Click; // // uiButtonDecreaseZ // uiButtonDecreaseZ.BackColor = Color.Black; uiButtonDecreaseZ.Dock = DockStyle.Right; uiButtonDecreaseZ.Location = new Point(37, 95); uiButtonDecreaseZ.Margin = new Padding(5); uiButtonDecreaseZ.Name = "uiButtonDecreaseZ"; uiButtonDecreaseZ.Size = new Size(31, 35); uiButtonDecreaseZ.TabIndex = 17; uiButtonDecreaseZ.Text = "-"; uiButtonDecreaseZ.UseVisualStyleBackColor = false; uiButtonDecreaseZ.Click += uiButtonDecreaseZ_Click; // // uiButtonIncreaseY // uiButtonIncreaseY.BackColor = Color.Black; uiButtonIncreaseY.Dock = DockStyle.Left; uiButtonIncreaseY.Location = new Point(298, 50); uiButtonIncreaseY.Margin = new Padding(5); uiButtonIncreaseY.Name = "uiButtonIncreaseY"; uiButtonIncreaseY.Size = new Size(32, 35); uiButtonIncreaseY.TabIndex = 16; uiButtonIncreaseY.Text = "+"; uiButtonIncreaseY.UseVisualStyleBackColor = false; uiButtonIncreaseY.Click += uiButtonIncreaseY_Click; // // uiButtonDecreaseY // uiButtonDecreaseY.BackColor = Color.Black; uiButtonDecreaseY.Dock = DockStyle.Right; uiButtonDecreaseY.Location = new Point(37, 50); uiButtonDecreaseY.Margin = new Padding(5); uiButtonDecreaseY.Name = "uiButtonDecreaseY"; uiButtonDecreaseY.Size = new Size(31, 35); uiButtonDecreaseY.TabIndex = 14; uiButtonDecreaseY.Text = "-"; uiButtonDecreaseY.UseVisualStyleBackColor = false; uiButtonDecreaseY.Click += uiButtonDecreaseY_Click; // // uiButtonIncreaseX // uiButtonIncreaseX.BackColor = Color.Black; uiButtonIncreaseX.Dock = DockStyle.Left; uiButtonIncreaseX.Location = new Point(298, 5); uiButtonIncreaseX.Margin = new Padding(5); uiButtonIncreaseX.Name = "uiButtonIncreaseX"; uiButtonIncreaseX.Size = new Size(32, 35); uiButtonIncreaseX.TabIndex = 10; uiButtonIncreaseX.Text = "+"; uiButtonIncreaseX.UseVisualStyleBackColor = false; uiButtonIncreaseX.Click += uiButtonIncreaseX_Click; // // uiButtonDecreaseX // uiButtonDecreaseX.BackColor = Color.Black; uiButtonDecreaseX.Dock = DockStyle.Right; uiButtonDecreaseX.Location = new Point(37, 5); uiButtonDecreaseX.Margin = new Padding(5); uiButtonDecreaseX.Name = "uiButtonDecreaseX"; uiButtonDecreaseX.Size = new Size(31, 35); uiButtonDecreaseX.TabIndex = 8; uiButtonDecreaseX.Text = "-"; uiButtonDecreaseX.UseVisualStyleBackColor = false; uiButtonDecreaseX.Click += uiButtonDecreaseX_Click; // // groupBoxXPosition // groupBoxXPosition.Controls.Add(textBoxXPosition); groupBoxXPosition.Font = new Font("å®ä½", 8F); groupBoxXPosition.ForeColor = Color.White; groupBoxXPosition.Location = new Point(123, 3); groupBoxXPosition.Margin = new Padding(50, 3, 3, 3); groupBoxXPosition.Name = "groupBoxXPosition"; groupBoxXPosition.Size = new Size(115, 39); groupBoxXPosition.TabIndex = 21; groupBoxXPosition.TabStop = false; groupBoxXPosition.Text = "X(mm)"; // // textBoxXPosition // textBoxXPosition.Dock = DockStyle.Bottom; textBoxXPosition.Font = new Font("å®ä½", 10F); textBoxXPosition.Location = new Point(3, 16); textBoxXPosition.Multiline = true; textBoxXPosition.Name = "textBoxXPosition"; textBoxXPosition.Size = new Size(109, 20); textBoxXPosition.TabIndex = 12; textBoxXPosition.Text = "1"; textBoxXPosition.KeyDown += textBoxXPosition_KeyDown; textBoxXPosition.KeyPress += textBoxXPosition_KeyPress; // // tableLayoutPanel1 // tableLayoutPanel1.ColumnCount = 2; tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 75F)); tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); tableLayoutPanel1.Controls.Add(textBox1, 1, 0); tableLayoutPanel1.Controls.Add(uiMarkLabelSN, 0, 0); tableLayoutPanel1.Dock = DockStyle.Fill; tableLayoutPanel1.Location = new Point(3, 3); tableLayoutPanel1.Name = "tableLayoutPanel1"; tableLayoutPanel1.RowCount = 1; tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel1.Size = new Size(368, 39); tableLayoutPanel1.TabIndex = 4; // // textBox1 // textBox1.Anchor = AnchorStyles.Left | AnchorStyles.Right; textBox1.Enabled = false; textBox1.Location = new Point(78, 4); textBox1.Name = "textBox1"; textBox1.Size = new Size(287, 30); textBox1.TabIndex = 20; // // uiMarkLabelSN // uiMarkLabelSN.AutoSize = true; uiMarkLabelSN.Dock = DockStyle.Fill; uiMarkLabelSN.Location = new Point(3, 5); uiMarkLabelSN.Margin = new Padding(3, 5, 3, 5); uiMarkLabelSN.Name = "uiMarkLabelSN"; uiMarkLabelSN.Size = new Size(69, 29); uiMarkLabelSN.TabIndex = 19; uiMarkLabelSN.Text = "SN"; uiMarkLabelSN.TextAlign = ContentAlignment.MiddleLeft; // // tableLayoutPanel7 // tableLayoutPanel7.ColumnCount = 2; tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 75F)); tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); tableLayoutPanel7.Controls.Add(textBox2, 1, 0); tableLayoutPanel7.Controls.Add(uiMarkLabelName, 0, 0); tableLayoutPanel7.Dock = DockStyle.Fill; tableLayoutPanel7.Location = new Point(3, 48); tableLayoutPanel7.Name = "tableLayoutPanel7"; tableLayoutPanel7.RowCount = 1; tableLayoutPanel7.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel7.Size = new Size(368, 39); tableLayoutPanel7.TabIndex = 7; // // textBox2 // textBox2.Anchor = AnchorStyles.Left | AnchorStyles.Right; textBox2.Enabled = false; textBox2.Location = new Point(78, 4); textBox2.Name = "textBox2"; textBox2.Size = new Size(287, 30); textBox2.TabIndex = 21; // // uiMarkLabelName // uiMarkLabelName.Anchor = AnchorStyles.None; uiMarkLabelName.Location = new Point(3, 5); uiMarkLabelName.Margin = new Padding(3, 5, 3, 5); uiMarkLabelName.Name = "uiMarkLabelName"; uiMarkLabelName.Size = new Size(69, 29); uiMarkLabelName.TabIndex = 20; uiMarkLabelName.Text = "åç§°"; uiMarkLabelName.TextAlign = ContentAlignment.MiddleLeft; uiMarkLabelName.Click += label1_Click; // // uiGroupBoxImage // uiGroupBoxImage.Dock = DockStyle.Fill; uiGroupBoxImage.Font = new Font("å®ä½", 12F); uiGroupBoxImage.ForeColor = SystemColors.Control; uiGroupBoxImage.Location = new Point(0, 0); uiGroupBoxImage.Margin = new Padding(4, 5, 4, 5); uiGroupBoxImage.MinimumSize = new Size(1, 1); uiGroupBoxImage.Name = "uiGroupBoxImage"; uiGroupBoxImage.Padding = new Padding(0, 32, 0, 0); uiGroupBoxImage.Size = new Size(495, 684); uiGroupBoxImage.TabIndex = 17; uiGroupBoxImage.TabStop = false; uiGroupBoxImage.Text = "宿¶éé"; // // uiSplitContainer1 // uiSplitContainer1.Dock = DockStyle.Fill; uiSplitContainer1.ForeColor = SystemColors.Control; uiSplitContainer1.Location = new Point(10, 70); uiSplitContainer1.MinimumSize = new Size(20, 20); uiSplitContainer1.Name = "uiSplitContainer1"; // // uiSplitContainer1.Panel1 // uiSplitContainer1.Panel1.Controls.Add(uiGroupBoxMotionControl); uiSplitContainer1.Panel1.Paint += uiSplitContainer1_Panel1_Paint; // // uiSplitContainer1.Panel2 // uiSplitContainer1.Panel2.Controls.Add(uiGroupBoxImage); uiSplitContainer1.Size = new Size(880, 684); uiSplitContainer1.SplitterDistance = 374; uiSplitContainer1.SplitterWidth = 11; uiSplitContainer1.TabIndex = 20; // // themeForm1 // themeForm1.BackColor = Color.FromArgb(32, 41, 50); themeForm1.Controls.Add(controlBox1); themeForm1.Controls.Add(uiSplitContainer1); themeForm1.Dock = DockStyle.Fill; themeForm1.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 0); themeForm1.Image = (Image)resources.GetObject("themeForm1.Image"); themeForm1.Location = new Point(0, 0); themeForm1.Name = "themeForm1"; themeForm1.Padding = new Padding(10, 70, 10, 9); themeForm1.RoundCorners = true; themeForm1.Sizable = true; themeForm1.Size = new Size(900, 763); themeForm1.SmartBounds = true; themeForm1.StartPosition = FormStartPosition.WindowsDefaultLocation; themeForm1.TabIndex = 21; themeForm1.Text = "è¿å¨æ§å¶è®¾ç½®"; // // controlBox1 // controlBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right; controlBox1.BackColor = Color.FromArgb(32, 34, 37); controlBox1.CloseHoverColor = Color.FromArgb(230, 17, 35); controlBox1.DefaultLocation = true; controlBox1.EnableHoverHighlight = true; controlBox1.EnableMaximizeButton = true; controlBox1.EnableMinimizeButton = true; controlBox1.ForeColor = Color.FromArgb(155, 155, 155); controlBox1.Location = new Point(800, 18); controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74); controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65); controlBox1.Name = "controlBox1"; controlBox1.Size = new Size(90, 25); controlBox1.TabIndex = 21; controlBox1.Text = "controlBox1"; // // MotionControlForm // AutoScaleMode = AutoScaleMode.None; AutoSize = true; ClientSize = new Size(900, 763); Controls.Add(themeForm1); FormBorderStyle = FormBorderStyle.None; MinimumSize = new Size(261, 61); Name = "MotionControlForm"; Text = "è¿å¨æ§å¶è®¾ç½®"; TransparencyKey = Color.Fuchsia; uiGroupBoxMotionControl.ResumeLayout(false); tableLayoutPanel3.ResumeLayout(false); tableLayoutPanel6.ResumeLayout(false); tableLayoutPanel5.ResumeLayout(false); tableLayoutPanel4.ResumeLayout(false); tableLayoutPanel4.PerformLayout(); tableLayoutPanel2.ResumeLayout(false); groupBoxPitchAnglePosition.ResumeLayout(false); groupBoxPitchAnglePosition.PerformLayout(); groupBoxZPosition.ResumeLayout(false); groupBoxZPosition.PerformLayout(); groupBoxYPosition.ResumeLayout(false); groupBoxYPosition.PerformLayout(); groupBoxXPosition.ResumeLayout(false); groupBoxXPosition.PerformLayout(); tableLayoutPanel1.ResumeLayout(false); tableLayoutPanel1.PerformLayout(); tableLayoutPanel7.ResumeLayout(false); tableLayoutPanel7.PerformLayout(); uiSplitContainer1.Panel1.ResumeLayout(false); uiSplitContainer1.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)uiSplitContainer1).EndInit(); uiSplitContainer1.ResumeLayout(false); themeForm1.ResumeLayout(false); ResumeLayout(false); } #endregion private GroupBox uiGroupBoxImage; private GroupBox uiGroupBoxMotionControl; private SplitContainer uiSplitContainer1; private TableLayoutPanel tableLayoutPanel7; private Label uiMarkLabel5; private TextBox uiTextBoxPitchAngle; private ReaLTaiizor.Forms.ThemeForm themeForm1; private ReaLTaiizor.Controls.ControlBox controlBox1; private TableLayoutPanel tableLayoutPanel3; private TableLayoutPanel tableLayoutPanel2; private Button uiButtonIncreasePitchAngle; private GroupBox groupBoxPitchAnglePosition; private TextBox textBoxPitchAnglePosition; private Button uiButtonDecreasePitchAngle; private GroupBox groupBoxZPosition; private TextBox textBoxZPosition; private GroupBox groupBoxYPosition; private TextBox textBoxYPosition; private Button uiButtonIncreaseZ; private Button uiButtonDecreaseZ; private Button uiButtonIncreaseY; private Button uiButtonDecreaseY; private Button uiButtonIncreaseX; private Button uiButtonDecreaseX; private GroupBox groupBoxXPosition; private TextBox textBoxXPosition; private TableLayoutPanel tableLayoutPanel4; private Label labelPointSpeed; private TextBox textBoxAngleNow; private Label labelAngleNow; private TextBox textBoxPositionNow; private Label labelPositionNow; private TextBox textBoxAngSpeed; private Label labelAngSpeed; private TextBox textBoxPointSpeed; private TableLayoutPanel tableLayoutPanel6; private Button uiButtonHardGrabWithPLC; private TableLayoutPanel tableLayoutPanel5; private Button uiButtonGrabOnce; private TableLayoutPanel tableLayoutPanel1; private TextBox textBox1; private Label uiMarkLabelSN; private Button uiButtonCloseSoftGrab; private Label uiMarkLabelName; private TextBox textBox2; } } LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,369 @@ using LB_VisionControl; using LB_VisionProcesses.Cameras; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; using static ZXing.QrCode.Internal.Mode; namespace LB_SmartVision.Forms.Pages.MotionControlPage { public partial class MotionControlForm : Form { BaseCamera camera { get; set; } UserPictureBox onlinePictureBox { get; set; } public MotionControlForm() { InitializeComponent(); } public MotionControlForm(BaseCamera camera) { InitializeComponent(); if (camera == null) return; this.camera = camera; this.Text = camera.SN; textBox1.Text = camera.SN; onlinePictureBox = new UserPictureBox(uiGroupBoxImage); this.uiGroupBoxImage.Controls.Clear(); this.uiGroupBoxImage.Controls.Add(onlinePictureBox); onlinePictureBox.Dock = DockStyle.Fill; //å è½½åè°å½æ° Subscribe(); } private void CameraForm_FormClosing(object sender, FormClosingEventArgs e) { if (camera == null) return; camera.StopGrabbing(); camera.StartGrabbing(); Unsubscribe(); } public void Unsubscribe() { try { if (camera == null) return; //åæ¶åè°å½æ° camera.ImageGrabbed -= GetImageBllComplete; } catch (Exception ex) { // è®°å½éè¯¯ä¿¡æ¯ Debug.WriteLine($"é误: {ex.Message}"); } } public void Subscribe() { try { if (camera == null) return; //åæ¶åè°å½æ° camera.ImageGrabbed -= GetImageBllComplete; //å è½½åè°å½æ° camera.ImageGrabbed += GetImageBllComplete; } catch (Exception ex) { // è®°å½éè¯¯ä¿¡æ¯ Debug.WriteLine($"é误: {ex.Message}"); } } /// <summary> /// ç¸æºåè°è¿è¡ /// </summary> /// <param name="CCDName"></param> /// <param name="image"></param> private void GetImageBllComplete(object sender, CameraEventArgs e) { if (e.Bitmap == null) return; lock (e.Bitmap) { if (this.InvokeRequired) // æ£æ¥æ¯å¦éè¦å¨UI线ç¨ä¸è°ç¨ { this.Invoke(new Action(() => { onlinePictureBox.Image = e.Bitmap; })); // éå½è°ç¨èªèº«ï¼ä½è¿æ¬¡å¨UI线ç¨ä¸ } else { onlinePictureBox.Image = e.Bitmap; } } } private void uiButtonGrabOnce_Click(object sender, EventArgs e) { if (camera == null) return; Task.Factory.StartNew(() => { camera.SetTriggerMode(TriggerMode.On, TriggerSource.Software); DateTime startTime = DateTime.Now; // å½åæ¶é´ camera.GetImageWithSoftTrigger(out Bitmap bitmap); }); } private void uiButtonCloseSoftGrab_Click(object sender, EventArgs e) { if (camera == null) return; Task.Factory.StartNew(() => { camera.StopGrabbing(); camera.SetTriggerMode(TriggerMode.On, TriggerSource.Software); camera.StartGrabbing(); }); } private void uiButtonHardGrabWithPLC_Click(object sender, EventArgs e) { if (camera == null) return; Task.Factory.StartNew(() => { camera.SetTriggerMode(TriggerMode.On, TriggerSource.Line0); camera.StopGrabbing(); camera.StartWith_HardTriggerModel(); }); } private void uiButtonDecreaseX_Click(object sender, EventArgs e) { float xPosition = 0; xPosition = float.Parse(textBoxXPosition.Text); MovePosition(-xPosition, 0, 0, 0); PositionNow(); } private void uiButtonIncreaseX_Click(object sender, EventArgs e) { float xPosition = 0; xPosition = float.Parse(textBoxXPosition.Text); MovePosition(xPosition, 0, 0, 0); PositionNow(); } private void uiButtonDecreaseY_Click(object sender, EventArgs e) { float yPosition = 0; yPosition = float.Parse(textBoxYPosition.Text); MovePosition(0, -yPosition, 0, 0); PositionNow(); } private void uiButtonIncreaseY_Click(object sender, EventArgs e) { float yPosition = 0; yPosition = float.Parse(textBoxYPosition.Text); MovePosition(0, yPosition, 0, 0); PositionNow(); } private void uiButtonDecreaseZ_Click(object sender, EventArgs e) { float zPosition = 0; zPosition = float.Parse(textBoxZPosition.Text); MovePosition(0, 0, -zPosition, 0); PositionNow(); } private void uiButtonIncreaseZ_Click(object sender, EventArgs e) { float zPosition = 0; zPosition = float.Parse(textBoxZPosition.Text); MovePosition(0, 0, zPosition, 0); PositionNow(); } private void uiButtonDecreasePitchAngle_Click(object sender, EventArgs e) { float pitchanglePosition = 0; pitchanglePosition = float.Parse(textBoxPitchAnglePosition.Text); MovePosition(0, 0, 0, -pitchanglePosition); AngNow(); } private void uiButtonIncreasePitchAngle_Click(object sender, EventArgs e) { float pitchanglePosition = 0; pitchanglePosition = float.Parse(textBoxPitchAnglePosition.Text); MovePosition(0, 0, 0, pitchanglePosition); AngNow(); } public float XPositionDt; public float YPositionDt; public float ZPositionDt; public float AnglePositionDt; public void MovePosition(float fDeltaX, float fDeltaY, float fDeltaZ, float fDeltAngle) { XPositionDt += fDeltaX; YPositionDt += fDeltaY; ZPositionDt += fDeltaZ; AnglePositionDt += fDeltAngle; } private void textBoxPointSpeed_TextChanged(object sender, EventArgs e) { float pointspeed = 0; pointspeed = float.Parse(textBoxPointSpeed.Text); } private void textBoxAngSpeed_TextChanged(object sender, EventArgs e) { float angspeed = 0; angspeed = float.Parse(textBoxAngSpeed.Text); } private void textBoxPositionNow_TextChanged(object sender, EventArgs e) { textBoxPositionNow.Enabled = false; string x; string y; string z; x = Convert.ToString(Math.Round(XPositionDt, 3)); y = Convert.ToString(Math.Round(YPositionDt, 3)); z = Convert.ToString(Math.Round(ZPositionDt, 3)); textBoxPositionNow.Text = "(" + x + "," + y + "," + z + ")"; } private void textBoxAngleNow_TextChanged(object sender, EventArgs e) { textBoxAngleNow.Enabled = false; string ang; ang = Convert.ToString(Math.Round(AnglePositionDt, 3)); textBoxAngleNow.Text = ang; } private void PositionNow() { string x; string y; string z; x = Convert.ToString(Math.Round(XPositionDt, 3)); y = Convert.ToString(Math.Round(YPositionDt, 3)); z = Convert.ToString(Math.Round(ZPositionDt, 3)); textBoxPositionNow.Text = "(" + x + y + z + ")"; } private void AngNow() { string ang; ang = Convert.ToString(Math.Round(AnglePositionDt, 3)); textBoxAngleNow.Text = "(" + ang + ")"; } private void uiGroupBoxMotionControl_Enter(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } private void tableLayoutPanel3_Paint(object sender, PaintEventArgs e) { } private void uiSplitContainer1_Panel1_Paint(object sender, PaintEventArgs e) { } // 使ç¨KeyDownäºä»¶æ´éåå¤çåè½¦é® private void textBoxXPosition_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //// éªè¯è¾å ¥ //if (ValidateXPosition()) //{ // // æ§è¡ç¡®è®¤æä½ // ProcessXPosition(); //} // 黿¢ç³»ç»å£°é³å¹¶è®©ææ¬æ¡å¤±å»ç¦ç¹ e.SuppressKeyPress = true; e.Handled = true; this.ActiveControl = null; } } // 使ç¨KeyPresséªè¯å®æ¶è¾å ¥ private void textBoxXPosition_KeyPress(object sender, KeyPressEventArgs e) { // å 许å车é®ï¼è½ç¶KeyDownä¼å¤çå®ï¼ if (e.KeyChar == (char)Keys.Enter) return; // å è®¸éæ ¼é® if (e.KeyChar == (char)Keys.Back) return; // åªå 许æ°å if (!char.IsDigit(e.KeyChar)) { e.Handled = true; // 黿¢è¾å ¥ } } // éªè¯æ¹æ³ private bool ValidateXPosition() { if (string.IsNullOrWhiteSpace(textBoxXPosition.Text)) return false; return Regex.IsMatch(textBoxXPosition.Text, @"^\d+$"); } // å¤çç¡®è®¤çæ¹æ³ private void ProcessXPosition() { if (int.TryParse(textBoxXPosition.Text, out int xPosition)) { // æ§è¡é»è¾ //LogInfo?.Invoke($"Xä½ç½®å·²æ´æ°ä¸º: {xPosition}", LogInfoType.INFO); } } } } LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.resx
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,286 @@ <?xml version="1.0" encoding="utf-8"?> <root> <!-- Microsoft ResX Schema Version 2.0 The primary goals of this format is to allow a simple XML format that is mostly human readable. The generation and parsing of the various data types are done through the TypeConverter classes associated with the data types. Example: ... ado.net/XML headers & schema ... <resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="version">2.0</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <value>[base64 mime encoded serialized .NET Framework object]</value> </data> <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> <comment>This is a comment</comment> </data> There are any number of "resheader" rows that contain simple name/value pairs. Each data row contains a name, and value. The row also contains a type or mimetype. Type corresponds to a .NET class that support text/value conversion through the TypeConverter architecture. Classes that don't support this are serialized and stored with the mimetype set. The mimetype is used for serialized objects, and tells the ResXResourceReader how to depersist the object. This is currently not extensible. For a given mimetype the value must be set accordingly: Note - application/x-microsoft.net.object.binary.base64 is the format that the ResXResourceWriter will generate, however the reader can read any of the formats listed below. mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 value : The object must be serialized with : System.Runtime.Serialization.Formatters.Soap.SoapFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.bytearray.base64 value : The object must be serialized into a byte array : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="metadata"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" /> </xsd:sequence> <xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute ref="xml:space" /> </xsd:complexType> </xsd:element> <xsd:element name="assembly"> <xsd:complexType> <xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" /> </xsd:complexType> </xsd:element> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute ref="xml:space" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>2.0</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> 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 6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0 NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqa Q09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2h pzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwA jtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z 6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0 NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqa Q09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2h pzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwA jtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z 6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0 NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqa Q09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2h pzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwA jtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z 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 </value> </data> </root>