diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..b007d28 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..b007d28 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..4515aa3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..b007d28 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..4515aa3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e1c3276 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..b007d28 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..4515aa3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e1c3276 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..b007d28 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..4515aa3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e1c3276 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt b/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt index 7e3a01d..03ffce8 100644 --- a/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt @@ -11,4 +11,14 @@ val data = response.split(" ") return data[2].toInt(16) * 65536 + data[3].toInt(16) * 256 + data[4].toInt(16) +} + +/** + * 返回值校验 + * */ +fun ByteArray.check(): Boolean { + if (this.size != 21) { + return false + } + return first().toInt() == 97 && last().toInt() == 32 } \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..b007d28 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..4515aa3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e1c3276 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt b/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt index 7e3a01d..03ffce8 100644 --- a/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt @@ -11,4 +11,14 @@ val data = response.split(" ") return data[2].toInt(16) * 65536 + data[3].toInt(16) * 256 + data[4].toInt(16) +} + +/** + * 返回值校验 + * */ +fun ByteArray.check(): Boolean { + if (this.size != 21) { + return false + } + return first().toInt() == 97 && last().toInt() == 32 } \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt b/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt index 5949c10..d278fdd 100644 --- a/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt +++ b/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt @@ -47,7 +47,7 @@ const val PERMISSIONS_CODE = 999 //海康摄像头参数 - const val HK_NET_IP = "192.168.43.121" + const val HK_NET_IP = "192.168.8.1" const val HK_NET_PORT = "8000" const val HK_NET_USERNAME = "admin" const val HK_NET_PASSWORD = "casic203" diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..b007d28 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..4515aa3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e1c3276 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt b/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt index 7e3a01d..03ffce8 100644 --- a/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt @@ -11,4 +11,14 @@ val data = response.split(" ") return data[2].toInt(16) * 65536 + data[3].toInt(16) * 256 + data[4].toInt(16) +} + +/** + * 返回值校验 + * */ +fun ByteArray.check(): Boolean { + if (this.size != 21) { + return false + } + return first().toInt() == 97 && last().toInt() == 32 } \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt b/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt index 5949c10..d278fdd 100644 --- a/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt +++ b/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt @@ -47,7 +47,7 @@ const val PERMISSIONS_CODE = 999 //海康摄像头参数 - const val HK_NET_IP = "192.168.43.121" + const val HK_NET_IP = "192.168.8.1" const val HK_NET_PORT = "8000" const val HK_NET_USERNAME = "admin" const val HK_NET_PASSWORD = "casic203" diff --git a/app/src/main/java/com/casic/endoscope/utils/ble/BleDeviceManager.kt b/app/src/main/java/com/casic/endoscope/utils/ble/BleDeviceManager.kt index 9810bd7..ae38dd1 100644 --- a/app/src/main/java/com/casic/endoscope/utils/ble/BleDeviceManager.kt +++ b/app/src/main/java/com/casic/endoscope/utils/ble/BleDeviceManager.kt @@ -106,14 +106,10 @@ private val scanCallback = object : ScanCallback() { override fun onScanResult(callbackType: Int, result: ScanResult?) { result?.apply { - if (ActivityCompat.checkSelfPermission( - context, Manifest.permission.BLUETOOTH_CONNECT - ) != PackageManager.PERMISSION_GRANTED - ) { - return - } - if (!device.name.isNullOrBlank()) { - bleDiscoveryListener.onDeviceFound(device) + if (checkConnectPermission()) { + if (!device.name.isNullOrBlank()) { + bleDiscoveryListener.onDeviceFound(device) + } } } } diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..93ec3d6 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..b007d28 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..4515aa3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..e1c3276 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt b/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt index 7e3a01d..03ffce8 100644 --- a/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt +++ b/app/src/main/java/com/casic/endoscope/extensions/ByteArray.kt @@ -11,4 +11,14 @@ val data = response.split(" ") return data[2].toInt(16) * 65536 + data[3].toInt(16) * 256 + data[4].toInt(16) +} + +/** + * 返回值校验 + * */ +fun ByteArray.check(): Boolean { + if (this.size != 21) { + return false + } + return first().toInt() == 97 && last().toInt() == 32 } \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt b/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt index 5949c10..d278fdd 100644 --- a/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt +++ b/app/src/main/java/com/casic/endoscope/utils/ProjectConstant.kt @@ -47,7 +47,7 @@ const val PERMISSIONS_CODE = 999 //海康摄像头参数 - const val HK_NET_IP = "192.168.43.121" + const val HK_NET_IP = "192.168.8.1" const val HK_NET_PORT = "8000" const val HK_NET_USERNAME = "admin" const val HK_NET_PASSWORD = "casic203" diff --git a/app/src/main/java/com/casic/endoscope/utils/ble/BleDeviceManager.kt b/app/src/main/java/com/casic/endoscope/utils/ble/BleDeviceManager.kt index 9810bd7..ae38dd1 100644 --- a/app/src/main/java/com/casic/endoscope/utils/ble/BleDeviceManager.kt +++ b/app/src/main/java/com/casic/endoscope/utils/ble/BleDeviceManager.kt @@ -106,14 +106,10 @@ private val scanCallback = object : ScanCallback() { override fun onScanResult(callbackType: Int, result: ScanResult?) { result?.apply { - if (ActivityCompat.checkSelfPermission( - context, Manifest.permission.BLUETOOTH_CONNECT - ) != PackageManager.PERMISSION_GRANTED - ) { - return - } - if (!device.name.isNullOrBlank()) { - bleDiscoveryListener.onDeviceFound(device) + if (checkConnectPermission()) { + if (!device.name.isNullOrBlank()) { + bleDiscoveryListener.onDeviceFound(device) + } } } } diff --git a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt index 90bc653..0fe757e 100644 --- a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt @@ -18,6 +18,7 @@ import com.casic.endoscope.adapter.CameraPointAdapter import com.casic.endoscope.bean.CameraPointBean import com.casic.endoscope.databinding.ActivityMainBinding +import com.casic.endoscope.extensions.check import com.casic.endoscope.extensions.convertValue import com.casic.endoscope.extensions.createHorizontalCommand import com.casic.endoscope.extensions.createImageFileDir @@ -414,6 +415,8 @@ e.printStackTrace() "设备未正常连接,无法开启预览".show(context) } + } else { + "设备登陆失败".show(context) } } else { if (!SDKGuider.sdkGuider.devPreviewGuider.RealPlay_Stop_jni(previewHandle)) { @@ -699,35 +702,40 @@ } override fun onReceiveMessage(bluetoothGatt: BluetoothGatt?, value: ByteArray) { - //解析返回值 - lifecycleScope.launch(Dispatchers.Main) { - val density = value.convertValue() - /***将值渲染到曲线图****************************************************************/ + //[97, 97, 32, 48, 49, 32, 48, 48, 32, 48, 48, 32, 48, 48, 32, 48, 100, 32, 53, 53, 32] + if (value.check()) { + //解析返回值 + lifecycleScope.launch(Dispatchers.Main) { + val density = value.convertValue() + /***将值渲染到曲线图****************************************************************/ - //时间作为X轴 - xAxisLabels.add(System.currentTimeMillis().timestampToTime()) + //时间作为X轴 + xAxisLabels.add(System.currentTimeMillis().timestampToTime()) - //浓度作为Y轴 - val entry = Entry(i++.toFloat(), density.toFloat(), "浓度") - densityEntries.add(entry) + //浓度作为Y轴 + val entry = Entry(i++.toFloat(), density.toFloat(), "浓度") + densityEntries.add(entry) - //转化为控件需要的Data - dataSet = LineDataSet(densityEntries, "") - dataSet.setDrawCircles(false) - dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER - //线条颜色 - dataSet.color = Color.RED - lineDataSets.add(dataSet) - lineData = LineData(lineDataSets) - lineData.setDrawValues(false) + //转化为控件需要的Data + dataSet = LineDataSet(densityEntries, "") + dataSet.setDrawCircles(false) + dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER + //线条颜色 + dataSet.color = Color.RED + lineDataSets.add(dataSet) + lineData = LineData(lineDataSets) + lineData.setDrawValues(false) - //解决折线点太多导致卡顿问题 - if (lineData.entryCount > 50) { - lineData.removeDataSet(0) - lineData.notifyDataChanged() + //解决折线点太多导致卡顿问题 + if (lineData.entryCount > 50) { + lineData.removeDataSet(0) + lineData.notifyDataChanged() + } + binding.lineChart.data = lineData + binding.lineChart.invalidate() } - binding.lineChart.data = lineData - binding.lineChart.invalidate() + } else { + Log.d(kTag, "onReceiveMessage: 数据校验失败") } }