Justin E. Mann 2025-06-23 03:30:19 +00:00 zatwierdzone przez GitHub
commit 498510080a
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
5 zmienionych plików z 52 dodań i 2 usunięć

Wyświetl plik

@ -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,

Wyświetl plik

@ -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,

Wyświetl plik

@ -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 }

Wyświetl plik

@ -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())
},
)
}

Wyświetl plik

@ -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,