public TheSensorMeta(TheSensorMeta sensorMeta) { SourceType = sensorMeta.SourceType; Units = sensorMeta.Units; SourceUnits = sensorMeta.SourceUnits; RangeMin = sensorMeta.RangeMin; RangeMax = sensorMeta.RangeMax; Description = sensorMeta.Description; FriendlyName = sensorMeta.FriendlyName; SemanticTypes = sensorMeta.SemanticTypes; if (sensorMeta.ExtensionData != null) { ExtensionData = new Dictionary <string, object>(sensorMeta.ExtensionData); } }
public TheSensorMeta GetSensorMeta() { var sensorMetaProp = this.GetProperty(strSensor); var rangeMinProp = sensorMetaProp?.GetProperty(nameof(TheSensorMeta.RangeMin)); var rangeMaxProp = sensorMetaProp?.GetProperty(nameof(TheSensorMeta.RangeMax)); var sensorMeta = new TheSensorMeta { SourceType = TheCommonUtils.CStrNullable(sensorMetaProp?.GetProperty(nameof(TheSensorMeta.SourceType))), Units = TheCommonUtils.CStrNullable(sensorMetaProp?.GetProperty(nameof(TheSensorMeta.Units))), SourceUnits = TheCommonUtils.CStrNullable(sensorMetaProp?.GetProperty(nameof(TheSensorMeta.SourceUnits))), RangeMin = rangeMinProp != null ? (double?)TheCommonUtils.CDbl(rangeMinProp) : null, RangeMax = rangeMaxProp != null ? (double?)TheCommonUtils.CDbl(rangeMaxProp) : null, Description = TheCommonUtils.CStrNullable(sensorMetaProp?.GetProperty(nameof(TheSensorMeta.Description))), FriendlyName = TheCommonUtils.CStrNullable(sensorMetaProp?.GetProperty(nameof(TheSensorMeta.FriendlyName))), SemanticTypes = TheCommonUtils.CStrNullable(sensorMetaProp?.GetProperty(nameof(TheSensorMeta.SemanticTypes))), ExtensionData = ReadDictionaryFromProperties(sensorMetaProp, TheSensorMeta.KnownProperties), }; return(sensorMeta); }
public void SetSensorMeta(TheSensorMeta value) { var sensorMetaProp = this.GetProperty(strSensor, true); if (!string.IsNullOrEmpty(value.SourceType)) { sensorMetaProp.SetProperty(nameof(TheSensorMeta.SourceType), value.SourceType, ePropertyTypes.TString); } else { sensorMetaProp.RemoveProperty(nameof(TheSensorMeta.SourceType)); } if (!string.IsNullOrEmpty(value.Units)) { sensorMetaProp.SetProperty(nameof(TheSensorMeta.Units), value.Units, ePropertyTypes.TString); } else { sensorMetaProp.RemovePropertiesStartingWith(nameof(TheSensorMeta.Units)); } if (!string.IsNullOrEmpty(value.SourceUnits)) { sensorMetaProp.SetProperty(nameof(TheSensorMeta.SourceUnits), value.SourceUnits, ePropertyTypes.TString); } else { sensorMetaProp.RemoveProperty(nameof(TheSensorMeta.SourceUnits)); } if (value.RangeMin.HasValue) { sensorMetaProp.SetProperty(nameof(TheSensorMeta.RangeMin), value.RangeMin, ePropertyTypes.TNumber); } else { sensorMetaProp.RemoveProperty(nameof(TheSensorMeta.RangeMin)); } if (value.RangeMin.HasValue) { sensorMetaProp.SetProperty(nameof(TheSensorMeta.RangeMax), value.RangeMax, ePropertyTypes.TNumber); } else { sensorMetaProp.RemoveProperty(nameof(TheSensorMeta.RangeMax)); } if (!string.IsNullOrEmpty(value.Description)) { sensorMetaProp.SetProperty(nameof(TheSensorMeta.Description), value.Description, ePropertyTypes.TString); } else { sensorMetaProp.RemoveProperty(nameof(TheSensorMeta.Description)); } if (!string.IsNullOrEmpty(value.FriendlyName)) { sensorMetaProp.SetProperty(nameof(TheSensorMeta.FriendlyName), value.FriendlyName, ePropertyTypes.TString); } else { sensorMetaProp.RemoveProperty(nameof(TheSensorMeta.FriendlyName)); } if (!string.IsNullOrEmpty(value.SemanticTypes)) { sensorMetaProp.SetProperty(nameof(TheSensorMeta.SemanticTypes), value.SemanticTypes, ePropertyTypes.TString); } else { sensorMetaProp.RemoveProperty(nameof(TheSensorMeta.SemanticTypes)); } if (value.ExtensionData != null) { sensorMetaProp.SetProperties(value.ExtensionData, DateTimeOffset.MinValue); } var ownerThing = this.OwnerThing.GetBaseThing(); if (ownerThing != null) { if (!ownerThing.Capabilities.Contains(eThingCaps.SensorContainer)) { ownerThing.AddCapability(eThingCaps.SensorContainer); } } }