MeasureMsgManage.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. using MeasureThread;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Drawing;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows.Forms;
  9. using System.IO;
  10. namespace HOZProject
  11. {
  12. public class MeasureMsgManage
  13. {
  14. public enum measureType
  15. {
  16. Photo=0,
  17. FIB=1,
  18. PT=2
  19. }
  20. /// <summary>
  21. /// 线程消息处理,显示内容
  22. /// </summary>
  23. /// <param name="formHOZ">主窗体对象</param>
  24. /// <param name="args">消息对象</param>
  25. public static void ShowMsgContent(FormHOZMain formHOZ, ThreadStatusEventArgs args)
  26. {
  27. #region 原方法判断,流程中的数据显示
  28. //switch (args.Step_Code)
  29. //{
  30. // case "1-3":
  31. // //设置图像
  32. // FileStream fileStream = new FileStream(args.Picture_Information.Picture_FullPath, FileMode.Open, FileAccess.Read);
  33. // formHOZ.pbImage.Image = Image.FromStream(fileStream);
  34. // fileStream.Close();
  35. // fileStream.Dispose();
  36. // //流程内容
  37. // string semParaContent = "电压:"+args.Picture_Information.Work_Voltage;
  38. // semParaContent += " 放大倍数:" + args.Picture_Information.Magnification;
  39. // semParaContent += " 工作距离:" + args.Picture_Information.Work_Distance;
  40. // formHOZ.lblFlowContent.Text = semParaContent;
  41. // break;
  42. // default:
  43. // break;
  44. //}
  45. #endregion
  46. if (IsCutHolePhotoInfo(formHOZ, args))
  47. {
  48. //设置图像
  49. FileStream fileStream = new FileStream(args.Picture_Information.Picture_FullPath, FileMode.Open, FileAccess.Read);
  50. formHOZ.pbImage.Image = Image.FromStream(fileStream);
  51. fileStream.Close();
  52. fileStream.Dispose();
  53. //流程内容
  54. string semParaContent = "电压:" + args.Picture_Information.Work_Voltage;
  55. semParaContent += " 放大倍数:" + args.Picture_Information.Magnification;
  56. semParaContent += " 工作距离:" + args.Picture_Information.Work_Distance;
  57. formHOZ.lblFlowContent.Text = semParaContent;
  58. }
  59. //修改切孔中流程状态
  60. ChageCutHoleFlowNodeState(formHOZ, args);
  61. }
  62. #region 显示切孔流程中拍照信息
  63. /// <summary>
  64. /// 是否当前编号是流程中有数据的节点
  65. /// </summary>
  66. /// <param name="formHOZ">主窗体对象</param>
  67. /// <param name="args">线程参数</param>
  68. /// <returns></returns>
  69. public static bool IsCutHolePhotoInfo(FormHOZMain formHOZ, ThreadStatusEventArgs args)
  70. {
  71. if (formHOZ.plPrarInfo.Controls.Count > 0)
  72. {
  73. foreach (Control item in formHOZ.plPrarInfo.Controls)
  74. {
  75. if (item is UserControl)
  76. {
  77. if (item.Name == args.HoleName)
  78. {
  79. UControl_ParaInfo uControl_ParaInfo = (UControl_ParaInfo)item;
  80. TimeLineItem[] ParaItem = uControl_ParaInfo.TlItem;
  81. foreach (TimeLineItem tlItem in ParaItem)
  82. {
  83. if (tlItem.Code == args.Step_Code && tlItem.IsData)
  84. {
  85. return true;
  86. }
  87. }
  88. }
  89. }
  90. }
  91. }
  92. return false;
  93. }
  94. #endregion
  95. #region 修改切孔中流程状态
  96. /// <summary>
  97. /// 修改切孔中流程状态
  98. /// </summary>
  99. /// <param name="formHOZ">主窗体对象</param>
  100. /// <param name="cutHoleName">切孔名称</param>
  101. /// <param name="Code">流程编号</param>
  102. /// <param name="state">状态</param>
  103. /// <returns></returns>
  104. public static bool ChageCutHoleFlowNodeState(FormHOZMain formHOZ, ThreadStatusEventArgs args)
  105. {
  106. if (formHOZ.plPrarInfo.Controls.Count > 0)
  107. {
  108. foreach (Control item in formHOZ.plPrarInfo.Controls)
  109. {
  110. if (item is UserControl)
  111. {
  112. if (item.Name == args.HoleName)
  113. {
  114. UControl_ParaInfo uControl_ParaInfo = (UControl_ParaInfo)item;
  115. TimeLineItem[] ParaItem = uControl_ParaInfo.TlItem;
  116. foreach (TimeLineItem tlItem in ParaItem)
  117. {
  118. if (tlItem.Code == args.Step_Code)
  119. {
  120. tlItem.State = args.State;
  121. break;
  122. }
  123. }
  124. //重新绘制
  125. uControl_ParaInfo.TimeLineInvalidate();
  126. return true;
  127. }
  128. }
  129. }
  130. }
  131. return false;
  132. }
  133. #endregion
  134. }
  135. }