@@ -24,25 +24,28 @@ import java.time.Instant
2424/* *
2525 * Extension method that allows to convert a map of [TimeSeriesDataType] -> [TimeSeriesRoomEnvironmentalData]
2626 * to domain [RoomEnvironmentalData].
27+ * It is possible to provide some [startData] to initialize missed values.
2728 * @return the resulting [RoomEnvironmentalData].
2829 */
29- fun Map <TimeSeriesDataType , TimeSeriesRoomEnvironmentalData ?>.toRoomEnvironmentalData () =
30- RoomEnvironmentalData (
31- temperature = this [TimeSeriesDataType .TEMPERATURE ]?.let {
32- Temperature (
33- it.value,
34- it.metadata.unit?.let { unit -> TemperatureUnit .valueOf(unit) } ? : TemperatureUnit .CELSIUS
35- )
36- },
37- humidity = this [TimeSeriesDataType .HUMIDITY ]?.let { Humidity (it.value) },
38- luminosity = this [TimeSeriesDataType .LUMINOSITY ]?.let {
39- Luminosity (
40- it.value,
41- it.metadata.unit?.let { unit -> LightUnit .valueOf(unit) } ? : LightUnit .LUX
42- )
43- },
44- presence = this [TimeSeriesDataType .PRESENCE ]?.let { Presence (it.value > 0 ) }
45- )
30+ fun Map <TimeSeriesDataType , TimeSeriesRoomEnvironmentalData ?>.toRoomEnvironmentalData (
31+ startData : RoomEnvironmentalData ? = null
32+ ) = RoomEnvironmentalData (
33+ temperature = this [TimeSeriesDataType .TEMPERATURE ]?.let {
34+ Temperature (
35+ it.value,
36+ it.metadata.unit?.let { unit -> TemperatureUnit .valueOf(unit) } ? : TemperatureUnit .CELSIUS
37+ )
38+ } ? : startData?.temperature,
39+ humidity = this [TimeSeriesDataType .HUMIDITY ]?.let { Humidity (it.value) } ? : startData?.humidity,
40+ luminosity = this [TimeSeriesDataType .LUMINOSITY ]?.let {
41+ Luminosity (
42+ it.value,
43+ it.metadata.unit?.let { unit -> LightUnit .valueOf(unit) } ? : LightUnit .LUX
44+ )
45+ } ? : startData?.luminosity,
46+ presence = this [TimeSeriesDataType .PRESENCE ]?.let { Presence (it.value > 0 ) }
47+ ? : startData?.presence
48+ )
4649
4750/* *
4851 * Extension method that allows to convert [RoomEnvironmentalData] in a map of [TimeSeriesRoomEnvironmentalData].
0 commit comments