From 985cd9eb1a7e79e8b8bfc78ada68b4b68d7c3314 Mon Sep 17 00:00:00 2001 From: ua1zbe Date: Tue, 18 Aug 2026 07:58:17 +0300 Subject: [PATCH] Convert APRS meteo temperature from Fahrenheit to Celsius --- app/src/main/java/ru/ua1zbe/svxremote/aprs/AprsMeteo.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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