From 84187ebecc424ae90ad41eedb6b053c96eeafcfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Sun, 8 Jun 2025 09:36:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=97=E6=B3=95=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 1 + .../com/iflytop/profilometer/MainActivity.java | 1 + .../com/iflytop/profilometer/api/ble/BleApi.java | 6 +-- .../profilometer/api/measure/MeasureApi.java | 47 +++++++++++++--------- .../core/bluetooth/BlePingManager.java | 5 +-- .../service/RailProfileDrawerService.java | 4 ++ 6 files changed, 39 insertions(+), 25 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9f8e67b..aa6f427 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,6 +26,7 @@ diff --git a/app/src/main/java/com/iflytop/profilometer/MainActivity.java b/app/src/main/java/com/iflytop/profilometer/MainActivity.java index 8dd2d4e..8d26066 100644 --- a/app/src/main/java/com/iflytop/profilometer/MainActivity.java +++ b/app/src/main/java/com/iflytop/profilometer/MainActivity.java @@ -3,6 +3,7 @@ package com.iflytop.profilometer; import android.Manifest; import android.annotation.SuppressLint; import android.content.Intent; +import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; diff --git a/app/src/main/java/com/iflytop/profilometer/api/ble/BleApi.java b/app/src/main/java/com/iflytop/profilometer/api/ble/BleApi.java index edbe394..69365af 100644 --- a/app/src/main/java/com/iflytop/profilometer/api/ble/BleApi.java +++ b/app/src/main/java/com/iflytop/profilometer/api/ble/BleApi.java @@ -61,10 +61,10 @@ public class BleApi { BleWebsocketManager.getInstance().stopWsPush(); BleManager.getInstance().stopScan();//连接后停止扫描 boolean connect = BleManager.getInstance().connectToDeviceSync(mac); -// BlePingManager.getInstance().startPing(); if (connect) { BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); bleDeviceDriver.stopSampling(); + BlePingManager.getInstance().startPing(); return Result.success(); } else { throw new RuntimeException(); @@ -72,7 +72,7 @@ public class BleApi { } catch (Exception e) { BleWebsocketManager.getInstance().startWsPush();//链接失败后继续扫描并推送 BleManager.getInstance().startScan(); -// BlePingManager.getInstance().stopPing(); + BlePingManager.getInstance().stopPing(); Log.e(TAG, "链接蓝牙设备失败", e); return Result.failed("链接蓝牙设备失败"); } @@ -87,7 +87,7 @@ public class BleApi { bleDeviceDriver.stopSampling(); BleManager.getInstance().disconnect(); -// BlePingManager.getInstance().stopPing(); + BlePingManager.getInstance().stopPing(); BleManager.getInstance().startScan();//断开连接后开始扫描 BleWebsocketManager.getInstance().startWsPush(); return Result.success(); diff --git a/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java b/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java index 2448609..cdad20b 100644 --- a/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java +++ b/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java @@ -8,6 +8,7 @@ import com.iflytop.profilometer.common.utils.ImageTemplateAlignUtil; import com.iflytop.profilometer.common.utils.ShapeDeviationCalculator2; import com.iflytop.profilometer.common.utils.UniformShapeSamplerUtil; import com.iflytop.profilometer.core.bluetooth.BleDeviceDriver; +import com.iflytop.profilometer.core.bluetooth.BlePingManager; import com.iflytop.profilometer.core.migration.algo.ProfilometerRecorder; import com.iflytop.profilometer.core.migration.algo.type.DeviceProfile; import com.iflytop.profilometer.core.migration.algo.type.RailProfileMeasureTaskStatus; @@ -47,18 +48,23 @@ public class MeasureApi { * 开始测量 */ public String start() { - RailProfileMeasureTaskState taskState = SystemService.getInstance().getTaskState(); - taskState.reset(); - taskState.setTaskStatus(RailProfileMeasureTaskStatus.WAITING_FOR_RECORD_THE_1ST_SIDE); - - RailProfileDrawerService railProfileDrawerService = SystemService.getInstance().getRailProfileDrawerService(); - ProfilometerRecorder profilometerRecorder = railProfileDrawerService.getProfilometerRecorder(); - - BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); - DeviceAppearance appearance = bleDeviceDriver.getDeviceAppearance(); - - profilometerRecorder.startRecord(new DeviceProfile(appearance.arm1Length, appearance.arm2Length, appearance.pulleyRadius, appearance.profilometerHight)); - bleDeviceDriver.startSampling(); + try{ + BlePingManager.getInstance().stopPing(); + RailProfileMeasureTaskState taskState = SystemService.getInstance().getTaskState(); + taskState.reset(); + taskState.setTaskStatus(RailProfileMeasureTaskStatus.WAITING_FOR_RECORD_THE_1ST_SIDE); + + RailProfileDrawerService railProfileDrawerService = SystemService.getInstance().getRailProfileDrawerService(); + ProfilometerRecorder profilometerRecorder = railProfileDrawerService.getProfilometerRecorder(); + + BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); + DeviceAppearance appearance = bleDeviceDriver.getDeviceAppearance(); + + profilometerRecorder.startRecord(new DeviceProfile(appearance.arm1Length, appearance.arm2Length, appearance.pulleyRadius, appearance.profilometerHight)); + bleDeviceDriver.startSampling(); + } catch (Exception e) { + BlePingManager.getInstance().startPing(); + } return Result.success(); } @@ -66,12 +72,17 @@ public class MeasureApi { * 停止测量 */ public String stop() { - RailProfileDrawerService railProfileDrawerService = SystemService.getInstance().getRailProfileDrawerService(); - ProfilometerRecorder profilometerRecorder = railProfileDrawerService.getProfilometerRecorder(); - profilometerRecorder.stopRecord(); - - BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); - bleDeviceDriver.stopSampling(); + try{ + BlePingManager.getInstance().startPing(); + RailProfileDrawerService railProfileDrawerService = SystemService.getInstance().getRailProfileDrawerService(); + ProfilometerRecorder profilometerRecorder = railProfileDrawerService.getProfilometerRecorder(); + profilometerRecorder.stopRecord(); + + BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); + bleDeviceDriver.stopSampling(); + } catch (Exception e) { + BlePingManager.getInstance().stopPing(); + } return Result.success(); } diff --git a/app/src/main/java/com/iflytop/profilometer/core/bluetooth/BlePingManager.java b/app/src/main/java/com/iflytop/profilometer/core/bluetooth/BlePingManager.java index 9b91021..c2d1e50 100644 --- a/app/src/main/java/com/iflytop/profilometer/core/bluetooth/BlePingManager.java +++ b/app/src/main/java/com/iflytop/profilometer/core/bluetooth/BlePingManager.java @@ -42,10 +42,7 @@ public class BlePingManager { stopPing(); scheduledTask = scheduler.scheduleWithFixedDelay(() -> { BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); - TPMIPacket packet = bleDeviceDriver.ping(); - if(packet != null){ - Log.i("123","123"); - } + bleDeviceDriver.ping(); }, 0, 1000, TimeUnit.MILLISECONDS); } diff --git a/app/src/main/java/com/iflytop/profilometer/service/RailProfileDrawerService.java b/app/src/main/java/com/iflytop/profilometer/service/RailProfileDrawerService.java index c1a19d6..964718c 100644 --- a/app/src/main/java/com/iflytop/profilometer/service/RailProfileDrawerService.java +++ b/app/src/main/java/com/iflytop/profilometer/service/RailProfileDrawerService.java @@ -1,5 +1,6 @@ package com.iflytop.profilometer.service; +import com.iflytop.profilometer.core.bluetooth.BleDeviceDriver; import com.iflytop.profilometer.core.migration.algo.ProfilometerPulleyPointPreProcesser; import com.iflytop.profilometer.core.migration.algo.ProfilometerRecorder; import com.iflytop.profilometer.core.migration.algo.type.MeasureSide; @@ -175,6 +176,9 @@ public class RailProfileDrawerService implements ProfilometerDrawerListener { map.put("data", RailProfileMeasureTaskEvent.FINISH_RECORD); WebSocketManager.send(JSONUtil.toJsonStr(map)); + BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); + bleDeviceDriver.stopSampling(); + var report = ProfilometerPulleyPointPreProcesser.processRecord( profilometerRecorder.getConfig(), profilometerRecorder.getDeviceProfile(),