Пример #1
0
        public override void Map(IDictionary <MeasurementKey, IMeasurement> measurements)
        {
            SignalLookup.UpdateMeasurementLookup(measurements);
            TypeMapping inputMapping = MappingCompiler.GetTypeMapping(InputMapping);

            Reset();
            openLSE.Model.LSE.Input inputData = CreateLSEInput(inputMapping);
            Reset();
            openLSE.Model.LSE._InputMeta inputMeta = CreateLSE_InputMeta(inputMapping);

            Algorithm.Output algorithmOutput = Algorithm.Execute(inputData, inputMeta);
            Subscriber.SendMeasurements(m_unmapper.Unmap(algorithmOutput.OutputData, algorithmOutput.OutputMeta));
        }
Пример #2
0
        private openLSE.Model.LSE.Input CreateLSEInput(TypeMapping typeMapping)
        {
            Dictionary <string, FieldMapping> fieldLookup = typeMapping.FieldMappings.ToDictionary(mapping => mapping.Field.Identifier);

            openLSE.Model.LSE.Input obj = new openLSE.Model.LSE.Input();

            {
                // Create openLSE.Model.ECA.Digitals UDT for "Digitals" field
                FieldMapping fieldMapping  = fieldLookup["Digitals"];
                TypeMapping  nestedMapping = GetTypeMapping(fieldMapping);

                PushRelativeFrame(fieldMapping);
                obj.Digitals = CreateECADigitals(nestedMapping);
                PopRelativeFrame(fieldMapping);
            }

            {
                // Create openLSE.Model.ECA.StatusWords UDT for "StatusWords" field
                FieldMapping fieldMapping  = fieldLookup["StatusWords"];
                TypeMapping  nestedMapping = GetTypeMapping(fieldMapping);

                PushRelativeFrame(fieldMapping);
                obj.StatusWords = CreateECAStatusWords(nestedMapping);
                PopRelativeFrame(fieldMapping);
            }

            {
                // Create openLSE.Model.ECA.PhasorCollection UDT for "VoltagePhasors" field
                FieldMapping fieldMapping  = fieldLookup["VoltagePhasors"];
                TypeMapping  nestedMapping = GetTypeMapping(fieldMapping);

                PushRelativeFrame(fieldMapping);
                obj.VoltagePhasors = CreateECAPhasorCollection(nestedMapping);
                PopRelativeFrame(fieldMapping);
            }

            {
                // Create openLSE.Model.ECA.PhasorCollection UDT for "CurrentPhasors" field
                FieldMapping fieldMapping  = fieldLookup["CurrentPhasors"];
                TypeMapping  nestedMapping = GetTypeMapping(fieldMapping);

                PushRelativeFrame(fieldMapping);
                obj.CurrentPhasors = CreateECAPhasorCollection(nestedMapping);
                PopRelativeFrame(fieldMapping);
            }

            return(obj);
        }