ble api update

This commit is contained in:
Vineyro 2024-11-15 17:01:42 +07:00
parent a2cc797320
commit 2d8ec33c6c
9 changed files with 97 additions and 18 deletions

View File

@ -4,6 +4,14 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2024-11-15T06:34:28.043049200Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="PhysicalDevice" identifier="serial=55381e0a" />
</handle>
</Target>
</DropdownSelection>
<DialogSelection />
</SelectionState>
</selectionStates>
</component>

View File

@ -4,6 +4,7 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">

View File

@ -1,12 +1,39 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="ComposePreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="ComposePreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="ComposePreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="ComposePreviewNotSupportedInUnitTestFiles" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="GlancePreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="GlancePreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="GlancePreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="GlancePreviewNotSupportedInUnitTestFiles" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewAnnotationInFunctionWithParameters" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewApiLevelMustBeValid" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewDeviceShouldUseNewSpec" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -19,8 +19,8 @@ android {
applicationId "llc.arma.ble"
minSdk 26
targetSdk 34
versionCode 44
versionName "1.4.16"
versionCode 46
versionName "1.4.18"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {

View File

@ -119,7 +119,13 @@ class BleListViewModel @Inject constructor(
state: BleListContract.State,
event: BleListContract.Event.OnMacFilterChanged
) {
setState {
copy(bleFilter = state.bleFilter.copy(mac = event.mac))
}
viewModelScope.launch {
saveFilter(
bleFilter = state.bleFilter.copy(mac = event.mac)
)
@ -130,33 +136,51 @@ class BleListViewModel @Inject constructor(
state: BleListContract.State,
event: BleListContract.Event.OnSortOrderChanged
) {
setState {
copy(bleFilter = state.bleFilter.copy(sortOrder = event.order))
}
viewModelScope.launch {
saveFilter(
bleFilter = state.bleFilter.copy(sortOrder = event.order)
)
}
}
private fun reduce(
state: BleListContract.State,
event: BleListContract.Event.OnSortFieldChanged
) {
setState {
copy(bleFilter = state.bleFilter.copy(sortField = event.field))
}
viewModelScope.launch {
saveFilter(
bleFilter = state.bleFilter.copy(sortField = event.field)
)
}
}
private fun reduce(
state: BleListContract.State,
event: BleListContract.Event.OnNameFilterChanged
) {
setState {
copy(bleFilter = state.bleFilter.copy(name = event.name))
}
viewModelScope.launch {
saveFilter(
bleFilter = state.bleFilter.copy(name = event.name)
)
}
}
private fun reduce(
@ -164,6 +188,10 @@ class BleListViewModel @Inject constructor(
event: BleListContract.Event.OnResetFilter
) {
setState {
copy(bleFilter = BleFilter())
}
viewModelScope.launch {
saveFilter(BleFilter())
@ -180,33 +208,43 @@ class BleListViewModel @Inject constructor(
state: BleListContract.State,
event: BleListContract.Event.OnRssiRangeChanged
) {
viewModelScope.launch {
saveFilter(
bleFilter = state.bleFilter.copy(rssi = event.rssi)
)
}
}
private fun reduce(
state: BleListContract.State,
event: BleListContract.Event.OnBatteryRangeChanged
) {
viewModelScope.launch {
saveFilter(
bleFilter = state.bleFilter.copy(battery = event.battery)
)
}
}
private fun reduce(
state: BleListContract.State,
event: BleListContract.Event.OnTypeChanged
) {
setState {
copy(bleFilter = state.bleFilter.copy(bleType = event.type))
}
viewModelScope.launch {
saveFilter(
bleFilter = state.bleFilter.copy(bleType = event.type)
)
}
}
private fun reduce(

View File

@ -48,7 +48,7 @@ fun IntervalEdit(
}
val maxInterval = 10 * 24 * 60 * 60 * 1000
val minInterval = 10_000
val minInterval = 1_000
if(value > maxInterval){
value = maxInterval

View File

@ -348,15 +348,15 @@ class BleRepositoryImpl @Inject constructor(
onSuccess = { it }
)
/*characteristic.write(DataByteArray.from(2, 0, 0, 0))
//characteristic.write(DataByteArray.from(2, 0, 0, 0, 0))
val readTimeout = characteristic.read().value.let {
if(it.size == 4){
it.get4byteUIntAt(0).toLong()
} else {
0
}
}*/
//val readTimeout = characteristic.read().value.let {
// if(it.size == 4){
// it.get4byteUIntAt(0).toLong()
// } else {
// 0
// }
//}
return Result.success(
Ble.Host.HostState(

View File

@ -94,11 +94,19 @@ fun readHostHistory(
var tableSize = value.get2byteUIntAt(0)
//Чтение без удаления
characteristic.write(DataByteArray.from(1, 0, 0, -2, -1))
val firstTableHeader = characteristic.read().value.asList()
firstTablePackage.addAll(firstTableHeader.subList(4, firstTableHeader.size))
secondTablePackage.addAll(
readTable(characteristic, byteArrayOf(6), byteArrayOf(6))
)
firstTablePackage.addAll(
readTable(
characteristic,
//Чтение без удаления
byteArrayOf(1, 0, 0, -1, -1),
byteArrayOf(5),
byteArrayOf(5)
)
)
@ -110,9 +118,7 @@ fun readHostHistory(
val bleRealTime = firstTablePackage.toByteArray().get4byteUIntAt(8).toLong()
val lastMeasureSystemTime = System.currentTimeMillis() - ((bleRealTime - bleLastMeasureTime) * 1_000)
secondTablePackage.addAll(
readTable(characteristic, byteArrayOf(6), byteArrayOf(6))
)
Log.i("BLEK-LOG", "Вермя последнего: ${bleLastMeasureTime} Реальное время: ${bleRealTime}")
fun getBleIdIndex(bytes: ByteArray): UInt{