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 time: Int = currentTime(), // default to current time in secs (NOT MILLISECONDS!)
|
||||||
val temperature: Float,
|
val temperature: Float,
|
||||||
val relativeHumidity: Float,
|
val relativeHumidity: Float,
|
||||||
|
val soilTemperature: Float,
|
||||||
|
val soilMoisture: Int,
|
||||||
val barometricPressure: Float,
|
val barometricPressure: Float,
|
||||||
val gasResistance: Float,
|
val gasResistance: Float,
|
||||||
val voltage: Float,
|
val voltage: Float,
|
||||||
|
|
|
@ -212,6 +212,8 @@ data class NodeEntity(
|
||||||
time = environmentTelemetry.time,
|
time = environmentTelemetry.time,
|
||||||
temperature = environmentMetrics.temperature,
|
temperature = environmentMetrics.temperature,
|
||||||
relativeHumidity = environmentMetrics.relativeHumidity,
|
relativeHumidity = environmentMetrics.relativeHumidity,
|
||||||
|
soilTemperature = environmentMetrics.soilTemperature,
|
||||||
|
soilMoisture = environmentMetrics.soilMoisture,
|
||||||
barometricPressure = environmentMetrics.barometricPressure,
|
barometricPressure = environmentMetrics.barometricPressure,
|
||||||
gasResistance = environmentMetrics.gasResistance,
|
gasResistance = environmentMetrics.gasResistance,
|
||||||
voltage = environmentMetrics.voltage,
|
voltage = environmentMetrics.voltage,
|
||||||
|
|
|
@ -33,6 +33,16 @@ enum class Environment(val color: Color) {
|
||||||
return telemetry.environmentMetrics.relativeHumidity
|
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) {
|
IAQ(Color.Green) {
|
||||||
override fun getValue(telemetry: Telemetry): Float {
|
override fun getValue(telemetry: Telemetry): Float {
|
||||||
return telemetry.environmentMetrics.iaq.toFloat()
|
return telemetry.environmentMetrics.iaq.toFloat()
|
||||||
|
@ -107,6 +117,27 @@ data class EnvironmentMetricsState(
|
||||||
shouldPlot[Environment.HUMIDITY.ordinal] = true
|
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(
|
val (minIAQ, maxIAQ) = Pair(
|
||||||
telemetries.minBy { it.environmentMetrics.iaq },
|
telemetries.minBy { it.environmentMetrics.iaq },
|
||||||
telemetries.maxBy { it.environmentMetrics.iaq }
|
telemetries.maxBy { it.environmentMetrics.iaq }
|
||||||
|
|
|
@ -305,8 +305,10 @@ class MetricsViewModel @Inject constructor(
|
||||||
state.copy(
|
state.copy(
|
||||||
environmentMetrics = telemetry.filter {
|
environmentMetrics = telemetry.filter {
|
||||||
it.hasEnvironmentMetrics() &&
|
it.hasEnvironmentMetrics() &&
|
||||||
it.environmentMetrics.relativeHumidity >= 0f &&
|
(it.environmentMetrics.relativeHumidity >= 0f &&
|
||||||
!it.environmentMetrics.temperature.isNaN()
|
!it.environmentMetrics.temperature.isNaN()) ||
|
||||||
|
(it.environmentMetrics.soilMoisture >= 0 &&
|
||||||
|
!it.environmentMetrics.soilTemperature.isNaN())
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,6 +121,17 @@ data class Node(
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
val humidity = if (relativeHumidity != 0f) "%.0f%%".format(relativeHumidity) else 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 voltage = if (this.voltage != 0f) "%.2fV".format(this.voltage) else null
|
||||||
val current = if (current != 0f) "%.1fmA".format(current) else null
|
val current = if (current != 0f) "%.1fmA".format(current) else null
|
||||||
val iaq = if (iaq != 0) "IAQ: $iaq" else null
|
val iaq = if (iaq != 0) "IAQ: $iaq" else null
|
||||||
|
@ -128,6 +139,8 @@ data class Node(
|
||||||
return listOfNotNull(
|
return listOfNotNull(
|
||||||
temp,
|
temp,
|
||||||
humidity,
|
humidity,
|
||||||
|
soilTemp,
|
||||||
|
soilMoisture,
|
||||||
voltage,
|
voltage,
|
||||||
current,
|
current,
|
||||||
iaq,
|
iaq,
|
||||||
|
|
Ładowanie…
Reference in New Issue