diff --git a/app/src/main/java/com/helible/pilot/MainActivity.kt b/app/src/main/java/com/helible/pilot/MainActivity.kt
index 4eb72d2..f50c29e 100644
--- a/app/src/main/java/com/helible/pilot/MainActivity.kt
+++ b/app/src/main/java/com/helible/pilot/MainActivity.kt
@@ -23,6 +23,7 @@ import com.helible.pilot.components.deviceScreen.DeviceControlScreen
import com.helible.pilot.components.deviceScreen.defaultDeviceActionsList
import com.helible.pilot.components.PidSettingsPage
import com.helible.pilot.components.scannerScreen.ScannerScreen
+import com.helible.pilot.dataclasses.DeviceStatus
import com.helible.pilot.permissions.PermissionsLauncher
import com.helible.pilot.permissions.PermissionsRequest
import com.helible.pilot.permissions.RequestHardwareFeatures
diff --git a/app/src/main/java/com/helible/pilot/components/CalibrationPage.kt b/app/src/main/java/com/helible/pilot/components/CalibrationPage.kt
index 4d8c5a5..5eb7528 100644
--- a/app/src/main/java/com/helible/pilot/components/CalibrationPage.kt
+++ b/app/src/main/java/com/helible/pilot/components/CalibrationPage.kt
@@ -1,5 +1,6 @@
package com.helible.pilot.components
+import android.content.res.Configuration
import android.widget.Spinner
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -70,7 +71,7 @@ fun CalibrationPage(
}
}
-@Preview
+@Preview(showSystemUi = true)
@Composable
fun CalibrationPagePreview() {
Surface {
diff --git a/app/src/main/java/com/helible/pilot/components/deviceScreen/DeviceBadge.kt b/app/src/main/java/com/helible/pilot/components/deviceScreen/DeviceBadge.kt
index a69299e..c8b7c97 100644
--- a/app/src/main/java/com/helible/pilot/components/deviceScreen/DeviceBadge.kt
+++ b/app/src/main/java/com/helible/pilot/components/deviceScreen/DeviceBadge.kt
@@ -27,6 +27,7 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.helible.pilot.R
import com.helible.pilot.dataclasses.BluetoothUiState
+import com.helible.pilot.dataclasses.DeviceState
import com.helible.pilot.dataclasses.DeviceStatus
import com.helible.pilot.viewmodels.AppPreferences
@@ -103,7 +104,14 @@ fun DeviceBadge(
@Composable
fun DeviceBadgePreview() {
DeviceBadge(
- bluetoothUiState = BluetoothUiState(isConnected = true),
+ bluetoothUiState = BluetoothUiState(
+ isConnected = false,
+ isConnecting = true,
+ deviceState = DeviceState(
+ status = DeviceStatus.Idle,
+ batteryCharge = 50,
+ )
+ ),
tryToReconnect = {},
getPreferences = { AppPreferences("Helicopter", "AA:BB:CC:FF:DD") }
)
diff --git a/app/src/main/java/com/helible/pilot/viewmodels/BluetoothDataTransferService.kt b/app/src/main/java/com/helible/pilot/viewmodels/BluetoothDataTransferService.kt
index bf0c3ab..ab0bc70 100644
--- a/app/src/main/java/com/helible/pilot/viewmodels/BluetoothDataTransferService.kt
+++ b/app/src/main/java/com/helible/pilot/viewmodels/BluetoothDataTransferService.kt
@@ -22,7 +22,6 @@ class BluetoothDataTransferService(
return flow {
if (!socket.isConnected)
return@flow
-
val buffer = BufferedInputStream(socket.inputStream, maxPackageSize)
while (true) {
val message: String = try {
@@ -39,9 +38,11 @@ class BluetoothDataTransferService(
emit(GeneralMessage(messageType, messageData))
}
} catch (e: NoSuchElementException) {
- Log.e("BluetoothController", "Message type is invalid: $message")
+ Log.e("BluetoothController", "Message type is invalid: ${e.message}")
} catch (e: NumberFormatException) {
- Log.e("BluetoothController", "Message invalid, may be device buffer congested: $message")
+ Log.e("BluetoothController", "Message invalid, may be device buffer congested: ${e.message}")
+ } catch (e: Exception) {
+ Log.e("BluetoothController", "Unknown error: ${e.message}")
}
}
}.flowOn(Dispatchers.IO)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a346cfb..952f568 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,6 +2,6 @@
Digital Pilot
Расположите устройство на ровной горизонтальной поверхности, чтобы сани вертолета полностью лежали на ней. Нажмите кнопку калибровки ниже и ждите её окончания, не создавая тряски.
Сначала подберите значение коэффицента P, которое балансирует между слишком низкой и слишком высокой чувствительностью.
- Затем подберите значение коэффицента I, которое уберёт нежелательный дрейв, но не повлияет на отзывчивость.
+ Затем подберите значение коэффицента I, которое уберёт нежелательный дрейф, но не повлияет на отзывчивость.
После установите значение коэффицента D таким образом, чтобы обеспечить более стабильное и плавное управление.
\ No newline at end of file