ble api update
This commit is contained in:
parent
a2cc797320
commit
2d8ec33c6c
|
|
@ -4,6 +4,14 @@
|
||||||
<selectionStates>
|
<selectionStates>
|
||||||
<SelectionState runConfigName="app">
|
<SelectionState runConfigName="app">
|
||||||
<option name="selectionMode" value="DROPDOWN" />
|
<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>
|
</SelectionState>
|
||||||
</selectionStates>
|
</selectionStates>
|
||||||
</component>
|
</component>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
|
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,39 @@
|
||||||
<component name="InspectionProjectProfileManager">
|
<component name="InspectionProjectProfileManager">
|
||||||
<profile version="1.0">
|
<profile version="1.0">
|
||||||
<option name="myName" value="Project Default" />
|
<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">
|
<inspection_tool class="PreviewAnnotationInFunctionWithParameters" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
<option name="composableFile" value="true" />
|
<option name="composableFile" value="true" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
<inspection_tool class="PreviewApiLevelMustBeValid" enabled="true" level="ERROR" enabled_by_default="true">
|
<inspection_tool class="PreviewApiLevelMustBeValid" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
<option name="composableFile" value="true" />
|
<option name="composableFile" value="true" />
|
||||||
</inspection_tool>
|
</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">
|
<inspection_tool class="PreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
<option name="composableFile" value="true" />
|
<option name="composableFile" value="true" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<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" />
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ android {
|
||||||
applicationId "llc.arma.ble"
|
applicationId "llc.arma.ble"
|
||||||
minSdk 26
|
minSdk 26
|
||||||
targetSdk 34
|
targetSdk 34
|
||||||
versionCode 44
|
versionCode 46
|
||||||
versionName "1.4.16"
|
versionName "1.4.18"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables {
|
vectorDrawables {
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,13 @@ class BleListViewModel @Inject constructor(
|
||||||
state: BleListContract.State,
|
state: BleListContract.State,
|
||||||
event: BleListContract.Event.OnMacFilterChanged
|
event: BleListContract.Event.OnMacFilterChanged
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
setState {
|
||||||
|
copy(bleFilter = state.bleFilter.copy(mac = event.mac))
|
||||||
|
}
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
|
|
||||||
saveFilter(
|
saveFilter(
|
||||||
bleFilter = state.bleFilter.copy(mac = event.mac)
|
bleFilter = state.bleFilter.copy(mac = event.mac)
|
||||||
)
|
)
|
||||||
|
|
@ -130,33 +136,51 @@ class BleListViewModel @Inject constructor(
|
||||||
state: BleListContract.State,
|
state: BleListContract.State,
|
||||||
event: BleListContract.Event.OnSortOrderChanged
|
event: BleListContract.Event.OnSortOrderChanged
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
setState {
|
||||||
|
copy(bleFilter = state.bleFilter.copy(sortOrder = event.order))
|
||||||
|
}
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
saveFilter(
|
saveFilter(
|
||||||
bleFilter = state.bleFilter.copy(sortOrder = event.order)
|
bleFilter = state.bleFilter.copy(sortOrder = event.order)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reduce(
|
private fun reduce(
|
||||||
state: BleListContract.State,
|
state: BleListContract.State,
|
||||||
event: BleListContract.Event.OnSortFieldChanged
|
event: BleListContract.Event.OnSortFieldChanged
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
setState {
|
||||||
|
copy(bleFilter = state.bleFilter.copy(sortField = event.field))
|
||||||
|
}
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
saveFilter(
|
saveFilter(
|
||||||
bleFilter = state.bleFilter.copy(sortField = event.field)
|
bleFilter = state.bleFilter.copy(sortField = event.field)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reduce(
|
private fun reduce(
|
||||||
state: BleListContract.State,
|
state: BleListContract.State,
|
||||||
event: BleListContract.Event.OnNameFilterChanged
|
event: BleListContract.Event.OnNameFilterChanged
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
setState {
|
||||||
|
copy(bleFilter = state.bleFilter.copy(name = event.name))
|
||||||
|
}
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
saveFilter(
|
saveFilter(
|
||||||
bleFilter = state.bleFilter.copy(name = event.name)
|
bleFilter = state.bleFilter.copy(name = event.name)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reduce(
|
private fun reduce(
|
||||||
|
|
@ -164,6 +188,10 @@ class BleListViewModel @Inject constructor(
|
||||||
event: BleListContract.Event.OnResetFilter
|
event: BleListContract.Event.OnResetFilter
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
setState {
|
||||||
|
copy(bleFilter = BleFilter())
|
||||||
|
}
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
|
|
||||||
saveFilter(BleFilter())
|
saveFilter(BleFilter())
|
||||||
|
|
@ -180,33 +208,43 @@ class BleListViewModel @Inject constructor(
|
||||||
state: BleListContract.State,
|
state: BleListContract.State,
|
||||||
event: BleListContract.Event.OnRssiRangeChanged
|
event: BleListContract.Event.OnRssiRangeChanged
|
||||||
) {
|
) {
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
saveFilter(
|
saveFilter(
|
||||||
bleFilter = state.bleFilter.copy(rssi = event.rssi)
|
bleFilter = state.bleFilter.copy(rssi = event.rssi)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reduce(
|
private fun reduce(
|
||||||
state: BleListContract.State,
|
state: BleListContract.State,
|
||||||
event: BleListContract.Event.OnBatteryRangeChanged
|
event: BleListContract.Event.OnBatteryRangeChanged
|
||||||
) {
|
) {
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
saveFilter(
|
saveFilter(
|
||||||
bleFilter = state.bleFilter.copy(battery = event.battery)
|
bleFilter = state.bleFilter.copy(battery = event.battery)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reduce(
|
private fun reduce(
|
||||||
state: BleListContract.State,
|
state: BleListContract.State,
|
||||||
event: BleListContract.Event.OnTypeChanged
|
event: BleListContract.Event.OnTypeChanged
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
setState {
|
||||||
|
copy(bleFilter = state.bleFilter.copy(bleType = event.type))
|
||||||
|
}
|
||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
saveFilter(
|
saveFilter(
|
||||||
bleFilter = state.bleFilter.copy(bleType = event.type)
|
bleFilter = state.bleFilter.copy(bleType = event.type)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reduce(
|
private fun reduce(
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ fun IntervalEdit(
|
||||||
}
|
}
|
||||||
|
|
||||||
val maxInterval = 10 * 24 * 60 * 60 * 1000
|
val maxInterval = 10 * 24 * 60 * 60 * 1000
|
||||||
val minInterval = 10_000
|
val minInterval = 1_000
|
||||||
|
|
||||||
if(value > maxInterval){
|
if(value > maxInterval){
|
||||||
value = maxInterval
|
value = maxInterval
|
||||||
|
|
|
||||||
|
|
@ -348,15 +348,15 @@ class BleRepositoryImpl @Inject constructor(
|
||||||
onSuccess = { it }
|
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 {
|
//val readTimeout = characteristic.read().value.let {
|
||||||
if(it.size == 4){
|
// if(it.size == 4){
|
||||||
it.get4byteUIntAt(0).toLong()
|
// it.get4byteUIntAt(0).toLong()
|
||||||
} else {
|
// } else {
|
||||||
0
|
// 0
|
||||||
}
|
// }
|
||||||
}*/
|
//}
|
||||||
|
|
||||||
return Result.success(
|
return Result.success(
|
||||||
Ble.Host.HostState(
|
Ble.Host.HostState(
|
||||||
|
|
|
||||||
|
|
@ -94,11 +94,19 @@ fun readHostHistory(
|
||||||
|
|
||||||
var tableSize = value.get2byteUIntAt(0)
|
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(
|
firstTablePackage.addAll(
|
||||||
readTable(
|
readTable(
|
||||||
characteristic,
|
characteristic,
|
||||||
//Чтение без удаления
|
byteArrayOf(5),
|
||||||
byteArrayOf(1, 0, 0, -1, -1),
|
|
||||||
byteArrayOf(5)
|
byteArrayOf(5)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
@ -110,9 +118,7 @@ fun readHostHistory(
|
||||||
val bleRealTime = firstTablePackage.toByteArray().get4byteUIntAt(8).toLong()
|
val bleRealTime = firstTablePackage.toByteArray().get4byteUIntAt(8).toLong()
|
||||||
val lastMeasureSystemTime = System.currentTimeMillis() - ((bleRealTime - bleLastMeasureTime) * 1_000)
|
val lastMeasureSystemTime = System.currentTimeMillis() - ((bleRealTime - bleLastMeasureTime) * 1_000)
|
||||||
|
|
||||||
secondTablePackage.addAll(
|
Log.i("BLEK-LOG", "Вермя последнего: ${bleLastMeasureTime} Реальное время: ${bleRealTime}")
|
||||||
readTable(characteristic, byteArrayOf(6), byteArrayOf(6))
|
|
||||||
)
|
|
||||||
|
|
||||||
fun getBleIdIndex(bytes: ByteArray): UInt{
|
fun getBleIdIndex(bytes: ByteArray): UInt{
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue