| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 | 
							- using Aitex.Core.Common;
 
- using Aitex.Core.RT.Log;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Collections.ObjectModel;
 
- using System.ComponentModel;
 
- using System.Linq;
 
- using System.Runtime.Serialization;
 
- using System.Text;
 
- using System.Xml;
 
- using System.Xml.Linq;
 
- using MECF.Framework.Common.Equipment;
 
- using System.IO;
 
- namespace Aitex.Sorter.Common
 
- {
 
-     [DataContract]
 
-     [Serializable]
 
-     public class SorterHostUsageRecipeXml : INotifyPropertyChanged
 
-     {
 
-         public event PropertyChangedEventHandler PropertyChanged;
 
-         public void OnPropertyChanged(string propertyName)
 
-         {
 
-             if (PropertyChanged != null)
 
-             {
 
-                 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
 
-             }
 
-         }
 
-         private string name;
 
-         [DataMember]
 
-         public string Name
 
-         {
 
-             get
 
-             {
 
-                 return name;
 
-             }
 
-             set
 
-             {
 
-                 name = value;
 
-                 OnPropertyChanged("Name");
 
-             }
 
-         }
 
-         private bool _isReadLaserMarker1 = false;
 
-         [DataMember]
 
-         public bool IsReadLaserMarker1
 
-         {
 
-             get { return _isReadLaserMarker1; }
 
-             set
 
-             {
 
-                 _isReadLaserMarker1 = value;
 
-                 OnPropertyChanged("IsReadLaserMarker1");
 
-             }
 
-         }
 
-         private bool _isVerifyLaserMarker1;
 
-         [DataMember]
 
-         public bool IsVerifyLaserMarker1
 
-         {
 
-             get { return _isVerifyLaserMarker1; }
 
-             set
 
-             {
 
-                 _isVerifyLaserMarker1 = value;
 
-                 OnPropertyChanged("IsVerifyLaserMarker1");
 
-             }
 
-         }
 
-         private bool _isVerifyChecksumLaserMarker1;
 
-         [DataMember]
 
-         public bool IsVerifyChecksumLaserMarker1
 
-         {
 
-             get { return _isVerifyChecksumLaserMarker1; }
 
-             set
 
-             {
 
-                 _isVerifyChecksumLaserMarker1 = value;
 
-                 OnPropertyChanged("IsVerifyChecksumLaserMarker1");
 
-             }
 
-         }
 
-         private bool _isReadLaserMarker2 = false;
 
-         [DataMember]
 
-         public bool IsReadLaserMarker2
 
-         {
 
-             get { return _isReadLaserMarker2; }
 
-             set
 
-             {
 
-                 _isReadLaserMarker2 = value;
 
-                 OnPropertyChanged("IsReadLaserMarker2");
 
-             }
 
-         }
 
-         private bool _isVerifyLaserMarker2;
 
-         [DataMember]
 
-         public bool IsVerifyLaserMarker2
 
-         {
 
-             get { return _isVerifyLaserMarker2; }
 
-             set
 
-             {
 
-                 _isVerifyLaserMarker2 = value;
 
-                 OnPropertyChanged("IsVerifyLaserMarker2");
 
-             }
 
-         }
 
-         private bool _isVerifyChecksumLaserMarker2;
 
-         [DataMember]
 
-         public bool IsVerifyChecksumLaserMarker2
 
-         {
 
-             get { return _isVerifyChecksumLaserMarker2; }
 
-             set
 
-             {
 
-                 _isVerifyChecksumLaserMarker2 = value;
 
-                 OnPropertyChanged("IsVerifyChecksumLaserMarker2");
 
-             }
 
-         }
 
-         private double _preAlignAngle = 0;
 
-         [DataMember]
 
-         public double PreAlignAngle
 
-         {
 
-             get { return _preAlignAngle; }
 
-             set
 
-             {
 
-                 _preAlignAngle = value;
 
-                 //OnPropertyChanged("PreAlignAngle");
 
-             }
 
-         }
 
-         private double _postAlignAngle = 0;
 
-         [DataMember]
 
-         public double PostAlignAngle
 
-         {
 
-             get { return _postAlignAngle; }
 
-             set
 
-             {
 
-                 _postAlignAngle = value;
 
-                 OnPropertyChanged("PostAlignAngle");
 
-             }
 
-         }
 
-         private bool _isPostAlign;
 
-         [DataMember]
 
-         public bool IsPostAlign
 
-         {
 
-             get { return _isPostAlign; }
 
-             set
 
-             {
 
-                 _isPostAlign = value;
 
-                 OnPropertyChanged("IsPostAlign");
 
-             }
 
-         }        
 
-         
 
-         private bool _isTurnOver;
 
-         [DataMember]
 
-         public bool IsTurnOver
 
-         {
 
-             get { return _isTurnOver; }
 
-             set
 
-             {
 
-                 _isTurnOver= value;
 
-                 OnPropertyChanged("IsTurnOver");
 
-             }
 
-         }   
 
-         private int _laserMarkerWaferReaderIndex1;
 
-         [DataMember]
 
-         public int LaserMarkerWaferReaderIndex1
 
-         {
 
-             get => _laserMarkerWaferReaderIndex1;
 
-             set
 
-             {
 
-                 _laserMarkerWaferReaderIndex1 = value;
 
-                 OnPropertyChanged("LaserMarkerWaferReaderIndex1");
 
-             }
 
-         }
 
-         private int _laserMarkerWaferReaderIndex2;
 
-         [DataMember]
 
-         public int LaserMarkerWaferReaderIndex2
 
-         {
 
-             get => _laserMarkerWaferReaderIndex2;
 
-             set
 
-             {
 
-                 _laserMarkerWaferReaderIndex2 = value;
 
-                 OnPropertyChanged("LaserMarkerWaferReaderIndex2");
 
-             }
 
-         }
 
-         private ObservableCollection<KeyValuePair<string, string>> _ocrReaderJob1;
 
-         [DataMember]
 
-         public ObservableCollection<KeyValuePair<string, string>> OcrReaderJob1
 
-         {
 
-             get => _ocrReaderJob1;
 
-             set
 
-             {
 
-                 _ocrReaderJob1 = value;
 
-                 OnPropertyChanged("OcrReaderJob1");
 
-             }
 
-         }
 
-         private ObservableCollection<KeyValuePair<string, string>> _ocrReaderJob2;
 
-         [DataMember]
 
-         public ObservableCollection<KeyValuePair<string, string>> OcrReaderJob2
 
-         {
 
-             get => _ocrReaderJob2;
 
-             set
 
-             {
 
-                 _ocrReaderJob2 = value;
 
-                 OnPropertyChanged("OcrReaderJob2");
 
-             }
 
-         }
 
-         public SorterHostUsageRecipeXml(string name = "")
 
-         {
 
-             Name = name;
 
-             OcrReaderJob1 = new ObservableCollection<KeyValuePair<string, string>>();
 
-             OcrReaderJob2 = new ObservableCollection<KeyValuePair<string, string>>();
 
-         }
 
-         public SorterHostUsageRecipeXml(string content, string name = "")
 
-         {
 
-             Name = name;
 
-             SetContent(content);
 
-         }
 
-         public bool SetContent(string content)
 
-         {
 
-             try
 
-             {
 
-                 var doc = XDocument.Parse(content);
 
-                 ParseContent(doc);
 
-             }
 
-             catch (Exception e)
 
-             {
 
-                 LOG.WriteExeption(e);
 
-                 return false;
 
-             }
 
-             return true;
 
-         }
 
-         public string GetContent()
 
-         {
 
-             var doc = new XDocument();
 
-             var root = new XElement("Recipe");
 
-             var element = new XElement("AitexSorterHostUsageRecipe"
 
-                 , new XAttribute("PreAlignAngle", PreAlignAngle)
 
-                 , new XAttribute("IsReadLaserMarker1", IsReadLaserMarker1.ToString())
 
-                 , new XAttribute("IsVerifyLaserMarker1", IsVerifyLaserMarker1.ToString())
 
-                 , new XAttribute("IsVerifyChecksumLaserMarker1", IsVerifyChecksumLaserMarker1.ToString())
 
-                 , new XAttribute("LaserMarkerWaferReaderIndex1", LaserMarkerWaferReaderIndex1)
 
-                 , new XAttribute("IsReadLaserMarker2", IsReadLaserMarker2.ToString())
 
-                 , new XAttribute("IsVerifyLaserMarker2", IsVerifyLaserMarker2.ToString())
 
-                 , new XAttribute("IsVerifyChecksumLaserMarker2", IsVerifyChecksumLaserMarker2.ToString())
 
-                 , new XAttribute("LaserMarkerWaferReaderIndex2", LaserMarkerWaferReaderIndex2)
 
-                 , new XAttribute("IsPostAlign", IsPostAlign.ToString())
 
-                 , new XAttribute("PostAlignAngle", PostAlignAngle)
 
-                 , new XAttribute("OcrReaderJob1", OcrReaderJob1 != null ? string.Join(";", OcrReaderJob1.Select(x => x.Value)) : "")
 
-                 , new XAttribute("OcrReaderJob2", OcrReaderJob2 != null ? string.Join(";", OcrReaderJob2.Select(x => x.Value)) : "")
 
-                 , new XAttribute("IsTurnOver", IsTurnOver.ToString())
 
-                 );
 
-             root.Add(element);
 
-             doc.Add(root);
 
-             return doc.ToString();
 
-         }
 
-         private void ParseContent(XDocument doc)
 
-         {
 
-             try
 
-             {
 
-                 var node = doc.Root.Element("AitexSorterHostUsageRecipe");
 
-                 if (node == null)
 
-                 {
 
-                     //LOG.Write(string.Format("recipe not valid"));
 
-                     return;
 
-                 }
 
-                 string value = node.Attribute("PreAlignAngle").Value;
 
-                 double preAngle;
 
-                 double.TryParse(value, out preAngle);
 
-                 PreAlignAngle = preAngle;
 
-                 value = node.Attribute("IsReadLaserMarker1").Value;
 
-                 bool isReadLaserMarker1;
 
-                 bool.TryParse(value, out isReadLaserMarker1);
 
-                 IsReadLaserMarker1 = isReadLaserMarker1;
 
-                 value = node.Attribute("IsVerifyLaserMarker1").Value;
 
-                 bool isVerifyLaserMarker1;
 
-                 bool.TryParse(value, out isVerifyLaserMarker1);
 
-                 IsVerifyLaserMarker1 = isVerifyLaserMarker1;
 
-                 value = node.Attribute("IsVerifyChecksumLaserMarker1").Value;
 
-                 bool isVerifyChecksumLaserMarker1;
 
-                 bool.TryParse(value, out isVerifyChecksumLaserMarker1);
 
-                 IsVerifyChecksumLaserMarker1 = isVerifyChecksumLaserMarker1;
 
-                 LaserMarkerWaferReaderIndex1 = GetValue<int>(node, "LaserMarkerWaferReaderIndex1");
 
-                 value = node.Attribute("IsReadLaserMarker2").Value;
 
-                 bool isReadLaserMarker2;
 
-                 bool.TryParse(value, out isReadLaserMarker2);
 
-                 IsReadLaserMarker2 = isReadLaserMarker2;
 
-                 value = node.Attribute("IsVerifyLaserMarker2").Value;
 
-                 bool isVerifyLaserMarker2;
 
-                 bool.TryParse(value, out isVerifyLaserMarker2);
 
-                 IsVerifyLaserMarker2 = isVerifyLaserMarker2;
 
-                 value = node.Attribute("IsVerifyChecksumLaserMarker2").Value;
 
-                 bool isVerifyChecksumLaserMarker2;
 
-                 bool.TryParse(value, out isVerifyChecksumLaserMarker2);
 
-                 IsVerifyChecksumLaserMarker2 = isVerifyChecksumLaserMarker2;
 
-                 LaserMarkerWaferReaderIndex2 = GetValue<int>(node, "LaserMarkerWaferReaderIndex2");
 
-                 value = node.Attribute("IsPostAlign").Value;
 
-                 bool ispostAlign;
 
-                 bool.TryParse(value, out ispostAlign);
 
-                 IsPostAlign = ispostAlign;
 
-                 value = node.Attribute("PostAlignAngle").Value;
 
-                 double postAngle;
 
-                 double.TryParse(value, out postAngle);
 
-                 PostAlignAngle = postAngle;
 
-                 value = node.Attribute("OcrReaderJob1").Value;
 
-                 var arr = value.Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries);
 
-                 OcrReaderJob1 = new ObservableCollection<KeyValuePair<string, string>>(arr.ToDictionary(k => Path.GetFileNameWithoutExtension(k), v => v));
 
-                 value = node.Attribute("OcrReaderJob2").Value;
 
-                 arr = value.Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries);
 
-                 OcrReaderJob2 = new ObservableCollection<KeyValuePair<string, string>>(arr.ToDictionary(k => Path.GetFileNameWithoutExtension(k), v => v));
 
-                 
 
-                 value = node.Attribute("IsTurnOver").Value;
 
-                 bool isTurnOver;
 
-                 bool.TryParse(value, out isTurnOver);
 
-                 IsTurnOver = isTurnOver;
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 LOG.WriteExeption(ex);
 
-             }
 
-         }
 
-         private T GetValue<T>(XElement element, string Name)
 
-         {
 
-             var attr = element.Attribute(Name);
 
-             if (attr != null)
 
-             {
 
-                 return (T)Convert.ChangeType(attr.Value, typeof(T));
 
-             }
 
-             return default(T);
 
-         }
 
-     }
 
- }
 
 
  |