private MeteredValue GetSummaryMeteredValue(ISODataLogValue dlv) { if (dlv.ProcessDataDDI == null) { return(null); } int ddi = dlv.ProcessDataDDI.AsInt32DDI(); int dataValue = 0; if (dlv.ProcessDataValue.HasValue) { dataValue = dlv.ProcessDataValue.Value; } var unitOfMeasure = RepresentationMapper.GetUnitForDdi(ddi); if (!DDIs.ContainsKey(ddi) || unitOfMeasure == null) { return(null); } DdiDefinition ddiDefintion = DDIs[ddi]; return(new MeteredValue { Value = new NumericRepresentationValue(RepresentationMapper.Map(ddi) as NumericRepresentation, unitOfMeasure, new NumericValue(unitOfMeasure, dataValue * ddiDefintion.Resolution)) }); }
private List <ISOTime> ExportSummary(Summary summary) { List <ISOTime> times = new List <ISOTime>(); foreach (StampedMeteredValues values in summary.SummaryData) { ISOTime time = new ISOTime(); time.Start = values.Stamp.TimeStamp1; time.Stop = values.Stamp.TimeStamp2; if (values.Stamp.Duration.HasValue) { time.Duration = (uint)values.Stamp.Duration.Value.TotalSeconds; } time.Type = values.Stamp.DateContext == DateContextEnum.ProposedStart ? ISOEnumerations.ISOTimeType.Planned : ISOEnumerations.ISOTimeType.Effective; foreach (MeteredValue value in values.Values) { if (value.Value != null && value.Value is NumericRepresentationValue) { NumericRepresentationValue numericValue = value.Value as NumericRepresentationValue; ISODataLogValue dlv = new ISODataLogValue(); int?ddi = RepresentationMapper.Map(numericValue.Representation); if (ddi.HasValue) { dlv.ProcessDataDDI = ddi.Value.AsHexDDI(); DdiDefinition DdiDefinition = DDIs[ddi.Value]; dlv.ProcessDataValue = (int)(numericValue.Value.Value / (DdiDefinition.Resolution != 0 ? DdiDefinition.Resolution : 1d)); } else { if (numericValue.Representation.CodeSource == RepresentationCodeSourceEnum.ISO11783_DDI) { dlv.ProcessDataDDI = numericValue.Representation.Code; dlv.ProcessDataValue = (int)numericValue.Value.Value; } } if (value.DeviceConfigurationId.HasValue) { DeviceElementConfiguration config = DataModel.Catalog.DeviceElementConfigurations.FirstOrDefault(c => c.Id.ReferenceId == value.DeviceConfigurationId.Value); if (config != null) { dlv.DeviceElementIdRef = TaskDataMapper.InstanceIDMap.GetISOID(config.DeviceElementId); } } time.DataLogValues.Add(dlv); } } times.Add(time); } return(times); }
private MeteredValue GetSummaryMeteredValue(ISODataLogValue dlv) { if (dlv.ProcessDataDDI == null) { return(null); } int ddi = dlv.ProcessDataDDI.AsInt32DDI(); int dataValue = 0; if (dlv.ProcessDataValue.HasValue) { dataValue = dlv.ProcessDataValue.Value; } var unitOfMeasure = RepresentationMapper.GetUnitForDdi(ddi); if (!DDIs.ContainsKey(ddi) || unitOfMeasure == null) { return(null); } DdiDefinition ddiDefintion = DDIs[ddi]; int?deviceConfigurationID = null; int?deviceElementID = TaskDataMapper.InstanceIDMap.GetADAPTID(dlv.DeviceElementIdRef); if (deviceElementID.HasValue) { //Since Device creation is on-demand, we need to call GetDeviceElementConfiguration here to ensure the relevant device is created if it hasn't been yet. var hierarchy = TaskDataMapper?.DeviceElementHierarchies?.GetRelevantHierarchy(dlv.DeviceElementIdRef); var adaptDeviceElement = DataModel?.Catalog?.DeviceElements?.FirstOrDefault(d => d?.Id?.ReferenceId == deviceElementID.Value); if (hierarchy != null && adaptDeviceElement != null) { DeviceElementConfiguration config = DeviceElementMapper.GetDeviceElementConfiguration(adaptDeviceElement, hierarchy, DataModel.Catalog); if (config != null) { deviceConfigurationID = config.Id.ReferenceId; } } } return(new MeteredValue { Value = new NumericRepresentationValue(RepresentationMapper.Map(ddi) as NumericRepresentation, unitOfMeasure, new NumericValue(unitOfMeasure, dataValue * ddiDefintion.Resolution)), DeviceConfigurationId = deviceConfigurationID }); }
private MeteredValue GetSummaryMeteredValue(ISODataLogValue dlv) { if (dlv.ProcessDataDDI == null) { return(null); } int ddi = dlv.ProcessDataDDI.AsInt32DDI(); int dataValue = 0; if (dlv.ProcessDataValue.HasValue) { dataValue = dlv.ProcessDataValue.Value; } var unitOfMeasure = RepresentationMapper.GetUnitForDdi(ddi); if (!DDIs.ContainsKey(ddi) || unitOfMeasure == null) { return(null); } DdiDefinition ddiDefintion = DDIs[ddi]; int?deviceConfigurationID = null; int?deviceElementID = TaskDataMapper.InstanceIDMap.GetADAPTID(dlv.DeviceElementIdRef); if (deviceElementID.HasValue) { DeviceElementConfiguration config = DataModel.Catalog.DeviceElementConfigurations.FirstOrDefault(c => c.DeviceElementId == deviceElementID.Value); if (config != null) { deviceConfigurationID = config.Id.ReferenceId; } } return(new MeteredValue { Value = new NumericRepresentationValue(RepresentationMapper.Map(ddi) as NumericRepresentation, unitOfMeasure, new NumericValue(unitOfMeasure, dataValue * ddiDefintion.Resolution)), DeviceConfigurationId = deviceConfigurationID }); }