diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..0c0c338
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index e132dfb..626d22b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -13,8 +13,8 @@ android {
applicationId "llc.arma.ble"
minSdk 26
targetSdk 34
- versionCode 22
- versionName "1.3.2"
+ versionCode 23
+ versionName "1.3.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
diff --git a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/AccelerometerScreen.kt b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/AccelerometerScreen.kt
index deb3da6..592ef9e 100644
--- a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/AccelerometerScreen.kt
+++ b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/AccelerometerScreen.kt
@@ -25,7 +25,7 @@ import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.AccelScaleEdit
import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.AccelSpectreEdit
import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.AccelViewEdit
import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.AccelerometerSpectre
-import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.AccelerometerAccel
+import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.AccelerometerRealtime
import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.AccelerometerHistory
import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.DisplayState
import llc.arma.ble.app.ui.screen.inspection.accelerometer.view.HistoryEdit
@@ -94,7 +94,7 @@ fun AccelerometerScreen(
if (currentState is AccelerometerContract.State.Display) {
bottomDialog.show {
- AccelerometerAccel(
+ AccelerometerRealtime(
ble = currentState.accelerometer.info,
accelMode = currentState.accelViewMode,
fftAxis = currentState.fftAxis,
diff --git a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterAccel.kt b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterAccel.kt
index 4f7d225..24d0d2c 100644
--- a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterAccel.kt
+++ b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterAccel.kt
@@ -1,5 +1,6 @@
package llc.arma.ble.app.ui.screen.inspection.accelerometer.view
+import android.util.Log
import androidx.compose.animation.core.tween
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
@@ -47,7 +48,7 @@ import llc.arma.ble.domain.usecase.FftViewMode
import llc.arma.ble.domain.usecase.GetAccelerometerMeasureBySerialFlow
@Composable
-fun AccelerometerAccel(
+fun AccelerometerRealtime(
ble: BleInfo,
accelScale: AccelScale,
accelMode: AccelViewMode,
@@ -196,199 +197,195 @@ fun Display(
val lastMeasure = state.measureHistory.lastOrNull()
- if(lastMeasure is Ble.Accelerometer.RealtimePoint.Common) {
+ Log.d("mode", lastMeasure.toString())
+
+ when(lastMeasure){
+ is Ble.Accelerometer.RealtimePoint.Angle -> {
+ Column(
+ verticalArrangement = Arrangement.spacedBy(16.dp),
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
- when(state.mode){
- ROTATIONS -> {
Column(
- verticalArrangement = Arrangement.spacedBy(16.dp),
+ modifier = Modifier.weight(1f),
horizontalAlignment = Alignment.CenterHorizontally
) {
+ Text(text = "Ось X: ${lastMeasure.x}")
+
+ Spacer(modifier = Modifier.height(8.dp))
+
+ Angle(
+ angle = lastMeasure.x,
+ modifier = Modifier.weight(1f),
+ )
+
+ }
+
+ Column(
+ modifier = Modifier.weight(1f),
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
Text(text = "Ось Y: ${lastMeasure.y}")
- Column(
+ Spacer(modifier = Modifier.height(8.dp))
+
+ Angle(
modifier = Modifier.weight(1f),
- horizontalAlignment = Alignment.CenterHorizontally
- ) {
-
- Text(text = "Ось X: ${lastMeasure.x}")
-
- Spacer(modifier = Modifier.height(8.dp))
-
- Angle(
- angle = lastMeasure.x,
- modifier = Modifier.weight(1f),
- )
-
- }
-
- Text(text = "Ось Z:")
- Chart(
- chart = lineChart,
- chartModelProducer = zProducer,
- startAxis = startAxis(),
- bottomAxis = bottomAxis(),
- modifier = Modifier
- .fillMaxWidth()
- .weight(1f),
- autoScaleUp = AutoScaleUp.None,
- diffAnimationSpec = tween(0),
- chartScrollSpec = rememberChartScrollSpec(
- initialScroll = InitialScroll.End,
- autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
- autoScrollAnimationSpec = tween(0)
- )
+ angle = lastMeasure.y
)
}
- }
- ANGLE -> {
+
Column(
- verticalArrangement = Arrangement.spacedBy(16.dp),
+ modifier = Modifier.weight(1f),
horizontalAlignment = Alignment.CenterHorizontally
) {
- Column(
+ Text(text = "Ось Z: ${lastMeasure.z}")
+
+ Spacer(modifier = Modifier.height(8.dp))
+
+ Angle(
modifier = Modifier.weight(1f),
- horizontalAlignment = Alignment.CenterHorizontally
- ) {
-
- Text(text = "Ось X: ${lastMeasure.x}")
-
- Spacer(modifier = Modifier.height(8.dp))
-
- Angle(
- angle = lastMeasure.x,
- modifier = Modifier.weight(1f),
- )
-
- }
-
- Column(
- modifier = Modifier.weight(1f),
- horizontalAlignment = Alignment.CenterHorizontally
- ) {
-
- Text(text = "Ось Y: ${lastMeasure.y}")
-
- Spacer(modifier = Modifier.height(8.dp))
-
- Angle(
- modifier = Modifier.weight(1f),
- angle = lastMeasure.y
- )
-
- }
-
- Column(
- modifier = Modifier.weight(1f),
- horizontalAlignment = Alignment.CenterHorizontally
- ) {
-
- Text(text = "Ось Z: ${lastMeasure.z}")
-
- Spacer(modifier = Modifier.height(8.dp))
-
- Angle(
- modifier = Modifier.weight(1f),
- angle = lastMeasure.z
- )
-
- }
-
- }
- }
- else -> {
-
- Column() {
-
- Text(text = "Ось X:")
-
- Chart(
- chart = lineChart,
- chartModelProducer = xProducer,
- startAxis = startAxis(),
- bottomAxis = bottomAxis(),
- modifier = Modifier
- .fillMaxWidth()
- .weight(1f),
- autoScaleUp = AutoScaleUp.None,
- diffAnimationSpec = tween(0),
- chartScrollSpec = rememberChartScrollSpec(
- initialScroll = InitialScroll.End,
- autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
- autoScrollAnimationSpec = tween(0)
- )
- )
-
- Text(text = "Ось Y:")
- Chart(
- chart = lineChart,
- chartModelProducer = yProducer,
- startAxis = startAxis(),
- bottomAxis = bottomAxis(),
- modifier = Modifier
- .fillMaxWidth()
- .weight(1f),
- autoScaleUp = AutoScaleUp.None,
- diffAnimationSpec = tween(0),
- chartScrollSpec = rememberChartScrollSpec(
- initialScroll = InitialScroll.End,
- autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
- autoScrollAnimationSpec = tween(0)
- )
- )
-
- Text(text = "Ось Z:")
- Chart(
- chart = lineChart,
- chartModelProducer = zProducer,
- startAxis = startAxis(),
- bottomAxis = bottomAxis(),
- modifier = Modifier
- .fillMaxWidth()
- .weight(1f),
- autoScaleUp = AutoScaleUp.None,
- diffAnimationSpec = tween(0),
- chartScrollSpec = rememberChartScrollSpec(
- initialScroll = InitialScroll.End,
- autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
- autoScrollAnimationSpec = tween(0)
- )
+ angle = lastMeasure.z
)
}
}
}
+ is Ble.Accelerometer.RealtimePoint.Rotation -> {
+ Column(
+ verticalArrangement = Arrangement.spacedBy(16.dp),
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
- } else {
- Column {
+ Text(text = "Ось Y: ${lastMeasure.tmp}")
- Text(text = "Вибрация:")
+ Column(
+ modifier = Modifier.weight(1f),
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
- Chart(
- chart = lineChart,
- chartModelProducer = xProducer,
- startAxis = startAxis(),
- bottomAxis = bottomAxis(),
- modifier = Modifier
- .fillMaxWidth()
- .weight(1f),
- autoScaleUp = AutoScaleUp.None,
- diffAnimationSpec = tween(0),
- chartScrollSpec = rememberChartScrollSpec(
- initialScroll = InitialScroll.End,
- autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
- autoScrollAnimationSpec = tween(0)
+ Text(text = "Ось X: ${lastMeasure.angle}")
+
+ Spacer(modifier = Modifier.height(8.dp))
+
+ Angle(
+ angle = lastMeasure.angle,
+ modifier = Modifier.weight(1f),
+ )
+
+ }
+
+ Text(text = "Ось Z:")
+ Chart(
+ chart = lineChart,
+ chartModelProducer = zProducer,
+ startAxis = startAxis(),
+ bottomAxis = bottomAxis(),
+ modifier = Modifier
+ .fillMaxWidth()
+ .weight(1f),
+ autoScaleUp = AutoScaleUp.None,
+ diffAnimationSpec = tween(0),
+ chartScrollSpec = rememberChartScrollSpec(
+ initialScroll = InitialScroll.End,
+ autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
+ autoScrollAnimationSpec = tween(0)
+ )
)
- )
+ }
}
+ is Ble.Accelerometer.RealtimePoint.Vibration -> {
+ Column {
+ Text(text = "Вибрация:")
+
+ Chart(
+ chart = lineChart,
+ chartModelProducer = xProducer,
+ startAxis = startAxis(),
+ bottomAxis = bottomAxis(),
+ modifier = Modifier
+ .fillMaxWidth()
+ .weight(1f),
+ autoScaleUp = AutoScaleUp.None,
+ diffAnimationSpec = tween(0),
+ chartScrollSpec = rememberChartScrollSpec(
+ initialScroll = InitialScroll.End,
+ autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
+ autoScrollAnimationSpec = tween(0)
+ )
+ )
+
+ }
+ }
+ is Ble.Accelerometer.RealtimePoint.Common -> {
+ Column() {
+
+ Text(text = "Ось X:")
+
+ Chart(
+ chart = lineChart,
+ chartModelProducer = xProducer,
+ startAxis = startAxis(),
+ bottomAxis = bottomAxis(),
+ modifier = Modifier
+ .fillMaxWidth()
+ .weight(1f),
+ autoScaleUp = AutoScaleUp.None,
+ diffAnimationSpec = tween(0),
+ chartScrollSpec = rememberChartScrollSpec(
+ initialScroll = InitialScroll.End,
+ autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
+ autoScrollAnimationSpec = tween(0)
+ )
+ )
+
+ Text(text = "Ось Y:")
+ Chart(
+ chart = lineChart,
+ chartModelProducer = yProducer,
+ startAxis = startAxis(),
+ bottomAxis = bottomAxis(),
+ modifier = Modifier
+ .fillMaxWidth()
+ .weight(1f),
+ autoScaleUp = AutoScaleUp.None,
+ diffAnimationSpec = tween(0),
+ chartScrollSpec = rememberChartScrollSpec(
+ initialScroll = InitialScroll.End,
+ autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
+ autoScrollAnimationSpec = tween(0)
+ )
+ )
+
+ Text(text = "Ось Z:")
+ Chart(
+ chart = lineChart,
+ chartModelProducer = zProducer,
+ startAxis = startAxis(),
+ bottomAxis = bottomAxis(),
+ modifier = Modifier
+ .fillMaxWidth()
+ .weight(1f),
+ autoScaleUp = AutoScaleUp.None,
+ diffAnimationSpec = tween(0),
+ chartScrollSpec = rememberChartScrollSpec(
+ initialScroll = InitialScroll.End,
+ autoScrollCondition = AutoScrollCondition.OnModelSizeIncreased,
+ autoScrollAnimationSpec = tween(0)
+ )
+ )
+
+ }
+ }
+ null -> {}
}
}
diff --git a/app/src/main/java/llc/arma/ble/data/GetAccelerometerHistory.kt b/app/src/main/java/llc/arma/ble/data/GetAccelerometerHistory.kt
index 33f1c25..cb891ad 100644
--- a/app/src/main/java/llc/arma/ble/data/GetAccelerometerHistory.kt
+++ b/app/src/main/java/llc/arma/ble/data/GetAccelerometerHistory.kt
@@ -1,11 +1,7 @@
package llc.arma.ble.data
-import android.Manifest
import android.app.Application
-import android.content.pm.PackageManager
-import android.os.Build
import android.util.Log
-import androidx.core.app.ActivityCompat
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow
@@ -95,7 +91,9 @@ fun getAccelerometerHistory(
while (nextPackageDataCount.toInt() != 0) {
- val temperatureDataArray = if (value[0] == 250.toByte()) {
+ Log.d("dataTable", "next package fata size $nextPackageDataCount")
+
+ val packageDataArray = if (value[0] == 250.toByte()) {
bleMeasureInterval = value.get4byteUIntAt(4).toLong()
bleLastMeasureTime = value.get4byteUIntAt(8).toLong()
@@ -104,6 +102,14 @@ fun getAccelerometerHistory(
lastMeasureSystemTime =
System.currentTimeMillis() - ((bleRealTime - bleLastMeasureTime) * 1_000)
+ Log.d("dataTable",
+ "bleMeasureInterval $bleMeasureInterval " +
+ "bleLastMeasureTime $bleLastMeasureTime " +
+ "bleRealTime $bleRealTime " +
+ "lastMeasureSystemTime $lastMeasureSystemTime " +
+ "data size ${value.toUByteArray().asList().subList(16, value.size).size}"
+ )
+
value.toUByteArray().asList().subList(16, value.size)
} else {
@@ -116,7 +122,7 @@ fun getAccelerometerHistory(
nextPackageDataCount = value.get2byteUIntAt(2)
resultPackage.addAll(
- temperatureDataArray.chunked(2).map {
+ packageDataArray.chunked(2).map {
it.toUByteArray().toByteArray().get2byteShortAt().toFloat()
}.toMutableList()
)
diff --git a/app/src/main/java/llc/arma/ble/data/GetAccelerometerRealtimeData.kt b/app/src/main/java/llc/arma/ble/data/GetAccelerometerRealtimeData.kt
index e8d68b1..8062a65 100644
--- a/app/src/main/java/llc/arma/ble/data/GetAccelerometerRealtimeData.kt
+++ b/app/src/main/java/llc/arma/ble/data/GetAccelerometerRealtimeData.kt
@@ -1,6 +1,7 @@
package llc.arma.ble.data
import android.app.Application
+import android.util.Log
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow