fix: trailing zeros, speed warning

This commit is contained in:
Piotr Dec 2024-08-03 00:32:41 +02:00
parent 711c79dd61
commit 36644a1af2
Signed by: stawros
GPG key ID: F89F27AD8F881A91

View file

@ -17,12 +17,13 @@ class GarminMapper {
} }
fun map(speed: Speed): IntArray { fun map(speed: Speed): IntArray {
return setSpeed(speed.speed, speed.limit, speed.limit > 0 && speed.speed > speed.limit) return setSpeed(speed.speed, speed.limit)
} }
fun setTime(hours: Int, minutes: Int, traffic: Boolean = false, flag: Boolean = false): IntArray { fun setTime(hours: Int, minutes: Int, traffic: Boolean = false, flag: Boolean = false): IntArray {
val trafficChar = asChar(traffic) val trafficChar = asChar(traffic)
val flagChar = asChar(flag) val flagChar = asChar(flag)
// TODO: needed? Displaying ETA, not remaining
return if (hours > 99) { return if (hours > 99) {
intArrayOf( intArrayOf(
0x05, 0x05,
@ -40,7 +41,7 @@ class GarminMapper {
0x05, 0x05,
trafficChar, trafficChar,
asDigit(hours / 10), asDigit(hours / 10),
asDigit(hours), asDigit(if (hours == 0) 10 else hours),
0xff, 0xff,
asDigit(minutes / 10), asDigit(minutes / 10),
asDigit(minutes), asDigit(minutes),
@ -97,23 +98,21 @@ class GarminMapper {
private fun setSpeed( private fun setSpeed(
speed: Int, speed: Int,
limit: Int = 0, limit: Int = 0,
limitWarning: Boolean = false,
acc: Boolean = false acc: Boolean = false
): IntArray { ): IntArray {
// TODO: car connection // TODO: car connection
val accChar = asChar(acc) val accChar = asChar(acc)
val limitWarningChar = asChar(limitWarning)
return if (limit > 0) { return if (limit > 0) {
intArrayOf( intArrayOf(
0x06, 0x06,
asDigit(speed / 100), asDigit(speed / 100),
asDigit(speed / 10), asDigit(speed / 10),
asDigit(speed), asDigit(if (speed == 0) 10 else speed),
0xff, 0xff,
asDigit(limit / 100), asDigit(limit / 100),
asDigit(limit / 10), asDigit(limit / 10),
asDigit(limit), asDigit(limit),
limitWarningChar, asChar(speed > limit),
accChar accChar
) )
} else { } else {
@ -126,7 +125,7 @@ class GarminMapper {
asDigit(speed / 100), asDigit(speed / 100),
asDigit(speed / 10), asDigit(speed / 10),
asDigit(speed), asDigit(speed),
limitWarningChar, asChar(false),
accChar accChar
) )
} }