Exemple #1
0
        protected AlignmentCoordinator.SampleWindow GetSampleWindow(ArrayMapping arrayMapping, out MeasurementKey[] keys)
        {
            IEnumerable <FieldMapping> signalMappings = MappingCompiler.TraverseSignalMappings(arrayMapping);

            keys = signalMappings.SelectMany(mapping => SignalLookup.GetMeasurementKeys(mapping.Expression)).ToArray();
            return(CreateSampleWindow(arrayMapping));
        }
Exemple #2
0
        private void BuildTimeWindowKeys(TypeMapping inputMapping)
        {
            foreach (FieldMapping fieldMapping in inputMapping.FieldMappings)
            {
                ArrayMapping arrayMapping   = fieldMapping as ArrayMapping;
                DataType     fieldType      = fieldMapping.Field.Type;
                DataType     underlyingType = (fieldType as ArrayType)?.UnderlyingType;

                Action addTimeWindowKeys = () =>
                {
                    IEnumerable <FieldMapping> signalMappings = MappingCompiler.TraverseSignalMappings(arrayMapping);
                    MeasurementKey[]           keys           = signalMappings.SelectMany(mapping => SignalLookup.GetMeasurementKeys(mapping.Expression)).ToArray();
                    m_timeWindowKeys.Add(keys);
                };

                // ReSharper disable once PossibleNullReferenceException
                if (fieldType.IsArray && underlyingType.IsUserDefined && (arrayMapping.WindowSize != 0.0M || arrayMapping.RelativeTime != 0.0M))
                {
                    addTimeWindowKeys();
                }
                else if (fieldType.IsArray && underlyingType.IsUserDefined)
                {
                    m_mappingCompiler.EnumerateTypeMappings(fieldMapping.Expression).ToList().ForEach(BuildTimeWindowKeys);
                }
                else if (fieldType.IsUserDefined)
                {
                    BuildTimeWindowKeys(m_mappingCompiler.GetTypeMapping(fieldMapping.Expression));
                }
            }
        }
Exemple #3
0
        protected Ticks GetRelativeFrameTime(FieldMapping fieldMapping)
        {
            IEnumerable <FieldMapping> signalMappings = m_mappingCompiler.TraverseSignalMappings(fieldMapping);

            MeasurementKey[] keys = signalMappings.SelectMany(mapping => SignalLookup.GetMeasurementKeys(mapping.Expression)).ToArray();
            AlignmentCoordinator.SampleWindow sampleWindow = CreateSampleWindow(fieldMapping);
            return(sampleWindow.GetTimestamps(CurrentFrameTime).FirstOrDefault());
        }
Exemple #4
0
        protected IDictionary <MeasurementKey, IMeasurement> GetRelativeFrame(FieldMapping fieldMapping)
        {
            IEnumerable <FieldMapping> signalMappings = MappingCompiler.TraverseSignalMappings(fieldMapping);

            MeasurementKey[] keys = signalMappings.SelectMany(mapping => SignalLookup.GetMeasurementKeys(mapping.Expression)).ToArray();
            AlignmentCoordinator.SampleWindow sampleWindow = CreateSampleWindow(fieldMapping);
            return(AlignmentCoordinator.GetFrame(keys, CurrentFrameTime, sampleWindow));
        }