Exemple #1
0
        private void CollectFromLSEEstimatorOutput(List <IMeasurement> measurements, TypeMapping typeMapping, openLSE.Model.LSE.EstimatorOutput data, openLSE.Model.LSE._EstimatorOutputMeta meta)
        {
            Dictionary <string, FieldMapping> fieldLookup = typeMapping.FieldMappings.ToDictionary(mapping => mapping.Field.Identifier);

            {
                // Convert values from array in "CircuitBreakerStatuses" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CircuitBreakerStatuses"];
                int          dataLength   = data.CircuitBreakerStatuses.Length;
                int          metaLength   = meta.CircuitBreakerStatuses.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.CircuitBreakerStatuses[i], (double)data.CircuitBreakerStatuses[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "TopologyProfilingData" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["TopologyProfilingData"];
                int          dataLength   = data.TopologyProfilingData.Length;
                int          metaLength   = meta.TopologyProfilingData.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.TopologyProfilingData[i], (double)data.TopologyProfilingData[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "MeasurementValidationFlags" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["MeasurementValidationFlags"];
                int          dataLength   = data.MeasurementValidationFlags.Length;
                int          metaLength   = meta.MeasurementValidationFlags.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.MeasurementValidationFlags[i], (double)data.MeasurementValidationFlags[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "VoltageMagnitudeEstimates" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["VoltageMagnitudeEstimates"];
                int          dataLength   = data.VoltageMagnitudeEstimates.Length;
                int          metaLength   = meta.VoltageMagnitudeEstimates.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.VoltageMagnitudeEstimates[i], (double)data.VoltageMagnitudeEstimates[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "VoltageAngleEstimates" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["VoltageAngleEstimates"];
                int          dataLength   = data.VoltageAngleEstimates.Length;
                int          metaLength   = meta.VoltageAngleEstimates.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.VoltageAngleEstimates[i], (double)data.VoltageAngleEstimates[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "VoltageMagnitudeResiduals" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["VoltageMagnitudeResiduals"];
                int          dataLength   = data.VoltageMagnitudeResiduals.Length;
                int          metaLength   = meta.VoltageMagnitudeResiduals.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.VoltageMagnitudeResiduals[i], (double)data.VoltageMagnitudeResiduals[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "VoltageAngleResiduals" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["VoltageAngleResiduals"];
                int          dataLength   = data.VoltageAngleResiduals.Length;
                int          metaLength   = meta.VoltageAngleResiduals.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.VoltageAngleResiduals[i], (double)data.VoltageAngleResiduals[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "CurrentFlowMagnitudeEstimates" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CurrentFlowMagnitudeEstimates"];
                int          dataLength   = data.CurrentFlowMagnitudeEstimates.Length;
                int          metaLength   = meta.CurrentFlowMagnitudeEstimates.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.CurrentFlowMagnitudeEstimates[i], (double)data.CurrentFlowMagnitudeEstimates[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "CurrentFlowAngleEstimates" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CurrentFlowAngleEstimates"];
                int          dataLength   = data.CurrentFlowAngleEstimates.Length;
                int          metaLength   = meta.CurrentFlowAngleEstimates.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.CurrentFlowAngleEstimates[i], (double)data.CurrentFlowAngleEstimates[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "CurrentFlowMagnitudeResiduals" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CurrentFlowMagnitudeResiduals"];
                int          dataLength   = data.CurrentFlowMagnitudeResiduals.Length;
                int          metaLength   = meta.CurrentFlowMagnitudeResiduals.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.CurrentFlowMagnitudeResiduals[i], (double)data.CurrentFlowMagnitudeResiduals[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from array in "CurrentFlowAngleResiduals" field to measurements
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CurrentFlowAngleResiduals"];
                int          dataLength   = data.CurrentFlowAngleResiduals.Length;
                int          metaLength   = meta.CurrentFlowAngleResiduals.Length;

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

                for (int i = 0; i < dataLength; i++)
                {
                    IMeasurement measurement = MakeMeasurement(meta.CurrentFlowAngleResiduals[i], (double)data.CurrentFlowAngleResiduals[i]);
                    measurements.Add(measurement);
                }
            }

            {
                // Convert values from openLSE.Model.LSE.PerformanceMetrics UDT for "PerformanceMetrics" field to measurements
                FieldMapping fieldMapping  = fieldLookup["PerformanceMetrics"];
                TypeMapping  nestedMapping = GetTypeMapping(fieldMapping);
                CollectFromLSEPerformanceMetrics(measurements, nestedMapping, data.PerformanceMetrics, meta.PerformanceMetrics);
            }
        }
Exemple #2
0
        public IEnumerable <IMeasurement> Unmap(openLSE.Model.LSE.EstimatorOutput outputData, openLSE.Model.LSE._EstimatorOutputMeta outputMeta)
        {
            List <IMeasurement> measurements  = new List <IMeasurement>();
            TypeMapping         outputMapping = MappingCompiler.GetTypeMapping(OutputMapping);

            CollectFromLSEEstimatorOutput(measurements, outputMapping, outputData, outputMeta);

            return(measurements);
        }
Exemple #3
0
        private openLSE.Model.LSE._EstimatorOutputMeta FillLSE_EstimatorOutputMeta(TypeMapping typeMapping)
        {
            Dictionary <string, FieldMapping> fieldLookup = typeMapping.FieldMappings.ToDictionary(mapping => mapping.Field.Identifier);

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

            {
                // Initialize array for "CircuitBreakerStatuses" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CircuitBreakerStatuses"];
                obj.CircuitBreakerStatuses = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "TopologyProfilingData" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["TopologyProfilingData"];
                obj.TopologyProfilingData = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "MeasurementValidationFlags" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["MeasurementValidationFlags"];
                obj.MeasurementValidationFlags = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "VoltageMagnitudeEstimates" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["VoltageMagnitudeEstimates"];
                obj.VoltageMagnitudeEstimates = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "VoltageAngleEstimates" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["VoltageAngleEstimates"];
                obj.VoltageAngleEstimates = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "VoltageMagnitudeResiduals" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["VoltageMagnitudeResiduals"];
                obj.VoltageMagnitudeResiduals = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "VoltageAngleResiduals" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["VoltageAngleResiduals"];
                obj.VoltageAngleResiduals = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "CurrentFlowMagnitudeEstimates" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CurrentFlowMagnitudeEstimates"];
                obj.CurrentFlowMagnitudeEstimates = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "CurrentFlowAngleEstimates" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CurrentFlowAngleEstimates"];
                obj.CurrentFlowAngleEstimates = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "CurrentFlowMagnitudeResiduals" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CurrentFlowMagnitudeResiduals"];
                obj.CurrentFlowMagnitudeResiduals = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize array for "CurrentFlowAngleResiduals" field
                ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["CurrentFlowAngleResiduals"];
                obj.CurrentFlowAngleResiduals = CreateMetaValues(arrayMapping).ToArray();
            }

            {
                // Initialize openLSE.Model.LSE._PerformanceMetricsMeta UDT for "PerformanceMetrics" field
                FieldMapping fieldMapping  = fieldLookup["PerformanceMetrics"];
                TypeMapping  nestedMapping = GetTypeMapping(fieldMapping);

                PushRelativeFrameTime(fieldMapping);
                obj.PerformanceMetrics = this.FillLSE_PerformanceMetricsMeta(nestedMapping);
                PopRelativeFrameTime(fieldMapping);
            }

            return(obj);
        }