kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
Merge ac792e3005
into ee03213a3a
commit
498510080a
|
@ -160,6 +160,8 @@ data class EnvironmentMetrics(
|
|||
val time: Int = currentTime(), // default to current time in secs (NOT MILLISECONDS!)
|
||||
val temperature: Float,
|
||||
val relativeHumidity: Float,
|
||||
val soilTemperature: Float,
|
||||
val soilMoisture: Int,
|
||||
val barometricPressure: Float,
|
||||
val gasResistance: Float,
|
||||
val voltage: Float,
|
||||
|
|
|
@ -212,6 +212,8 @@ data class NodeEntity(
|
|||
time = environmentTelemetry.time,
|
||||
temperature = environmentMetrics.temperature,
|
||||
relativeHumidity = environmentMetrics.relativeHumidity,
|
||||
soilTemperature = environmentMetrics.soilTemperature,
|
||||
soilMoisture = environmentMetrics.soilMoisture,
|
||||
barometricPressure = environmentMetrics.barometricPressure,
|
||||
gasResistance = environmentMetrics.gasResistance,
|
||||
voltage = environmentMetrics.voltage,
|
||||
|
|
|
@ -33,6 +33,16 @@ enum class Environment(val color: Color) {
|
|||
return telemetry.environmentMetrics.relativeHumidity
|
||||
}
|
||||
},
|
||||
SOIL_TEMPERATURE(Color.Red) {
|
||||
override fun getValue(telemetry: Telemetry): Float {
|
||||
return telemetry.environmentMetrics.soilTemperature
|
||||
}
|
||||
},
|
||||
SOIL_MOISTURE(InfantryBlue) {
|
||||
override fun getValue(telemetry: Telemetry): Float {
|
||||
return telemetry.environmentMetrics.soilMoisture.toFloat()
|
||||
}
|
||||
},
|
||||
IAQ(Color.Green) {
|
||||
override fun getValue(telemetry: Telemetry): Float {
|
||||
return telemetry.environmentMetrics.iaq.toFloat()
|
||||
|
@ -107,6 +117,27 @@ data class EnvironmentMetricsState(
|
|||
shouldPlot[Environment.HUMIDITY.ordinal] = true
|
||||
}
|
||||
|
||||
val (minSoilTemp, maxSoilTemp) = Pair(
|
||||
telemetries.minBy { it.environmentMetrics.soilTemperature },
|
||||
telemetries.maxBy { it.environmentMetrics.soilTemperature }
|
||||
)
|
||||
if (minSoilTemp.environmentMetrics.soilTemperature != 0f || maxSoilTemp.environmentMetrics.soilTemperature != 0f) {
|
||||
minValues.add(minTemp.environmentMetrics.soilTemperature)
|
||||
maxValues.add(maxTemp.environmentMetrics.soilTemperature)
|
||||
shouldPlot[Environment.SOIL_TEMPERATURE.ordinal] = true
|
||||
}
|
||||
|
||||
val (minSoilMoisture, maxSoilMoisture) = Pair(
|
||||
telemetries.minBy { it.environmentMetrics.soilMoisture },
|
||||
telemetries.maxBy { it.environmentMetrics.soilMoisture }
|
||||
)
|
||||
if (minSoilMoisture.environmentMetrics.soilMoisture != 0 ||
|
||||
maxSoilMoisture.environmentMetrics.soilMoisture != 0) {
|
||||
minValues.add(minHumidity.environmentMetrics.soilMoisture.toFloat())
|
||||
maxValues.add(maxHumidity.environmentMetrics.soilMoisture.toFloat())
|
||||
shouldPlot[Environment.SOIL_MOISTURE.ordinal] = true
|
||||
}
|
||||
|
||||
val (minIAQ, maxIAQ) = Pair(
|
||||
telemetries.minBy { it.environmentMetrics.iaq },
|
||||
telemetries.maxBy { it.environmentMetrics.iaq }
|
||||
|
|
|
@ -305,8 +305,10 @@ class MetricsViewModel @Inject constructor(
|
|||
state.copy(
|
||||
environmentMetrics = telemetry.filter {
|
||||
it.hasEnvironmentMetrics() &&
|
||||
it.environmentMetrics.relativeHumidity >= 0f &&
|
||||
!it.environmentMetrics.temperature.isNaN()
|
||||
(it.environmentMetrics.relativeHumidity >= 0f &&
|
||||
!it.environmentMetrics.temperature.isNaN()) ||
|
||||
(it.environmentMetrics.soilMoisture >= 0 &&
|
||||
!it.environmentMetrics.soilTemperature.isNaN())
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
@ -121,6 +121,17 @@ data class Node(
|
|||
null
|
||||
}
|
||||
val humidity = if (relativeHumidity != 0f) "%.0f%%".format(relativeHumidity) else null
|
||||
val soilTemp = if (soilTemperature != 0f) {
|
||||
if (isFahrenheit) {
|
||||
val fahrenheit = soilTemperature * 1.8F + 32
|
||||
"%.1f°F".format(fahrenheit)
|
||||
} else {
|
||||
"%.1f°C".format(soilTemperature)
|
||||
}
|
||||
} else {
|
||||
null
|
||||
}
|
||||
val soilMoisture = if (soilMoisture != 0) "%.0%%".format(soilMoisture) else null
|
||||
val voltage = if (this.voltage != 0f) "%.2fV".format(this.voltage) else null
|
||||
val current = if (current != 0f) "%.1fmA".format(current) else null
|
||||
val iaq = if (iaq != 0) "IAQ: $iaq" else null
|
||||
|
@ -128,6 +139,8 @@ data class Node(
|
|||
return listOfNotNull(
|
||||
temp,
|
||||
humidity,
|
||||
soilTemp,
|
||||
soilMoisture,
|
||||
voltage,
|
||||
current,
|
||||
iaq,
|
||||
|
|
Ładowanie…
Reference in New Issue