Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }