Browse Source

算法更新

develop
白凤吉 2 months ago
parent
commit
84187ebecc
  1. 1
      app/src/main/AndroidManifest.xml
  2. 1
      app/src/main/java/com/iflytop/profilometer/MainActivity.java
  3. 6
      app/src/main/java/com/iflytop/profilometer/api/ble/BleApi.java
  4. 47
      app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java
  5. 5
      app/src/main/java/com/iflytop/profilometer/core/bluetooth/BlePingManager.java
  6. 4
      app/src/main/java/com/iflytop/profilometer/service/RailProfileDrawerService.java

1
app/src/main/AndroidManifest.xml

@ -26,6 +26,7 @@
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:screenOrientation="portrait"
android:exported="true"> android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />

1
app/src/main/java/com/iflytop/profilometer/MainActivity.java

@ -3,6 +3,7 @@ package com.iflytop.profilometer;
import android.Manifest; import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;

6
app/src/main/java/com/iflytop/profilometer/api/ble/BleApi.java

@ -61,10 +61,10 @@ public class BleApi {
BleWebsocketManager.getInstance().stopWsPush(); BleWebsocketManager.getInstance().stopWsPush();
BleManager.getInstance().stopScan();//连接后停止扫描 BleManager.getInstance().stopScan();//连接后停止扫描
boolean connect = BleManager.getInstance().connectToDeviceSync(mac); boolean connect = BleManager.getInstance().connectToDeviceSync(mac);
// BlePingManager.getInstance().startPing();
if (connect) { if (connect) {
BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver();
bleDeviceDriver.stopSampling(); bleDeviceDriver.stopSampling();
BlePingManager.getInstance().startPing();
return Result.success(); return Result.success();
} else { } else {
throw new RuntimeException(); throw new RuntimeException();
@ -72,7 +72,7 @@ public class BleApi {
} catch (Exception e) { } catch (Exception e) {
BleWebsocketManager.getInstance().startWsPush();//链接失败后继续扫描并推送 BleWebsocketManager.getInstance().startWsPush();//链接失败后继续扫描并推送
BleManager.getInstance().startScan(); BleManager.getInstance().startScan();
// BlePingManager.getInstance().stopPing();
BlePingManager.getInstance().stopPing();
Log.e(TAG, "链接蓝牙设备失败", e); Log.e(TAG, "链接蓝牙设备失败", e);
return Result.failed("链接蓝牙设备失败"); return Result.failed("链接蓝牙设备失败");
} }
@ -87,7 +87,7 @@ public class BleApi {
bleDeviceDriver.stopSampling(); bleDeviceDriver.stopSampling();
BleManager.getInstance().disconnect(); BleManager.getInstance().disconnect();
// BlePingManager.getInstance().stopPing();
BlePingManager.getInstance().stopPing();
BleManager.getInstance().startScan();//断开连接后开始扫描 BleManager.getInstance().startScan();//断开连接后开始扫描
BleWebsocketManager.getInstance().startWsPush(); BleWebsocketManager.getInstance().startWsPush();
return Result.success(); return Result.success();

47
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.ShapeDeviationCalculator2;
import com.iflytop.profilometer.common.utils.UniformShapeSamplerUtil; import com.iflytop.profilometer.common.utils.UniformShapeSamplerUtil;
import com.iflytop.profilometer.core.bluetooth.BleDeviceDriver; 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.ProfilometerRecorder;
import com.iflytop.profilometer.core.migration.algo.type.DeviceProfile; import com.iflytop.profilometer.core.migration.algo.type.DeviceProfile;
import com.iflytop.profilometer.core.migration.algo.type.RailProfileMeasureTaskStatus; import com.iflytop.profilometer.core.migration.algo.type.RailProfileMeasureTaskStatus;
@ -47,18 +48,23 @@ public class MeasureApi {
* 开始测量 * 开始测量
*/ */
public String start() { 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(); return Result.success();
} }
@ -66,12 +72,17 @@ public class MeasureApi {
* 停止测量 * 停止测量
*/ */
public String stop() { 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(); return Result.success();
} }

5
app/src/main/java/com/iflytop/profilometer/core/bluetooth/BlePingManager.java

@ -42,10 +42,7 @@ public class BlePingManager {
stopPing(); stopPing();
scheduledTask = scheduler.scheduleWithFixedDelay(() -> { scheduledTask = scheduler.scheduleWithFixedDelay(() -> {
BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver(); BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver();
TPMIPacket packet = bleDeviceDriver.ping();
if(packet != null){
Log.i("123","123");
}
bleDeviceDriver.ping();
}, 0, 1000, TimeUnit.MILLISECONDS); }, 0, 1000, TimeUnit.MILLISECONDS);
} }

4
app/src/main/java/com/iflytop/profilometer/service/RailProfileDrawerService.java

@ -1,5 +1,6 @@
package com.iflytop.profilometer.service; 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.ProfilometerPulleyPointPreProcesser;
import com.iflytop.profilometer.core.migration.algo.ProfilometerRecorder; import com.iflytop.profilometer.core.migration.algo.ProfilometerRecorder;
import com.iflytop.profilometer.core.migration.algo.type.MeasureSide; import com.iflytop.profilometer.core.migration.algo.type.MeasureSide;
@ -175,6 +176,9 @@ public class RailProfileDrawerService implements ProfilometerDrawerListener {
map.put("data", RailProfileMeasureTaskEvent.FINISH_RECORD); map.put("data", RailProfileMeasureTaskEvent.FINISH_RECORD);
WebSocketManager.send(JSONUtil.toJsonStr(map)); WebSocketManager.send(JSONUtil.toJsonStr(map));
BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver();
bleDeviceDriver.stopSampling();
var report = ProfilometerPulleyPointPreProcesser.processRecord( var report = ProfilometerPulleyPointPreProcesser.processRecord(
profilometerRecorder.getConfig(), profilometerRecorder.getConfig(),
profilometerRecorder.getDeviceProfile(), profilometerRecorder.getDeviceProfile(),

Loading…
Cancel
Save