Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs =================================================================== diff -u -r1566 -r1620 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1566) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1620) @@ -24,6 +24,7 @@ using System.IO; using System.Linq; using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.General.Sensors; using Deltares.DamEngine.Data.General.TimeSeries; using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Interface.Properties; @@ -87,9 +88,75 @@ input.OperationalInputTimeSeries = new Io.XmlInput.TimeSerie[dike.InputTimeSerieCollection.Series.Count]; TransferInputTimeSeries(dike.InputTimeSerieCollection, input.OperationalInputTimeSeries); } + if (damProjectData.SensorData != null) + { + input.SensorData = new InputSensorData(); + TransferSensorData(damProjectData.SensorData, input.SensorData); + } return input; } + private static void TransferSensorData(SensorData sensorData, InputSensorData inputSensorData) + { + // Transfer sensorgroups + int sensorGroupIndex = 0; + inputSensorData.SensorGroups = new Io.XmlInput.SensorGroup[sensorData.SensorGroups.Count]; + foreach (var sensorGroup in sensorData.SensorGroups) + { + var inputSensorGroup = new Io.XmlInput.SensorGroup(); + inputSensorGroup.SensorIds = new SensorGroupSensorIds[sensorGroup.SensorCount]; + inputSensorGroup.Id = sensorGroup.ID; + int sensorIdIndex = 0; + foreach (var sensor in sensorGroup.SensorArray) + { + inputSensorGroup.SensorIds[sensorIdIndex] = new SensorGroupSensorIds() {SensorId = sensor.ID}; + sensorIdIndex++; + } + inputSensorData.SensorGroups[sensorGroupIndex] = inputSensorGroup; + sensorGroupIndex++; + } + + // Transfer sensorlocations + int senserLocationIndex = 0; + inputSensorData.SensorLocations = new Io.XmlInput.SensorLocation[sensorData.SensorLocations.Count]; + foreach (var sensorLocation in sensorData.SensorLocations) + { + var inputSensorLocation = new Io.XmlInput.SensorLocation(); + inputSensorLocation.GroupId = sensorLocation.GroupID; + inputSensorLocation.LocationId = sensorLocation.LocationName; + inputSensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder); + inputSensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder); + inputSensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtRiver = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtRiver); + inputSensorLocation.SourceTypePl1PlLineOffsetBelowShoulderBaseInside = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl1PlLineOffsetBelowShoulderBaseInside); + inputSensorLocation.SourceTypePl1WaterLevelAtRiver = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl1WaterLevelAtRiver); + inputSensorLocation.SourceTypePl1WaterLevelAtPolder = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl1WaterLevelAtPolder); + inputSensorLocation.SourceTypePl3 = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl3); + inputSensorLocation.SourceTypePl4 = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl4); + inputSensorData.SensorLocations[senserLocationIndex] = inputSensorLocation; + senserLocationIndex++; + } + + // Transfer sensors + inputSensorData.Sensors = new Io.XmlInput.Sensor[sensorData.Sensors.Count]; + int sensorIndex = 0; + foreach (var sensor in sensorData.Sensors) + { + var inputSensor = new Io.XmlInput.Sensor(); + inputSensor.Id = sensor.ID; + inputSensor.RelativeLocation = sensor.RelativeLocation; + inputSensor.SensorType = ConversionHelper.ConvertToInputSensorType(sensor.SensorType); + inputSensor.PlLineMapping = new SensorPlLineMapping[sensor.PlLineMappings.Length]; + int mappingIndex = 0; + foreach (var plLineMapping in sensor.PlLineMappings) + { + inputSensor.PlLineMapping[mappingIndex] = new SensorPlLineMapping() { PLineType = ConversionHelper.ConvertToInputPlLineType(plLineMapping)}; + mappingIndex++; + } + inputSensorData.Sensors[sensorIndex] = inputSensor; + sensorIndex++; + } + } + private static void TransferInputTimeSeries(TimeSerieCollection inputTimeSerieCollection, Io.XmlInput.TimeSerie[] operationalInputTimeSeries) { int timeSerieIndex = 0;