diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/i18n/I18nProviderImpl.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/i18n/I18nProviderImpl.java index 1839bd79c89..e767b266f8d 100644 --- a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/i18n/I18nProviderImpl.java +++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/i18n/I18nProviderImpl.java @@ -73,6 +73,7 @@ import org.openhab.core.library.dimension.Density; import org.openhab.core.library.dimension.ElectricConductivity; import org.openhab.core.library.dimension.Intensity; +import org.openhab.core.library.dimension.RadiationSpecificActivity; import org.openhab.core.library.dimension.VolumetricFlowRate; import org.openhab.core.library.types.PointType; import org.openhab.core.library.unit.ImperialUnits; @@ -416,6 +417,7 @@ public static Map>, Map { +} diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/Units.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/Units.java index 6d1800bca47..ce910fe11a7 100644 --- a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/Units.java +++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/Units.java @@ -55,6 +55,7 @@ import org.openhab.core.library.dimension.Density; import org.openhab.core.library.dimension.ElectricConductivity; import org.openhab.core.library.dimension.Intensity; +import org.openhab.core.library.dimension.RadiationSpecificActivity; import org.openhab.core.library.dimension.VolumetricFlowRate; import si.uom.NonSI; @@ -160,8 +161,14 @@ public final class Units extends CustomUnits { MultiplyConverter.ofRational(BigInteger.valueOf(100000), BigInteger.ONE))); public static final Unit MILLIBAR = addUnit(MetricPrefix.MILLI(BAR)); public static final Unit BECQUEREL = addUnit(tech.units.indriya.unit.Units.BECQUEREL); - public static final Unit BECQUEREL_PER_CUBIC_METRE = addUnit(new ProductUnit<>( + public static final Unit CURIE = addUnit(NonSI.CURIE); + public static final Unit MILLI_CURIE = addUnit(MetricPrefix.MILLI(CURIE)); + public static final Unit MICRO_CURIE = addUnit(MetricPrefix.MICRO(CURIE)); + public static final Unit NANO_CURIE = addUnit(MetricPrefix.NANO(CURIE)); + public static final Unit PICO_CURIE = addUnit(MetricPrefix.PICO(CURIE)); + public static final Unit BECQUEREL_PER_CUBIC_METRE = addUnit(new ProductUnit<>( tech.units.indriya.unit.Units.BECQUEREL.divide(tech.units.indriya.unit.Units.CUBIC_METRE))); + public static final Unit GRAY = addUnit(tech.units.indriya.unit.Units.GRAY); public static final Unit SIEVERT = addUnit(tech.units.indriya.unit.Units.SIEVERT); public static final Unit MILLIMETRE_PER_HOUR = addUnit( @@ -234,6 +241,11 @@ public final class Units extends CustomUnits { SimpleUnitFormat.getInstance().label(BIT_PER_SECOND, "bit/s"); SimpleUnitFormat.getInstance().label(BYTE, "B"); SimpleUnitFormat.getInstance().alias(BYTE, "o"); + SimpleUnitFormat.getInstance().label(CURIE, "Ci"); + SimpleUnitFormat.getInstance().label(MILLI_CURIE, "mCi"); + SimpleUnitFormat.getInstance().label(MICRO_CURIE, "µCi"); + SimpleUnitFormat.getInstance().label(NANO_CURIE, "nCi"); + SimpleUnitFormat.getInstance().label(PICO_CURIE, "pCi"); SimpleUnitFormat.getInstance().label(CUBICMETRE_PER_DAY, "m³/d"); SimpleUnitFormat.getInstance().label(CUBICMETRE_PER_HOUR, "m³/h"); SimpleUnitFormat.getInstance().label(CUBICMETRE_PER_MINUTE, "m³/min"); diff --git a/bundles/org.openhab.core/src/test/java/org/openhab/core/library/unit/UnitsTest.java b/bundles/org.openhab.core/src/test/java/org/openhab/core/library/unit/UnitsTest.java index 8e6bae95a9d..68bdd23b414 100644 --- a/bundles/org.openhab.core/src/test/java/org/openhab/core/library/unit/UnitsTest.java +++ b/bundles/org.openhab.core/src/test/java/org/openhab/core/library/unit/UnitsTest.java @@ -387,6 +387,13 @@ public void testConductivity() { assertThat(converted.toString(), anyOf(is("10000 \u00B5S/cm"), is("10000 \u03BCS/cm"))); } + @Test + public void testSpecificActivity() { + QuantityType radon = QuantityType.valueOf("37 kBq/m³"); + QuantityType converted = radon.toUnit("nCi/l"); + assertThat(converted.doubleValue(), is(closeTo(1.00, DEFAULT_ERROR))); + } + @Test public void testRpm() { QuantityType oneHertz = QuantityType.valueOf("60 rpm");