|
@ -1,7 +1,9 @@ |
|
|
package com.iflytop.profilometer.api.measure; |
|
|
package com.iflytop.profilometer.api.measure; |
|
|
|
|
|
|
|
|
import android.content.Context; |
|
|
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.enums.SyncStatus; |
|
|
import com.iflytop.profilometer.common.result.Result; |
|
|
import com.iflytop.profilometer.common.result.Result; |
|
|
import com.iflytop.profilometer.common.utils.ImageTemplateAlignUtil; |
|
|
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.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.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.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.MeasureSide; |
|
|
import com.iflytop.profilometer.core.migration.algo.type.RailProfileMeasureTaskStatus; |
|
|
import com.iflytop.profilometer.core.migration.algo.type.RailProfileMeasureTaskStatus; |
|
|
import com.iflytop.profilometer.core.migration.algo.type.XYPoint; |
|
|
import com.iflytop.profilometer.core.migration.algo.type.XYPoint; |
|
|
import com.iflytop.profilometer.core.migration.type.DeviceAppearance; |
|
|
import com.iflytop.profilometer.core.migration.type.DeviceAppearance; |
|
@ -48,7 +52,7 @@ public class MeasureApi { |
|
|
* 开始测量 |
|
|
* 开始测量 |
|
|
*/ |
|
|
*/ |
|
|
public String start() { |
|
|
public String start() { |
|
|
try{ |
|
|
|
|
|
|
|
|
try { |
|
|
BlePingManager.getInstance().stopPing(); |
|
|
BlePingManager.getInstance().stopPing(); |
|
|
RailProfileMeasureTaskState taskState = SystemService.getInstance().getTaskState(); |
|
|
RailProfileMeasureTaskState taskState = SystemService.getInstance().getTaskState(); |
|
|
taskState.reset(); |
|
|
taskState.reset(); |
|
@ -72,7 +76,7 @@ public class MeasureApi { |
|
|
* 停止测量 |
|
|
* 停止测量 |
|
|
*/ |
|
|
*/ |
|
|
public String stop() { |
|
|
public String stop() { |
|
|
try{ |
|
|
|
|
|
|
|
|
try { |
|
|
BlePingManager.getInstance().startPing(); |
|
|
BlePingManager.getInstance().startPing(); |
|
|
RailProfileDrawerService railProfileDrawerService = SystemService.getInstance().getRailProfileDrawerService(); |
|
|
RailProfileDrawerService railProfileDrawerService = SystemService.getInstance().getRailProfileDrawerService(); |
|
|
ProfilometerRecorder profilometerRecorder = railProfileDrawerService.getProfilometerRecorder(); |
|
|
ProfilometerRecorder profilometerRecorder = railProfileDrawerService.getProfilometerRecorder(); |
|
@ -94,7 +98,7 @@ public class MeasureApi { |
|
|
ProfileRecordPointSetDao profileRecordPointSetDao = new ProfileRecordPointSetDao(context); |
|
|
ProfileRecordPointSetDao profileRecordPointSetDao = new ProfileRecordPointSetDao(context); |
|
|
ProfileRecordDescription previous = profileRecordDao.getTodayFirstProfileRecord(); |
|
|
ProfileRecordDescription previous = profileRecordDao.getTodayFirstProfileRecord(); |
|
|
int number = 1; |
|
|
int number = 1; |
|
|
if(previous != null){ |
|
|
|
|
|
|
|
|
if (previous != null) { |
|
|
number = previous.getTodayNumber() + 1; |
|
|
number = previous.getTodayNumber() + 1; |
|
|
} |
|
|
} |
|
|
ProfileRecordDescription profileRecordDescription = new ProfileRecordDescription(); |
|
|
ProfileRecordDescription profileRecordDescription = new ProfileRecordDescription(); |
|
@ -189,5 +193,41 @@ public class MeasureApi { |
|
|
return Result.success(xyPointList); |
|
|
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); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |