From abc70623faca2f70661a4e458762b110300c617b Mon Sep 17 00:00:00 2001 From: jjangddu Date: Mon, 27 Apr 2026 10:20:09 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Distance/Sample=20=EC=8A=AC=EB=9D=BC?= =?UTF-8?q?=EC=9D=B4=EB=8D=94=E2=86=92=EC=88=AB=EC=9E=90=20=EC=A7=81?= =?UTF-8?q?=EC=A0=91=20=EC=9E=85=EB=A0=A5=EC=9C=BC=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OutlinedTextField + Decimal 키보드로 정밀 입력 가능 범위: 0.5~5.0mm, 기본값 1.771mm 입력 즉시 PiezoHW.distancePerSample 반영 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../views/monitoring/PiezoMonitoringView.kt | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt index 2fc41f2..da8924b 100644 --- a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt +++ b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt @@ -662,22 +662,32 @@ fun PiezoMonitoringView(appState: AppState) { HorizontalDivider() - // Distance Per Sample - var currentDps by remember { mutableStateOf(PiezoHW.distancePerSample.toFloat()) } + // Distance Per Sample (직접 입력) + var dpsText by remember { mutableStateOf("%.3f".format(PiezoHW.distancePerSample)) } Row(verticalAlignment = Alignment.CenterVertically) { Text("Distance/Sample", fontSize = 14.sp, fontWeight = FontWeight.SemiBold) Spacer(modifier = Modifier.weight(1f)) - Text("${"%.3f".format(currentDps)} mm", fontSize = 14.sp, fontWeight = FontWeight.Bold, color = Color(0xFF4CAF50)) + OutlinedTextField( + value = dpsText, + onValueChange = { input -> + dpsText = input + input.toDoubleOrNull()?.let { v -> + if (v in 0.5..5.0) PiezoHW.distancePerSample = v + } + }, + suffix = { Text("mm", fontSize = 12.sp, color = MlSecondaryText) }, + singleLine = true, + keyboardOptions = androidx.compose.foundation.text.KeyboardOptions( + keyboardType = androidx.compose.ui.text.input.KeyboardType.Decimal + ), + modifier = Modifier.width(120.dp), + textStyle = androidx.compose.ui.text.TextStyle( + fontSize = 14.sp, + fontWeight = FontWeight.Bold, + color = Color(0xFF4CAF50) + ) + ) } - Slider( - value = currentDps, - onValueChange = { - currentDps = it - PiezoHW.distancePerSample = it.toDouble() - }, - valueRange = 1.5f..2.5f, - colors = SliderDefaults.colors(thumbColor = Color(0xFF4CAF50), activeTrackColor = Color(0xFF4CAF50)) - ) HorizontalDivider()