MetricFormatter

Centralized metric formatting for display strings. Eliminates duplicated formatString patterns across Node, NodeItem, and metric screens.

All methods return locale-independent strings using NumberFormatter (dot decimal separator), which is intentional for a mesh networking app where consistency matters.

Functions

Link copied to clipboard
fun current(milliAmps: Float, decimalPlaces: Int = 1): String
Link copied to clipboard
fun humidity(value: Float): String
Link copied to clipboard
fun percent(value: Int): String
fun percent(value: Float, decimalPlaces: Int = 1): String
Link copied to clipboard
fun pressure(hPa: Float, decimalPlaces: Int = 1): String
Link copied to clipboard
fun rainfall(millimeters: Float, isImperial: Boolean, decimalPlaces: Int = 1): String
Link copied to clipboard
fun rssi(value: Int?): String

Formats a received signal strength, or UNKNOWN_VALUE when the radio reported none. 0 dBm is a legitimate reading on some radios, so it must never stand in for a missing one.

Link copied to clipboard
fun snr(value: Float?, decimalPlaces: Int = 1): String

Formats a signal-to-noise ratio, or UNKNOWN_VALUE when the packet carried no measurement. 0 dB is a legitimate reading, so it must never stand in for a missing one.

Link copied to clipboard
fun temperature(celsius: Float, isFahrenheit: Boolean): String
Link copied to clipboard
fun voltage(volts: Float, decimalPlaces: Int = 2): String
Link copied to clipboard
fun weight(kilograms: Float, isImperial: Boolean, decimalPlaces: Int = 2): String
Link copied to clipboard
fun windSpeed(metersPerSecond: Float, isImperial: Boolean, decimalPlaces: Int = 1): String