Extract magic numbers to named constants

This commit is contained in:
eddy 2026-07-26 23:07:11 +02:00
commit fffc5165a4
2 changed files with 16 additions and 8 deletions

View file

@ -37,6 +37,10 @@ class SettingsActivity : AppCompatActivity() {
private const val CDC_DATA_INTERFACE_CLASS = 0x0A private const val CDC_DATA_INTERFACE_CLASS = 0x0A
private const val KEY_TIMEOUT_MS = 5000L private const val KEY_TIMEOUT_MS = 5000L
private const val SET_KEY_TIMEOUT_MS = 5000L private const val SET_KEY_TIMEOUT_MS = 5000L
private const val MAX_KEY_RETRIES = 5
private const val KEY_SETTLE_MS = 1000L
private const val RESPONSE_WAIT_MS = 500L
private const val USB_BULK_TIMEOUT_MS = 1000
private const val ACTION_USB_PERMISSION = "com.eddy.atomrelay.USB_PERMISSION" private const val ACTION_USB_PERMISSION = "com.eddy.atomrelay.USB_PERMISSION"
private const val STYLE_SPINNER = 0 private const val STYLE_SPINNER = 0
private const val STYLE_HORIZONTAL = 1 private const val STYLE_HORIZONTAL = 1
@ -347,20 +351,20 @@ class SettingsActivity : AppCompatActivity() {
try { try {
setupCdcControl(connection, device) setupCdcControl(connection, device)
for (attempt in 1..5) { for (attempt in 1..MAX_KEY_RETRIES) {
Thread.sleep(1000L) Thread.sleep(KEY_SETTLE_MS)
flushReadBuffer(connection, epIn) flushReadBuffer(connection, epIn)
val cmd = "KEY?\n".toByteArray(StandardCharsets.US_ASCII) val cmd = "KEY?\n".toByteArray(StandardCharsets.US_ASCII)
val written = connection.bulkTransfer(epOut, cmd, cmd.size, 1000) val written = connection.bulkTransfer(epOut, cmd, cmd.size, USB_BULK_TIMEOUT_MS)
Log.d(TAG, "Attempt $attempt: Sent KEY? ($written bytes)") Log.d(TAG, "Attempt $attempt: Sent KEY? ($written bytes)")
if (written < 0) { if (written < 0) {
Log.w(TAG, "Write failed on attempt $attempt") Log.w(TAG, "Write failed on attempt $attempt")
continue continue
} }
Thread.sleep(500) Thread.sleep(RESPONSE_WAIT_MS)
val response = readResponse(connection, epIn, KEY_TIMEOUT_MS) val response = readResponse(connection, epIn, KEY_TIMEOUT_MS)
Log.d(TAG, "Attempt $attempt response: ${response.take(300)}") Log.d(TAG, "Attempt $attempt response: ${response.take(300)}")
@ -380,13 +384,13 @@ class SettingsActivity : AppCompatActivity() {
val newKey = generateRandomHexKey() val newKey = generateRandomHexKey()
val setKeyCmd = "SET_KEY:$newKey\n".toByteArray(StandardCharsets.US_ASCII) val setKeyCmd = "SET_KEY:$newKey\n".toByteArray(StandardCharsets.US_ASCII)
val w = connection.bulkTransfer(epOut, setKeyCmd, setKeyCmd.size, 1000) val w = connection.bulkTransfer(epOut, setKeyCmd, setKeyCmd.size, USB_BULK_TIMEOUT_MS)
Log.d(TAG, "Sent SET_KEY ($w bytes)") Log.d(TAG, "Sent SET_KEY ($w bytes)")
if (w < 0) { if (w < 0) {
return KeyResult.Error("SET_KEY schrijven mislukt") return KeyResult.Error("SET_KEY schrijven mislukt")
} }
Thread.sleep(500) Thread.sleep(RESPONSE_WAIT_MS)
val okResponse = readResponse(connection, epIn, SET_KEY_TIMEOUT_MS) val okResponse = readResponse(connection, epIn, SET_KEY_TIMEOUT_MS)
Log.d(TAG, "SET_KEY response: ${okResponse.take(200)}") Log.d(TAG, "SET_KEY response: ${okResponse.take(200)}")

View file

@ -13,14 +13,18 @@ class UsbSerialTransport(
private val epIn: UsbEndpoint private val epIn: UsbEndpoint
) : SerialTransport { ) : SerialTransport {
companion object {
private const val USB_TIMEOUT_MS = 5000
}
override fun read(buffer: ByteArray, length: Int): Int { override fun read(buffer: ByteArray, length: Int): Int {
val n = connection.bulkTransfer(epIn, buffer, length, 5000) val n = connection.bulkTransfer(epIn, buffer, length, USB_TIMEOUT_MS)
if (n < 0) return 0 if (n < 0) return 0
return n return n
} }
override fun write(buffer: ByteArray, length: Int) { override fun write(buffer: ByteArray, length: Int) {
val n = connection.bulkTransfer(epOut, buffer, length, 5000) val n = connection.bulkTransfer(epOut, buffer, length, USB_TIMEOUT_MS)
if (n < 0) throw IOException("USB write failed") if (n < 0) throw IOException("USB write failed")
} }