CaliperToolRun.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * ==============================================================================
  3. *
  4. * Filename: CaliperToolRun
  5. * Description:
  6. *
  7. * Version: 1.0
  8. * Created: 2021/2/25 16:25:51
  9. *
  10. * Author: liu.wenjie
  11. *
  12. * ==============================================================================
  13. */
  14. using CommonMethods;
  15. using CommonMethods.Interface;
  16. using FormLib;
  17. using HalconDotNet;
  18. using Logger;
  19. using System;
  20. using System.Collections.Generic;
  21. using System.Drawing;
  22. using System.Linq;
  23. using System.Text;
  24. using System.Text.RegularExpressions;
  25. using System.Threading.Tasks;
  26. using System.Windows.Forms;
  27. using ToolLib.VisionJob;
  28. namespace CaliperTool
  29. {
  30. public class CaliperRun : IToolRun
  31. {
  32. public void ToolRun(string jobName, int toolIndex, int inputItemNum, TreeNode selectNode, List<IToolInfo> L_toolList, IVisionJob runJob, Form myHalconWindowForm)
  33. {
  34. Caliper myCaliper = (Caliper)L_toolList[toolIndex].tool;
  35. VisionJob myJob = (VisionJob)runJob;
  36. for (int j = 0; j < inputItemNum; j++)
  37. {
  38. if (L_toolList[toolIndex].toolInput[j].IOName == "InputImage" && L_toolList[toolIndex].GetInput(L_toolList[toolIndex].toolInput[j].IOName).value == null)
  39. {
  40. selectNode.ForeColor = Color.Red;
  41. LoggerClass.WriteLog($"{L_toolList[toolIndex].toolName} 无输入图像");
  42. break;
  43. }
  44. else
  45. {
  46. if (L_toolList[toolIndex].GetInput(L_toolList[toolIndex].toolInput[j].IOName).value != null)
  47. {
  48. string sourceFrom = L_toolList[toolIndex].GetInput(L_toolList[toolIndex].toolInput[j].IOName).value.ToString();
  49. string sourceToolName = Regex.Split(sourceFrom, "->")[0];
  50. sourceToolName = sourceToolName.Substring(3, Regex.Split(sourceFrom, "->")[0].Length - 3);
  51. string toolItem = Regex.Split(sourceFrom, "->")[1];
  52. if (L_toolList[toolIndex].toolInput[j].IOName == "InputImage")
  53. {
  54. myCaliper.inputImage = myJob.GetToolInfoByToolName(sourceToolName).GetOutput(toolItem).value as HObject;
  55. }
  56. if (L_toolList[toolIndex].toolInput[j].IOName == "inputCenterRow")
  57. {
  58. myCaliper.expectRecStartRow = myJob.GetToolInfoByToolName(sourceToolName).GetOutput(toolItem).value as HTuple;
  59. }
  60. if (L_toolList[toolIndex].toolInput[j].IOName == "inputCenterCol")
  61. {
  62. myCaliper.expectRecStartColumn = myJob.GetToolInfoByToolName(sourceToolName).GetOutput(toolItem).value as HTuple;
  63. }
  64. if (L_toolList[toolIndex].toolInput[j].IOName == "inputPhi")
  65. {
  66. myCaliper.expectAngle = myJob.GetToolInfoByToolName(sourceToolName).GetOutput(toolItem).value as HTuple;
  67. }
  68. }
  69. }
  70. }
  71. myCaliper.Run(SoftwareRunState.Release);
  72. if (myCaliper.toolRunStatu == ToolRunStatu.Succeed)
  73. {
  74. myCaliper.DispMainWindow(((FormImageWindow)myHalconWindowForm).myHWindow);
  75. myJob.FormLogDisp(L_toolList[toolIndex].toolName + " 运行成功", Color.Green, selectNode);
  76. }
  77. else
  78. {
  79. myJob.FormLogDisp(L_toolList[toolIndex].toolName + " 运行失败", Color.Red, selectNode);
  80. }
  81. L_toolList[toolIndex].toolRunStatu = myCaliper.toolRunStatu;
  82. }
  83. }
  84. }