private void SavePdo(List <ModuleInfoBase> ListAdjust, EnumModuleIOType IOType) { int SubIdx = 1; var n = Xml.GetSingleElement(null, "EtherCATInfo", "Descriptions", "Devices", "Device", IOType == EnumModuleIOType.OUT? "RxPdo" : "TxPdo"); while (Xml.GetMutifyElement(n, "Entry").Count() > 0) { n.Elements().ElementAt(n.Elements().Count() - 1).Remove(); } foreach (var Module in ListAdjust) { var DesModules = Module.ModuleList.Where(m => m.IOType == IOType); for (int j = 0; j < DesModules.Count(); j++) { var DesModule = DesModules.ElementAt(j); var e = Xml.CreateElement("Entry"); Xml.SetSubElement(e, "Index", "SubIndex", "BitLen", "Name", "DataType"); Xml.SetSubElementValue(e, "Index", IOType == EnumModuleIOType.OUT? "#x7010" : "#x6001"); Xml.SetSubElementValue(e, "SubIndex", $"{SubIdx++}"); Xml.SetSubElementValue(e, "BitLen", $"{DesModule.BitSize}"); Xml.SetSubElementValue(e, "Name", $"{DesModule.Header}{Module.Name}"); Xml.SetSubElementValue(e, "DataType", $"{DesModule.DataTypeOfSubItem}"); Xml.SetSubElement(n, e); } } }
private void Savex2(List <ModuleInfoBase> ListAdjust, EnumModuleIOType IOType) { int SubIdx = 1; var n = Xml.GetSingleElement(null, "EtherCATInfo", "Descriptions", "Devices", "Device", "Profile", "Dictionary", "Objects"); var es = Xml.GetMutifyElement(n, "Object"); var Dic = new Dictionary <string, string>(); Dic.Add("Index", IOType == EnumModuleIOType.OUT? "#x7010" : "#x6001"); var v = Xml.GetElementFromMutiElement(es, Dic); var infoE = Xml.GetSingleElement(v, "Info"); var ss = Xml.GetMutifyElement(infoE, "SubItem"); while (Xml.GetMutifyElement(infoE, "SubItem").Count() > 1) { infoE.Elements().ElementAt(infoE.Elements().Count() - 1).Remove(); } StringBuilder sb = new StringBuilder(); foreach (var Module in ListAdjust) { var DesModules = Module.ModuleList.Where(m => m.IOType == IOType); for (int j = 0; j < DesModules.Count(); j++) { var DesModule = DesModules.ElementAt(j); var e = Xml.CreateElement("SubItem"); Xml.SetSubElement(e, "Name", "Info"); Xml.SetSubElementValue(e, "Name", $"{DesModule.Header}{Module.Name}"); var ee = Xml.GetSingleElement(e, "Info"); Xml.SetSubElement(ee, "DefaultData"); //00-8Bit, 0000-16Bit, 00000000-32Bit sb.Clear(); for (int i = 0; i < DesModule.BitSize / 8; i++) { sb.Append("00"); } Xml.SetSubElementValue(ee, "DefaultData", sb.ToString()); Xml.SetSubElement(infoE, e); SubIdx++; } } //修改第一个SubItem的DefaultData var FirstE = Xml.GetSingleElement(infoE, "SubItem", "Info"); Xml.SetSubElementValue(FirstE, "DefaultData", $"{SubIdx - 1}"); }
/// <summary> /// 输出的详细名称 /// </summary> /// <param name="ListAdjust"></param> private void SaveDT2(List <ModuleInfoBase> ListAdjust, EnumModuleIOType IOType) { int BitOffs = 16; int SubIdx = 1; var n = Xml.GetSingleElement(null, "EtherCATInfo", "Descriptions", "Devices", "Device", "Profile", "Dictionary", "DataTypes"); var es = Xml.GetMutifyElement(n, "DataType"); var Dic = new Dictionary <string, string>(); Dic.Add("Name", IOType == EnumModuleIOType.OUT? "DT7010" : "DT6001"); var v = Xml.GetElementFromMutiElement(es, Dic); var ss = Xml.GetMutifyElement(v, "SubItem"); while (Xml.GetMutifyElement(v, "SubItem").Count() > 1) { v.Elements().ElementAt(v.Elements().Count() - 1).Remove(); } foreach (var Module in ListAdjust) { var DesModules = Module.ModuleList.Where(m => m.IOType == IOType); for (int j = 0; j < DesModules.Count(); j++) { var DesModule = DesModules.ElementAt(j); var e = Xml.CreateElement("SubItem"); Xml.SetSubElement(e, "SubIdx", "Name", "Type", "BitSize", "BitOffs", "Flags"); Xml.SetSubElementValue(e, "SubIdx", $"{SubIdx++}"); Xml.SetSubElementValue(e, "Name", $"{DesModule.Header}{Module.Name}"); Xml.SetSubElementValue(e, "Type", $"{DesModule.DataTypeOfSubItem.ToString()}"); Xml.SetSubElementValue(e, "BitSize", $"{DesModule.BitSize}"); Xml.SetSubElementValue(e, "BitOffs", $"{BitOffs}"); BitOffs += DesModule.BitSize; var ee = Xml.GetSingleElement(e, "Flags"); Xml.SetSubElement(ee, "Access", "Category"); var eee = Xml.GetSingleElement(ee, "Access"); Xml.SetSubElementValue(ee, "Access", "ro"); Xml.SetSubElementValue(ee, "Category", "o"); Xml.SetSubElement(v, e); } } Xml.SetSubElementValue(v, "BitSize", $"{BitOffs}"); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { EnumModuleIOType msg = (EnumModuleIOType)value; switch (msg) { case EnumModuleIOType.IN: return(new SolidColorBrush(Color.FromRgb(128, 150, 128))); case EnumModuleIOType.OUT: return(new SolidColorBrush(Color.FromRgb(255, 255, 255))); default: break; } return(new SolidColorBrush(Color.FromRgb(128, 150, 128))); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { EnumModuleIOType type = (EnumModuleIOType)value; BitmapImage bitmap = null; var basePath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase; switch (type) { case EnumModuleIOType.IN: bitmap = new BitmapImage(new Uri(basePath + @"images\in.png", UriKind.Absolute)); break; case EnumModuleIOType.OUT: bitmap = new BitmapImage(new Uri(basePath + @"images\out.png", UriKind.Absolute)); break; default: break; } return(bitmap); }
private void Savex1(List <ModuleInfoBase> ListAdjust, EnumModuleIOType IOType) { int SubIdx = 1; var n = Xml.GetSingleElement(null, "EtherCATInfo", "Descriptions", "Devices", "Device", "Profile", "Dictionary", "Objects"); var es = Xml.GetMutifyElement(n, "Object"); var Dic = new Dictionary <string, string>(); Dic.Add("Index", IOType == EnumModuleIOType.OUT? "#x1601" : "#x1A00"); var v = Xml.GetElementFromMutiElement(es, Dic); var infoE = Xml.GetSingleElement(v, "Info"); var ss = Xml.GetMutifyElement(infoE, "SubItem"); while (Xml.GetMutifyElement(infoE, "SubItem").Count() > 1) { infoE.Elements().ElementAt(infoE.Elements().Count() - 1).Remove(); } foreach (var Module in ListAdjust) { var DesModules = Module.ModuleList.Where(m => m.IOType == IOType); for (int j = 0; j < DesModules.Count(); j++) { var DesModule = DesModules.ElementAt(j); var e = Xml.CreateElement("SubItem"); Xml.SetSubElement(e, "Name", "Info"); Xml.SetSubElementValue(e, "Name", string.Format("SunIndex {0:D3}", SubIdx)); var ee = Xml.GetSingleElement(e, "Info"); Xml.SetSubElement(ee, "DefaultData"); //08011070 0710 01 08 Xml.SetSubElementValue(ee, "DefaultData", string.Format("{0:D2}{1:D2}{2}", DesModule.BitSize, SubIdx++, IOType == EnumModuleIOType.OUT? "1070" : "0160")); Xml.SetSubElement(infoE, e); } } //修改第一个SubItem的DefaultData var FirstE = Xml.GetSingleElement(infoE, "SubItem", "Info"); Xml.SetSubElementValue(FirstE, "DefaultData", $"{SubIdx - 1}"); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { EnumModuleIOType type = (EnumModuleIOType)value; return(type == EnumModuleIOType.OUT); }