private LseTestHarness.Model.ECA.PhasorCollection CreateECAPhasorCollection(TypeMapping typeMapping) { Dictionary <string, FieldMapping> fieldLookup = typeMapping.FieldMappings.ToDictionary(mapping => mapping.Field.Identifier); LseTestHarness.Model.ECA.PhasorCollection obj = new LseTestHarness.Model.ECA.PhasorCollection(); { // Create LseTestHarness.Model.ECA.Phasor UDT array for "Phasors" field PushCurrentFrame(); ArrayMapping arrayMapping = (ArrayMapping)fieldLookup["Phasors"]; List <LseTestHarness.Model.ECA.Phasor> list = new List <LseTestHarness.Model.ECA.Phasor>(); int count = GetUDTArrayTypeMappingCount(arrayMapping); for (int i = 0; i < count; i++) { TypeMapping nestedMapping = GetUDTArrayTypeMapping(arrayMapping, i); list.Add(CreateECAPhasor(nestedMapping)); } obj.Phasors = list.ToArray(); PopCurrentFrame(); } return(obj); }
public override void Map(IDictionary <MeasurementKey, IMeasurement> measurements) { SignalLookup.UpdateMeasurementLookup(measurements); TypeMapping inputMapping = MappingCompiler.GetTypeMapping(InputMapping); LseTestHarness.Model.ECA.PhasorCollection inputData = CreateECAPhasorCollection(inputMapping); KeyIndex = 0; LseTestHarness.Model.ECA._PhasorCollectionMeta inputMeta = CreateECA_PhasorCollectionMeta(inputMapping); MainWindow.WriteMessage("Executing.."); Algorithm.Output algorithmOutput = Algorithm.Execute(inputData, inputMeta); // TODO: Later versions will publish output to the openECA server }