LocalSorterRecipe.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using Aitex.Core.RT.Log;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Xml.Linq;
  8. namespace Aitex.Sorter.RT.Module.Recipe
  9. {
  10. public class LocalSorterRecipe
  11. {
  12. public bool IsPreAlign;
  13. public double PreAlignAngle;
  14. public bool IsReadLaserMarker1;
  15. public int LaserMarkerWaferReaderIndex1;
  16. public bool IsReadLaserMarker2;
  17. public int LaserMarkerWaferReaderIndex2;
  18. public List<string> OcrReaderJob1;
  19. public List<string> OcrReaderJob2;
  20. public bool IsPostAlign;
  21. public double PostAlignAngle;
  22. public bool IsTurnOver;
  23. public string RecipeName { get; set; }
  24. public LocalSorterRecipe(string content, string recipename)
  25. {
  26. try
  27. {
  28. RecipeName = recipename;
  29. var doc = XDocument.Parse(content);
  30. var node = doc.Root.Element("AitexSorterHostUsageRecipe");
  31. if (node == null)
  32. {
  33. LOG.Write(string.Format("recipe not valid"));
  34. return;
  35. }
  36. string value = node.Attribute("PreAlignAngle").Value;
  37. double doubleValue;
  38. double.TryParse(value, out doubleValue);
  39. PreAlignAngle = doubleValue;
  40. value = node.Attribute("IsReadLaserMarker1").Value;
  41. bool boolValue;
  42. bool.TryParse(value, out boolValue);
  43. IsReadLaserMarker1 = boolValue;
  44. value = node.Attribute("IsPreAlign").Value;
  45. bool.TryParse(value, out boolValue);
  46. IsPreAlign = boolValue;
  47. value = node.Attribute("LaserMarkerWaferReaderIndex1").Value;
  48. int intValue;
  49. int.TryParse(value, out intValue);
  50. LaserMarkerWaferReaderIndex1 = intValue;
  51. value = node.Attribute("IsReadLaserMarker2").Value;
  52. bool.TryParse(value, out boolValue);
  53. IsReadLaserMarker2 = boolValue;
  54. value = node.Attribute("LaserMarkerWaferReaderIndex2").Value;
  55. int.TryParse(value, out intValue);
  56. LaserMarkerWaferReaderIndex2 = intValue;
  57. value = node.Attribute("IsPostAlign").Value;
  58. bool.TryParse(value, out boolValue);
  59. IsPostAlign = boolValue;
  60. value = node.Attribute("IsTurnOver").Value;
  61. bool.TryParse(value, out boolValue);
  62. IsTurnOver = boolValue;
  63. //value = node.Attribute("PostAlignAngle").Value;
  64. //double.TryParse(value, out doubleValue);
  65. //PostAlignAngle = doubleValue;
  66. PostAlignAngle = PreAlignAngle;
  67. value = node.Attribute("OcrReaderJob1").Value;
  68. var arr = value.Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries);
  69. OcrReaderJob1 = arr.ToList();
  70. value = node.Attribute("OcrReaderJob2").Value;
  71. arr = value.Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries);
  72. OcrReaderJob2 = arr.ToList();
  73. }
  74. catch (Exception ex)
  75. {
  76. LOG.Write(ex);
  77. }
  78. }
  79. }
  80. }