CSpecialGrayRangeParam.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. using OTSDataType;
  2. using OTSModelSharp;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Xml;
  10. namespace OTSMeasureApp._0_OTSModel.OTSDataType
  11. {
  12. public class CSpecialGrayRange:ISlo
  13. {
  14. public string rngname;
  15. public CIntRange range=new CIntRange();
  16. public CIntRange diameterRange = new CIntRange();
  17. public bool ifCollectXray;
  18. public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
  19. {
  20. xString xname=new xString();
  21. xInt xStart = new xInt();
  22. xInt xEnd = new xInt();
  23. xInt xdiaStart = new xInt();
  24. xInt xdiaEnd = new xInt();
  25. xBool xIfXray = new xBool();
  26. Slo slo = new Slo();
  27. slo.Register("rngName", xname);
  28. slo.Register("start", xStart);
  29. slo.Register("end", xEnd);
  30. slo.Register("diameterStart", xdiaStart);
  31. slo.Register("diameterEnd", xdiaEnd);
  32. slo.Register("collectXray", xIfXray);
  33. if (isStoring)
  34. {
  35. xname.AssignValue(rngname);
  36. xStart.AssignValue(range.GetStart());
  37. xEnd.AssignValue(range.GetEnd());
  38. xdiaStart.AssignValue(diameterRange.GetStart());
  39. xdiaEnd.AssignValue(diameterRange.GetEnd());
  40. xIfXray.AssignValue(ifCollectXray);
  41. slo.Serialize(true, classDoc, rootNode);
  42. }
  43. else
  44. {
  45. slo.Serialize(false, classDoc, rootNode);
  46. rngname = xname.value();
  47. range.SetStart(xStart.value());
  48. range.SetEnd(xEnd.value());
  49. diameterRange.SetStart(xdiaStart.value());
  50. diameterRange.SetEnd(xdiaEnd.value());
  51. ifCollectXray = xIfXray.value();
  52. }
  53. }
  54. }
  55. public class CSpecialGrayRangeParam: ISlo
  56. {
  57. private List<CSpecialGrayRange> Ranges=new List<CSpecialGrayRange>();
  58. private bool isToRun=false;
  59. public CSpecialGrayRangeParam()
  60. {
  61. }
  62. public CSpecialGrayRangeParam Duplicate()
  63. {
  64. CSpecialGrayRangeParam param = new CSpecialGrayRangeParam();
  65. param.isToRun=this.isToRun;
  66. var rngs = param.GetSpecialGreyRanges();
  67. foreach (var rng in this.Ranges)
  68. {
  69. var newrng = new CSpecialGrayRange();
  70. newrng.rngname = rng.rngname;
  71. newrng.range.SetStart(rng.range.GetStart());
  72. newrng.range.SetEnd(rng.range.GetEnd());
  73. newrng.diameterRange.SetStart(rng.diameterRange.GetStart());
  74. newrng.diameterRange.SetEnd(rng.diameterRange.GetEnd());
  75. newrng.ifCollectXray = rng.ifCollectXray;
  76. rngs.Add(newrng);
  77. }
  78. param.SetSpecailGrayRanges(rngs);
  79. return param;
  80. }
  81. public bool GetIsToRun()
  82. {
  83. return isToRun;
  84. }
  85. public void SetIsToRun(bool value)
  86. {
  87. isToRun = value;
  88. }
  89. public bool IsToRun { get => isToRun; set => isToRun = value; }
  90. public List<CSpecialGrayRange> GetSpecialGreyRanges()
  91. {
  92. return Ranges;
  93. }
  94. public void SetSpecailGrayRanges(List<CSpecialGrayRange> value)
  95. {
  96. Ranges = value;
  97. }
  98. public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
  99. {
  100. Collection<CSpecialGrayRange> xRangelist = new Collection<CSpecialGrayRange>();
  101. xBool xtoRun = new xBool();
  102. Slo slo = new Slo();
  103. slo.Register("ToRun", xtoRun);
  104. slo.Register("GrayRangeList", xRangelist);
  105. if (isStoring)
  106. {
  107. xtoRun.AssignValue(isToRun);
  108. for (int i = 0; i < Ranges.Count; i++)
  109. {
  110. xRangelist.addItem(Ranges[i]);
  111. }
  112. slo.Serialize(true, classDoc, rootNode);
  113. }
  114. else
  115. {
  116. slo.Serialize(false, classDoc, rootNode);
  117. isToRun = xtoRun.value();
  118. Ranges.Clear();
  119. for (int i = 0; i < xRangelist.size(); i++)
  120. {
  121. Ranges.Add(xRangelist.getItem(i));
  122. }
  123. }
  124. }
  125. }
  126. }