Esempio n. 1
0
        private TVA_LSETestHarness.Model.ECA._PhasorCollectionMeta CreateECA_PhasorCollectionMeta(TypeMapping typeMapping)
        {
            Dictionary <string, FieldMapping> fieldLookup = typeMapping.FieldMappings.ToDictionary(mapping => mapping.Field.Identifier);

            TVA_LSETestHarness.Model.ECA._PhasorCollectionMeta obj = new TVA_LSETestHarness.Model.ECA._PhasorCollectionMeta();

            {
                // Create TVA_LSETestHarness.Model.ECA._PhasorMeta UDT array for "Phasors" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["Phasors"];
                PushWindowFrame(arrayMapping);

                List <TVA_LSETestHarness.Model.ECA._PhasorMeta> list = new List <TVA_LSETestHarness.Model.ECA._PhasorMeta>();
                int count = GetUDTArrayTypeMappingCount(arrayMapping);

                for (int i = 0; i < count; i++)
                {
                    TypeMapping nestedMapping = GetUDTArrayTypeMapping(arrayMapping, i);
                    list.Add(CreateECA_PhasorMeta(nestedMapping));
                }

                obj.Phasors = list.ToArray();
                PopWindowFrame(arrayMapping);
            }

            return(obj);
        }
Esempio n. 2
0
        public override void Map(IDictionary <MeasurementKey, IMeasurement> measurements)
        {
            SignalLookup.UpdateMeasurementLookup(measurements);
            TypeMapping inputMapping = MappingCompiler.GetTypeMapping(InputMapping);

            TVA_LSETestHarness.Model.ECA.PhasorCollection inputData = CreateECAPhasorCollection(inputMapping);
            KeyIndex = 0;
            TVA_LSETestHarness.Model.ECA._PhasorCollectionMeta inputMeta = CreateECA_PhasorCollectionMeta(inputMapping);

            Algorithm.Output algorithmOutput = Algorithm.Execute(inputData, inputMeta);
            Subscriber.SendMeasurements(m_unmapper.Unmap(algorithmOutput.OutputData, algorithmOutput.OutputMeta));
        }
Esempio n. 3
0
        public IEnumerable <IMeasurement> Unmap(TVA_LSETestHarness.Model.ECA.PhasorCollection outputData, TVA_LSETestHarness.Model.ECA._PhasorCollectionMeta outputMeta)
        {
            List <IMeasurement> measurements  = new List <IMeasurement>();
            TypeMapping         outputMapping = MappingCompiler.GetTypeMapping(OutputMapping);

            Reset();
            CollectFromECAPhasorCollection(measurements, outputMapping, outputData, outputMeta);

            return(measurements);
        }
Esempio n. 4
0
        private void CollectFromECAPhasorCollection(List <IMeasurement> measurements, TypeMapping typeMapping, TVA_LSETestHarness.Model.ECA.PhasorCollection data, TVA_LSETestHarness.Model.ECA._PhasorCollectionMeta meta)
        {
            Dictionary <string, FieldMapping> fieldLookup = typeMapping.FieldMappings.ToDictionary(mapping => mapping.Field.Identifier);

            {
                // Convert values from TVA_LSETestHarness.Model.ECA.Phasor UDT array for "Phasors" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["Phasors"];
                int          dataLength   = data.Phasors.Length;
                int          metaLength   = meta.Phasors.Length;

                if (dataLength != metaLength)
                {
                    throw new InvalidOperationException($"Values array length ({dataLength}) and MetaValues array length ({metaLength}) for field \"Phasors\" must be the same.");
                }

                PushWindowFrameTime(arrayMapping);

                for (int i = 0; i < dataLength; i++)
                {
                    TypeMapping nestedMapping = GetUDTArrayTypeMapping(arrayMapping, i);
                    CollectFromECAPhasor(measurements, nestedMapping, data.Phasors[i], meta.Phasors[i]);
                }

                PopWindowFrameTime(arrayMapping);
            }
        }