Browse Source

fix:最终测量结果通过接口获取

develop
白凤吉 2 months ago
parent
commit
b4e6143b9b
  1. 4
      app/build.gradle
  2. 40
      app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java
  3. 8
      app/src/main/java/com/iflytop/profilometer/api/measure/MeasureRoutes.kt
  4. 68
      app/src/main/java/com/iflytop/profilometer/service/RailProfileDrawerService.java

4
app/build.gradle

@ -14,9 +14,9 @@ android {
minSdk 26
targetSdk 35
//
versionCode 26
versionCode 27
//
versionName "1.1.26"
versionName "1.1.27"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

40
app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java

@ -1,7 +1,9 @@
package com.iflytop.profilometer.api.measure;
import android.content.Context;
import android.util.Log;
import com.iflytop.profilometer.common.constant.LogTag;
import com.iflytop.profilometer.common.enums.SyncStatus;
import com.iflytop.profilometer.common.result.Result;
import com.iflytop.profilometer.common.utils.ImageTemplateAlignUtil;
@ -9,8 +11,10 @@ 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.ProfilometerPulleyPointPreProcesser;
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.MeasureSide;
import com.iflytop.profilometer.core.migration.algo.type.RailProfileMeasureTaskStatus;
import com.iflytop.profilometer.core.migration.algo.type.XYPoint;
import com.iflytop.profilometer.core.migration.type.DeviceAppearance;
@ -189,5 +193,41 @@ public class MeasureApi {
return Result.success(xyPointList);
}
public String record() {
RailProfileDrawerService railProfileDrawerService = SystemService.getInstance().getRailProfileDrawerService();
RailProfileMeasureTaskState taskState = SystemService.getInstance().getTaskState();
ProfilometerRecorder profilometerRecorder = railProfileDrawerService.getProfilometerRecorder();
var report = ProfilometerPulleyPointPreProcesser.processRecord(
profilometerRecorder.getConfig(),
profilometerRecorder.getDeviceProfile(),
profilometerRecorder.getDataCache1(),
profilometerRecorder.getFirstSide(),
profilometerRecorder.getDataCache2(),
profilometerRecorder.getFirstSide().getOpposite());
if (report.outline1Side == MeasureSide.LEFT) {
taskState.setLeftPointSetList(report.outline1);
} else {
taskState.setRightPointSetList(report.outline1);
}
if (report.outline2Side == MeasureSide.LEFT) {
taskState.setLeftPointSetList(report.outline2);
} else {
taskState.setRightPointSetList(report.outline2);
}
List<XYPoint> allList = new ArrayList<>();
List<XYPoint> outline1List = new ArrayList<>(report.outline1);
List<XYPoint> outline2List = new ArrayList<>(report.outline2);
if (report.outline1Side == MeasureSide.LEFT) {
Collections.reverse(outline1List);
allList.addAll(outline1List);
allList.addAll(outline2List);
} else {
Collections.reverse(outline2List);
allList.addAll(outline2List);
allList.addAll(outline1List);
}
Log.i(LogTag.PROFILOMENTER, "本次测量一共" + allList.size() + "个点");
return Result.success(allList);
}
}

8
app/src/main/java/com/iflytop/profilometer/api/measure/MeasureRoutes.kt

@ -50,5 +50,13 @@ fun Routing.measureRoutes(context: Context) {
val jsonResponse = api.alignPointsByCatch(params["railSize"])
call.respondText(jsonResponse, ContentType.Application.Json)
}
/**
*
*/
post("/api/measure/record") {
val jsonResponse = api.record()
call.respondText(jsonResponse, ContentType.Application.Json)
}
}

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

@ -189,40 +189,40 @@ public class RailProfileDrawerService implements ProfilometerDrawerListener {
BleDeviceDriver bleDeviceDriver = SystemService.getInstance().getBleDeviceDriver();
bleDeviceDriver.stopSampling();
var report = ProfilometerPulleyPointPreProcesser.processRecord(
profilometerRecorder.getConfig(),
profilometerRecorder.getDeviceProfile(),
profilometerRecorder.getDataCache1(),
profilometerRecorder.getFirstSide(),
profilometerRecorder.getDataCache2(),
profilometerRecorder.getFirstSide().getOpposite());
if (report.outline1Side == MeasureSide.LEFT) {
taskState.setLeftPointSetList(report.outline1);
} else {
taskState.setRightPointSetList(report.outline1);
}
if (report.outline2Side == MeasureSide.LEFT) {
taskState.setLeftPointSetList(report.outline2);
} else {
taskState.setRightPointSetList(report.outline2);
}
List<XYPoint> allList = new ArrayList<>();
List<XYPoint> outline1List = new ArrayList<>(report.outline1);
List<XYPoint> outline2List = new ArrayList<>(report.outline2);
if (report.outline1Side == MeasureSide.LEFT) {
Collections.reverse(outline1List);
allList.addAll(outline1List);
allList.addAll(outline2List);
} else {
Collections.reverse(outline2List);
allList.addAll(outline2List);
allList.addAll(outline1List);
}
Log.i(LogTag.PROFILOMENTER, "本次测量一共" + allList.size() + "个点");
Map<String, Object> finishMap = new HashMap<>();
finishMap.put("type", "measure-finished");
finishMap.put("data", allList);
WebSocketManager.send(JSONUtil.toJsonStr(finishMap));
// var report = ProfilometerPulleyPointPreProcesser.processRecord(
// profilometerRecorder.getConfig(),
// profilometerRecorder.getDeviceProfile(),
// profilometerRecorder.getDataCache1(),
// profilometerRecorder.getFirstSide(),
// profilometerRecorder.getDataCache2(),
// profilometerRecorder.getFirstSide().getOpposite());
// if (report.outline1Side == MeasureSide.LEFT) {
// taskState.setLeftPointSetList(report.outline1);
// } else {
// taskState.setRightPointSetList(report.outline1);
// }
// if (report.outline2Side == MeasureSide.LEFT) {
// taskState.setLeftPointSetList(report.outline2);
// } else {
// taskState.setRightPointSetList(report.outline2);
// }
// List<XYPoint> allList = new ArrayList<>();
// List<XYPoint> outline1List = new ArrayList<>(report.outline1);
// List<XYPoint> outline2List = new ArrayList<>(report.outline2);
// if (report.outline1Side == MeasureSide.LEFT) {
// Collections.reverse(outline1List);
// allList.addAll(outline1List);
// allList.addAll(outline2List);
// } else {
// Collections.reverse(outline2List);
// allList.addAll(outline2List);
// allList.addAll(outline1List);
// }
// Log.i(LogTag.PROFILOMENTER, "本次测量一共" + allList.size() + "个点");
// Map<String, Object> finishMap = new HashMap<>();
// finishMap.put("type", "measure-finished");
// finishMap.put("data", allList);
// WebSocketManager.send(JSONUtil.toJsonStr(finishMap));
}
public RailProfileDrawerService() {

Loading…
Cancel
Save