示例#1
0
        /// <summary>
        /// Create the test log columns
        /// </summary>
        public virtual void Initialize()
        {
            Conversion units  = Conversion.GetInstance("units", "x", "0");
            Conversion cubits = Conversion.GetInstance("cubits", "x/2", "0.0");
            Conversion torks  = Conversion.GetInstance("torks", "x * 2", "0.00");

            Conversion[] conversions = new Conversion[] { units, cubits, torks };
            SsmParameter p1          = new SsmParameter(null, "P1", "Parameter1", 1, 1, conversions);
            SsmParameter p2          = new SsmParameter(null, "P2", "Parameter2", 2, 2, conversions);
            SsmParameter p3          = new SsmParameter(null, "P3", "Parameter3", 3, 3, conversions);

            List <LogColumn> columns = new List <LogColumn>();

            columns.Add(LogColumn.GetInstance(p1, units, null, false));
            columns.Add(LogColumn.GetInstance(p2, cubits, null, false));
            columns.Add(LogColumn.GetInstance(p3, torks, null, false));
            this.readOnlyColumns = new ReadOnlyCollection <LogColumn>(columns);
            foreach (LogColumn column in columns)
            {
                double unused;
                string value;
                column.Conversion.Convert(0, out value, out unused);
                column.ValueAsString = value;
            }
        }
示例#2
0
 private static bool TryGetParameter(IList <Parameter> actualList, string id, out SsmParameter actual)
 {
     foreach (SsmParameter candidate in actualList)
     {
         if (candidate.Id == id)
         {
             actual = candidate;
             return(true);
         }
     }
     actual = null;
     return(false);
 }
示例#3
0
        private static void CompareLists(IList <Parameter> expectedList, IList <Parameter> actualList)
        {
            foreach (SsmParameter expected in expectedList)
            {
                SsmParameter actual = null;
                if (!SsmParameterSourceTest.TryGetParameter(actualList, expected.Id, out actual))
                {
                    throw new Exception("Actual list does not contain " + expected.Name + " (" + expected.Id + ")");
                }

                Assert.AreEqual(expected.Conversions.Count, actual.Conversions.Count, "Conversions.Count");
                for (int i = 0; i < actual.Conversions.Count; i++)
                {
                    Assert.AreEqual(
                        expected.Conversions[i].Units,
                        actual.Conversions[i].Units,
                        "Conversions[i].Units");

                    Assert.AreEqual(
                        expected.Conversions[i].Expression,
                        actual.Conversions[i].Expression,
                        "Conversions[i].Expression");

                    Assert.AreEqual(
                        expected.Conversions[i].Format,
                        actual.Conversions[i].Format,
                        "Conversions[i].Format");
                }

                Assert.AreEqual(expected.Id, actual.Id, actual.Name + " Id");

                if (expected.IsCalculated)
                {
                    Assert.IsTrue(actual.IsCalculated, "IsCalculated");
                    Assert.IsTrue(actual.Dependencies != null, "Dependencies != null");
                    Assert.IsTrue(actual.Dependencies.Count > 0, "Dependencies.Count > 0");
                }
                else
                {
                    Assert.AreEqual(expected.Address, actual.Address, actual.Name + " Address");
                    Assert.IsTrue(actual.Dependencies == null, "Dependencies == null");
                }

                Assert.AreEqual(expected.EcuCapabilityByteIndex, actual.EcuCapabilityByteIndex, actual.Name + " EcuCapabilityByteIndex");
                Assert.AreEqual(expected.EcuCapabilityBitIndex, actual.EcuCapabilityBitIndex, actual.Name + " EcuCapabilityBitIndex");
            }

            // TODO: ensure no extra parameters
        }
示例#4
0
        public void DatabaseGetCalculatedParameters_XmlReader()
        {
            Assert.Inconclusive("Not implemented.");
            SsmParameterSource source = SsmParameterSource.GetInstance(Environment.CurrentDirectory, EcuIdentifier, CompatibilityMap);

            using (Stream inputStream = File.OpenRead("logger.xml"))
            {
#if XPath
                PathDocument document = SsmParameterSource.CreateDocument(inputStream);
                database.LoadExtendedParameters(document);
#else
                XmlReader reader = XmlReader.Create(inputStream);
                source.LoadExtendedParameters(reader);
#endif
            }

            SsmParameter engineSpeed = null;
            SsmParameter maf         = null;
            SsmParameter load        = null;
            foreach (SsmParameter parameter in source.Parameters)
            {
                if (parameter.Id == "P8")
                {
                    engineSpeed = parameter;
                }

                if (parameter.Id == "P12")
                {
                    maf = parameter;
                }

                if (parameter.Id == "P200")
                {
                    load = parameter;
                }
            }

            Assert.AreSame(engineSpeed, load.Dependencies[0], "First dependency");
            Assert.AreSame(maf, load.Dependencies[1], "Second dependency");
        }
        public void InternalLogProfileSsmAddressesOneParameter()
        {
            ParameterDatabase  database = ParameterDatabase.GetInstance();
            SsmParameterSource source   = SsmParameterSource.GetInstance(
                Environment.CurrentDirectory,
                SsmParameterSourceTest.EcuIdentifier,
                SsmParameterSourceTest.CompatibilityMap);

            database.Add(source);

            LogProfile   publicProfile = LogProfile.CreateInstance();
            SsmParameter parameter     = database.Parameters[0] as SsmParameter;

            publicProfile.Add(parameter, parameter.Conversions[0]);

            InternalLogProfile internalProfile = InternalLogProfile.GetInstance(publicProfile, database);

            Assert.AreEqual(1, internalProfile.Addresses.Count);
            Assert.AreEqual(parameter.Address, internalProfile.Addresses[0]);
            Assert.AreEqual(1, internalProfile.LogEventArgs.Row.Columns.Count);
            LogColumn column = internalProfile.LogEventArgs.Row.Columns[0];

            Assert.AreEqual(column.PropertyBag[InternalLogProfile.ColumnAddressIndex], 0);
        }