diff --git a/app/src/main/java/ru/ua1zbe/svxremote/aprs/AprsMeteo.kt b/app/src/main/java/ru/ua1zbe/svxremote/aprs/AprsMeteo.kt index 65bc6a9..66d963e 100644 --- a/app/src/main/java/ru/ua1zbe/svxremote/aprs/AprsMeteo.kt +++ b/app/src/main/java/ru/ua1zbe/svxremote/aprs/AprsMeteo.kt @@ -120,11 +120,15 @@ class AprsMeteo( val body = line.substring(idx + 1) if (body.isEmpty() || body[0] !in "!@=") return null val temp = parseTemp(body) ?: return null - val t = if (temp == temp.toInt().toDouble()) temp.toInt().toString() else temp.toString() + // В APRS метео-часть температура в градусах Фаренгейта + val c = (temp - 32.0) * 5.0 / 9.0 + val t = if (c == c.toInt().toDouble()) c.toInt().toString() + else (Math.round(c * 10.0) / 10.0).toString() return line.substringBefore('>') + " Температура " + t + "C" } - /** Температура из метео-части после символа '_': t062=6.2, t06=6, t-08=-0.8, T083=8.3. */ + /** Температура из метео-части после символа '_': t062=62°F, t06=6°F, t-08=-8°F, T083=83°F. + * В APRS метео-формате температура кодируется в градусах Фаренгейта. */ private fun parseTemp(body: String): Double? { val u = body.indexOf('_') if (u < 0) return null