CutHole.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. //时间:20200608
  2. //作者:郝爽
  3. //功能:切割孔
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using FileManager;
  10. using System.Xml;
  11. namespace MeasureData
  12. {
  13. //操作步骤,在操作失败时,反馈的状态
  14. public enum Operation
  15. {
  16. Init,
  17. PTInsert,
  18. GetCutPosition,
  19. Cut,
  20. PTOut,
  21. GetHole,
  22. Image,
  23. Analysis,
  24. Element
  25. }
  26. //测试结果
  27. public enum State
  28. {
  29. Ready, //就绪
  30. InProcess, //进行中
  31. Waiting, //等待,半自动化测试过程的状态
  32. Failed, //失败
  33. Success //成功
  34. }
  35. //切割孔
  36. public class CutHole: ISlo
  37. {
  38. #region 切割孔名
  39. /// <summary>
  40. /// 切割孔名
  41. /// </summary>
  42. private string m_HoleName;
  43. public string HoleName
  44. {
  45. get { return this.m_HoleName; }
  46. set { this.m_HoleName = value; }
  47. }
  48. #endregion
  49. #region 坐标位置
  50. private SemPosition m_Position;
  51. public SemPosition Position
  52. {
  53. get { return this.m_Position; }
  54. set { this.m_Position = value; }
  55. }
  56. #endregion
  57. #region 工作状态
  58. //开始时间
  59. private DateTime m_start;
  60. public DateTime START
  61. {
  62. get { return this.m_start; }
  63. set { this.m_start = value; }
  64. }
  65. //结束时间
  66. private DateTime m_end;
  67. public DateTime END
  68. {
  69. get { return this.m_end; }
  70. set { this.m_end = value; }
  71. }
  72. //测试结果
  73. private State m_state;
  74. public State STATE
  75. {
  76. get { return this.m_state; }
  77. set { this.m_state = value; }
  78. }
  79. //测量开关
  80. private bool m_switch;
  81. public bool SWITCH
  82. {
  83. get { return this.m_switch; }
  84. set { this.m_switch = value; }
  85. }
  86. #endregion
  87. //构造函数
  88. public CutHole()
  89. {
  90. Init();
  91. }
  92. //初始化函数
  93. private void Init()
  94. {
  95. //设定初始值
  96. m_state = State.Ready;
  97. m_switch = false;
  98. Position = new SemPosition();
  99. }
  100. //样品孔存储xml文档
  101. public override void Serialize(bool isStoring, XmlDocument xml, XmlNode rootNode)
  102. {
  103. Slo slo_cuthole = new Slo();
  104. xString regName = new xString();
  105. regName.AssignValue("CutHole");
  106. slo_cuthole.Register("RegName", regName);
  107. //样品名称
  108. xString SampleName = new xString();
  109. SampleName.AssignValue(this.HoleName);
  110. slo_cuthole.Register("SampleName", SampleName);
  111. slo_cuthole.Register("Position", this.Position);
  112. //开始时间
  113. xTime_t START = new xTime_t();
  114. START.AssignValue(this.START);
  115. slo_cuthole.Register("START", START);
  116. //结束时间
  117. xTime_t END = new xTime_t();
  118. END.AssignValue(this.END);
  119. slo_cuthole.Register("END", END);
  120. //测量结果
  121. xInt STATE = new xInt();
  122. STATE.AssignValue(this.STATE.GetHashCode());
  123. slo_cuthole.Register("STATE", STATE);
  124. //测量开关
  125. xBool SWITCH = new xBool();
  126. SWITCH.AssignValue(this.SWITCH);
  127. slo_cuthole.Register("SWITCH", SWITCH);
  128. if (isStoring)
  129. {
  130. slo_cuthole.Serialize(true, xml, rootNode);
  131. }
  132. else
  133. {
  134. slo_cuthole.Serialize(false, xml, rootNode);
  135. this.START = START.value();
  136. this.END = END.value();
  137. this.STATE = (State)STATE.value();
  138. this.SWITCH = SWITCH.value();
  139. this.HoleName = SampleName.value();
  140. }
  141. }
  142. }
  143. }