private static void SerialModuleSignal(ParserSignal.signal_configuration sc, string fileNameOut) { XmlSerializer xml = new XmlSerializer(typeof(ParserSignal.signal_configuration)); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add(string.Empty, string.Empty); ns.Add("PinXML", "http://www.freescale.com/ProcessorExpert/PinsModel"); using (TextWriter writer = new StreamWriter(fileNameOut)) { xml.Serialize(writer, sc, ns); } }
private static ParserSignal.signal_configuration DeserialModuleSignal(string file) { XmlSerializer de = new XmlSerializer(typeof(ParserSignal.signal_configuration)); TextReader reader = new StreamReader(file); object obj = de.Deserialize(reader); ParserSignal.signal_configuration config = (ParserSignal.signal_configuration)obj; reader.Close(); return(config); }
private static void ProcessSignal(PinsFile fileIn, PinsFile fileOut) { ParserSignal.signal_configuration sc = DeserialModuleSignal(fileIn.Signal); ParserSignal.functional_properties_declarationsFunctional_property_declaration propertyDec = new ParserSignal.functional_properties_declarationsFunctional_property_declaration() { id = "InitValue", name = "Initial Value", description = "Initial Value", }; List <ParserSignal.functional_properties_declarationsFunctional_property_declarationState_declaration> lstState = new List <ParserSignal.functional_properties_declarationsFunctional_property_declarationState_declaration>(); lstState.Add(new ParserSignal.functional_properties_declarationsFunctional_property_declarationState_declaration() { id = "state_0", name = "Low", description = "Low", }); lstState.Add(new ParserSignal.functional_properties_declarationsFunctional_property_declarationState_declaration() { id = "state_1", name = "High", description = "High", }); propertyDec.state_declaration = lstState.ToArray(); List <ParserSignal.functional_properties_declarationsFunctional_property_declaration> lstFuncProperty = new List <ParserSignal.functional_properties_declarationsFunctional_property_declaration>(); List <ParserSignal.pinsPin> lstPins = new List <ParserSignal.pinsPin>(); bool haveInit = false; foreach (var item in sc.functional_properties_declarations) { lstFuncProperty.Add(item); if (item.id.Contains("InitValue")) { haveInit = true; } } if (!haveInit) { lstFuncProperty.Add(propertyDec); } sc.functional_properties_declarations = lstFuncProperty.ToArray(); foreach (var item in sc.pins) { if (!item.name.Contains("PT")) { lstPins.Add(item); continue; } List <ParserSignal.pinsPinFunctional_property> lstPinsFunc = new List <ParserSignal.pinsPinFunctional_property>(); haveInit = false; foreach (var item2 in item.functional_properties) { lstPinsFunc.Add(item2); if (item2.id.Contains("InitValue")) { haveInit = true; } } if (!haveInit) { // list functional property ParserSignal.pinsPinFunctional_property pinFunc = new ParserSignal.pinsPinFunctional_property(); List <ParserSignal.pinsPinFunctional_propertyState> lstPinsFuncState = new List <ParserSignal.pinsPinFunctional_propertyState>(); lstPinsFuncState.Add(new ParserSignal.pinsPinFunctional_propertyState() { id = "state_0", configuration = new ParserSignal.pinsPinFunctional_propertyStateConfiguration() { assign = new ParserSignal.pinsPinFunctional_propertyStateConfigurationAssign() { register = string.Format("PORT{0}_PCR{1}", item.name.Substring(2, 1), item.name.Substring(3)), bit_field_value = "0", //configuration_step = string.Format("init_PORT{0}", item.name.Substring(2, 1)) } } }); lstPinsFuncState.Add(new ParserSignal.pinsPinFunctional_propertyState() { id = "state_1", configuration = new ParserSignal.pinsPinFunctional_propertyStateConfiguration() { assign = new ParserSignal.pinsPinFunctional_propertyStateConfigurationAssign() { register = string.Format("PORT{0}_PCR{1}", item.name.Substring(2, 1), item.name.Substring(3)), bit_field_value = "0x1", //configuration_step = string.Format("init_PORT{0}", item.name.Substring(2, 1)) } } }); pinFunc.id = "InitValue"; pinFunc.@default = "state_0"; pinFunc.state = lstPinsFuncState.ToArray(); lstPinsFunc.Add(pinFunc); } item.functional_properties = lstPinsFunc.ToArray(); lstPins.Add(item); } sc.pins = lstPins.ToArray(); SerialModuleSignal(sc, fileOut.Signal); }