Skip to content

Commit 4ba0820

Browse files
authored
Merge pull request #7 from strykeforce/fix/pid-display-precision
Display PID parameters with 4 sig. digits
2 parents 7308818 + 92661b5 commit 4ba0820

File tree

8 files changed

+20
-17
lines changed

8 files changed

+20
-17
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
plugins {
22

3-
id "org.jetbrains.kotlin.jvm" version "1.3.11"
3+
id "org.jetbrains.kotlin.jvm" version "1.3.20"
44
id "idea"
55
}
66

7-
version = "19.1.3"
7+
version = "19.2.0"
88

99
repositories {
1010
jcenter()

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
kotlin.code.style=official
2-
kotlin_version = 1.3.11
2+
kotlin_version = 1.3.20
33
junit_version = 5.2.0
44
koin_version = 1.0.2
5-
thirdcoast_version = 19.1.0
5+
thirdcoast_version = 19.1.2

src/main/kotlin/org/strykeforce/thirdcoast/Readers.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import org.jline.reader.EndOfFileException
44
import org.jline.reader.LineReader
55
import org.jline.reader.UserInterruptException
66
import org.jline.terminal.Terminal
7-
import org.strykeforce.thirdcoast.command.DOUBLE_FORMAT
7+
import org.strykeforce.thirdcoast.command.DOUBLE_FORMAT_4
88
import org.strykeforce.thirdcoast.command.MenuCommand
99
import org.strykeforce.thirdcoast.command.prompt
1010
import kotlin.math.roundToInt
@@ -25,7 +25,7 @@ fun LineReader.readDouble(
2525
): Double {
2626
val buffer =
2727
if (truncate && default == Math.floor(default)) default.roundToInt().toString()
28-
else DOUBLE_FORMAT.format(default)
28+
else DOUBLE_FORMAT_4.format(default)
2929
return try {
3030
val line = this.readLine(prompt, null, buffer).trim()
3131
if (line.isEmpty()) throw EndOfFileException()

src/main/kotlin/org/strykeforce/thirdcoast/command/Command.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ abstract class AbstractCommand(
103103

104104
protected fun formatMenu(value: Int) = formatMenu(value.toString())
105105

106-
protected fun formatMenu(value: Double) = formatMenu(DOUBLE_FORMAT.format(value))
106+
protected fun formatMenu(value: Double, format: String = DOUBLE_FORMAT_3) = formatMenu(format.format(value))
107107

108108
protected fun formatMenu(value: String) =
109109
"$tomlMenu: ${AttributedString(value, AttributedStyle.DEFAULT.foreground(AttributedStyle.YELLOW)).toAnsi()}"

src/main/kotlin/org/strykeforce/thirdcoast/command/Parameter.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import org.jline.reader.LineReader
66
import org.jline.terminal.Terminal
77
import org.strykeforce.thirdcoast.*
88

9-
const val DOUBLE_FORMAT = "%7.3f"
9+
const val DOUBLE_FORMAT_3 = "%7.3f"
10+
const val DOUBLE_FORMAT_4 = "%8.4f"
1011

1112
private val logger = KotlinLogging.logger {}
1213

src/main/kotlin/org/strykeforce/thirdcoast/talon/TalonParameterCommand.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import net.consensys.cava.toml.TomlTable
88
import org.koin.standalone.inject
99
import org.strykeforce.thirdcoast.command.AbstractCommand
1010
import org.strykeforce.thirdcoast.command.Command
11+
import org.strykeforce.thirdcoast.command.DOUBLE_FORMAT_4
1112
import org.strykeforce.thirdcoast.device.TalonService
1213
import org.strykeforce.thirdcoast.talon.TalonParameter.Enum.*
1314

@@ -28,10 +29,10 @@ class TalonParameterCommand(
2829
val config = talonService.activeConfiguration
2930
val slot = talonService.activeSlot
3031
return when (param.enum) {
31-
SLOT_P -> formatMenu(slot.kP)
32-
SLOT_I -> formatMenu(slot.kI)
33-
SLOT_D -> formatMenu(slot.kD)
34-
SLOT_F -> formatMenu(slot.kF)
32+
SLOT_P -> formatMenu(slot.kP, DOUBLE_FORMAT_4)
33+
SLOT_I -> formatMenu(slot.kI, DOUBLE_FORMAT_4)
34+
SLOT_D -> formatMenu(slot.kD, DOUBLE_FORMAT_4)
35+
SLOT_F -> formatMenu(slot.kF, DOUBLE_FORMAT_4)
3536
SLOT_I_ZONE -> formatMenu(slot.integralZone)
3637
SLOT_ALLOWABLE_ERR -> formatMenu(slot.allowableClosedloopError)
3738
SLOT_MAX_I_ACCUM -> formatMenu(slot.maxIntegralAccumulator)

src/test/kotlin/org/strykeforce/thirdcoast/ReadersTest.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import org.junit.jupiter.api.Test
1111
import org.junit.jupiter.params.ParameterizedTest
1212
import org.junit.jupiter.params.provider.ValueSource
1313
import org.strykeforce.thirdcoast.command.Command
14-
import org.strykeforce.thirdcoast.command.DOUBLE_FORMAT
14+
import org.strykeforce.thirdcoast.command.DOUBLE_FORMAT_3
15+
import org.strykeforce.thirdcoast.command.DOUBLE_FORMAT_4
1516
import org.strykeforce.thirdcoast.command.MenuCommand
1617

1718
internal class ReadersTest {
@@ -59,7 +60,7 @@ internal class ReadersTest {
5960

6061
@Test
6162
fun `read default`() {
62-
whenever(reader.readLine(any(), isNull(), eq(DOUBLE_FORMAT.format(27.67)))).thenReturn(" ")
63+
whenever(reader.readLine(any(), isNull(), eq(DOUBLE_FORMAT_4.format(27.67)))).thenReturn(" ")
6364
assertThat(reader.readDouble(default = 27.67)).isEqualTo(27.67)
6465
}
6566

src/test/kotlin/org/strykeforce/thirdcoast/talon/TalonParameterCommandTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import org.koin.standalone.inject
1717
import org.koin.test.KoinTest
1818
import org.koin.test.declare
1919
import org.strykeforce.thirdcoast.command.Command
20-
import org.strykeforce.thirdcoast.command.DOUBLE_FORMAT
20+
import org.strykeforce.thirdcoast.command.DOUBLE_FORMAT_4
2121
import org.strykeforce.thirdcoast.device.TalonService
2222

2323
internal class TalonParameterCommandTest : KoinTest {
@@ -31,7 +31,7 @@ internal class TalonParameterCommandTest : KoinTest {
3131
private val talon: TalonSRX = mock()
3232

3333
private val reader: LineReader = mock {
34-
on { readLine(any(), isNull(), eq(DOUBLE_FORMAT.format(0.0))) } doReturn "27.67"
34+
on { readLine(any(), isNull(), eq(DOUBLE_FORMAT_4.format(0.0))) } doReturn "27.67"
3535
on { readLine(any(), isNull(), eq("0")) } doReturn "27"
3636
}
3737

@@ -51,7 +51,7 @@ internal class TalonParameterCommandTest : KoinTest {
5151
param = "SLOT_P"
5252
""".trimIndent()
5353
val command = TalonParameterCommand(null, "foo", Toml.parse(toml))
54-
assertThat(AttributedString.stripAnsi(command.menu)).isEqualTo("foo: ${DOUBLE_FORMAT.format(0.0)}")
54+
assertThat(AttributedString.stripAnsi(command.menu)).isEqualTo("foo: ${DOUBLE_FORMAT_4.format(0.0)}")
5555
}
5656

5757
@Test

0 commit comments

Comments
 (0)