From 36937826a6e1ed46f6467a63ccddbc6810f47d89 Mon Sep 17 00:00:00 2001 From: bxb Date: Sun, 28 May 2023 14:11:32 +0800 Subject: [PATCH] =?UTF-8?q?[sweeper-cloud]=E8=B4=B4=E8=BE=B9=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fragment/BaseSweeperTabFragment.java | 36 +++-- .../sweepercloud/fragment/SweeperFragment.kt | 20 +-- .../sweepercloud/model/SweeperTaskModel.java | 8 +- .../util/SweeperCloudTaskUtils.kt | 152 +++++++++--------- .../view/SweeperTrafficLightView.kt | 2 +- .../res/layout/sweeper_welt_map_overview.xml | 13 +- 6 files changed, 124 insertions(+), 107 deletions(-) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/BaseSweeperTabFragment.java b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/BaseSweeperTabFragment.java index 44436021f3..3cab0a8613 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/BaseSweeperTabFragment.java +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/BaseSweeperTabFragment.java @@ -44,6 +44,7 @@ import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; import com.mogo.och.common.module.manager.OCHAdasAbilityManager; +import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.sweepercloud.R; import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean; @@ -107,6 +108,7 @@ public abstract class BaseSweeperTabFragment - SweeperCloudTaskUtils.mockSendCloudTaskInfo(SweeperCloudTask.MessageType.CloudPushTask) + findViewById(R.id.btnSendTask).setOnClickListener(view -> { + SweeperCloudTaskUtils.mockSendCloudTaskInfo(SweeperCloudTask.MessageType.CloudPushTask); + UiThreadHandler.postDelayed(() -> { + debugEndSubTask(); + }, 5000); + + } + ); // 模拟 云端发送子任务确认 findViewById(R.id.btnSendSubTaskConfirm).setOnClickListener(view -> @@ -249,9 +257,11 @@ public abstract class BaseSweeperTabFragment tempData() { ArrayList results = new ArrayList<>(); - results.add(getRoute(116.41732262522, 39.974576894194)); - results.add(getRoute(116.43963532201855, 39.9752190287537)); - results.add(getRoute(116.4440910789222, 39.96469276598098)); - results.add(getRoute(116.45254030604285, 39.958762580403544)); - results.add(getRoute(116.46168616811329, 39.94668171374373)); + results.add(getRoute(112.56970669282785, 26.8175674285121)); + results.add(getRoute(112.57154905962457, 26.81762377130161)); + results.add(getRoute(112.57723562917293, 26.819769721883098)); return results; } private ArrayList tempData1() { ArrayList results = new ArrayList<>(); - results.add(getRoute(116.41732262522, 39.974576894194)); - results.add(getRoute(116.43963532201855, 39.9752190287537)); - results.add(getRoute(116.4440910789222, 39.96469276598098)); + results.add(getRoute(112.56970669282785, 26.8175674285121)); + results.add(getRoute(112.57154905962457, 26.81762377130161)); + results.add(getRoute(112.57723562917293, 26.819769721883098)); return results; } private SweeperRoutePlanningUpdateReqBean.Result getRoute(double longitude, double latitude) { + LatLng latLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(AbsMogoApplication.getApp(), longitude, latitude); SweeperRoutePlanningUpdateReqBean.Result result = new SweeperRoutePlanningUpdateReqBean.Result(); - result.latitude = latitude; - result.longitude = longitude; + result.latitude = latLng.latitude; + result.longitude = latLng.longitude; return result; } } diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt index b96883a263..5d9eeb97c8 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt @@ -274,6 +274,7 @@ class SweeperFragment : BaseSweeperTabFragment 0) { CallerLogger.INSTANCE.d(M_SWEEPER + TAG,"onAutopilotRotting: "+printMessage(routeList)); if (mCurrentLineId != mLineId) {//判断是否同一条路线 + CallerLogger.INSTANCE.d(M_SWEEPER + TAG,"onAutopilotRotting: mCurrentLineId"+mCurrentLineId+"mLineId:"+mLineId); mLineId = mCurrentLineId; points.addAll(coordinateConverterWgsToGcjList(mContext, routeList.getWayPointsList())); if (mSweeperTaskCallback != null) { @@ -305,6 +306,11 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM if (mSweeperTaskCallback != null) { mSweeperTaskCallback.setRouteList(points); } + //防止重新绘制轨迹时,覆盖掉原有的贴边 + if (mSweeperTaskCallback != null) { + mSweeperTaskCallback.setWeltDataToMap((ArrayList) MyDataBase.getInstance().getWeltDataDao().loadAllWeltDataInfo(), + true, "0cm"); + } } } @@ -418,7 +424,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM return; } mWeltDataCurrentTimeMillis = current; - CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onSweeperFutianTaskIndexData:" + printMessage(roboSweeperTaskIndex)); + CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "mSubTaskType:"+mSubTaskType+"+ onSweeperFutianTaskIndexData:" + printMessage(roboSweeperTaskIndex)); handleWeltData(roboSweeperTaskIndex); } diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/util/SweeperCloudTaskUtils.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/util/SweeperCloudTaskUtils.kt index f173ee2582..25fb456c39 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/util/SweeperCloudTaskUtils.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/util/SweeperCloudTaskUtils.kt @@ -57,90 +57,90 @@ object SweeperCloudTaskUtils { subBuilder0.taskStatus = SweeperCommon.TaskStatus.TO_START val startLocation0 = Location.newBuilder() startLocation0.siteName = "自动驾驶子任务起点0" - startLocation0.wgsLongitude = 121.6421189511 - startLocation0.wgsLatitude = 37.4767125311 - startLocation0.longitude = 121.64693997741931 - startLocation0.latitude = 37.47740504453125 + startLocation0.wgsLongitude =112.56970262448544 + startLocation0.wgsLatitude = 26.817567832504274 + startLocation0.longitude = 112.57493487730413 + startLocation0.latitude = 26.81397095451884 subBuilder0.startLocation = startLocation0.build() val endLocation0 = Location.newBuilder() endLocation0.siteName = "自动驾驶子任务终点0" - endLocation0.wgsLongitude = 121.6392313 - endLocation0.wgsLatitude = 37.4726471 - endLocation0.longitude = 121.64404710861349 - endLocation0.latitude = 37.47333410433059 + endLocation0.wgsLongitude = 112.57723562874442 + endLocation0.wgsLatitude = 26.819769725304003 + endLocation0.longitude = 112.5824598556873 + endLocation0.latitude = 26.81616501438377 subBuilder0.endLocation = endLocation0.build() subBuilder0.lineId = 123 subBuilder0.lineName = "测试路线0" builder.addSubList(subBuilder0.build()) //第二个子任务 - val subBuilder1 = SubTaskInfo.newBuilder() - subBuilder1.subTaskId = "2" - subBuilder1.subTaskName = "佛兴禅寺-海水浴场(前岛贴左)" - subBuilder1.taskModel = TaskModel.AUTO - subBuilder1.taskStatus = SweeperCommon.TaskStatus.TO_START - val startLocation1 = Location.newBuilder() - startLocation1.siteName = "自动驾驶子任务起点1" - startLocation1.wgsLongitude = 121.6421189511 - startLocation1.wgsLatitude = 37.47264711 - startLocation1.longitude = 121.6469395478903 - startLocation1.latitude = 37.47333856025812 - subBuilder1.startLocation = startLocation1.build() - val endLocation1 = Location.newBuilder() - endLocation1.siteName = "自动驾驶子任务终点1" - endLocation1.wgsLongitude = 121.4261245286646 - endLocation1.wgsLatitude = 37.52885874483938 - endLocation1.longitude = 121.43138115208806 - endLocation1.latitude = 37.52987767688798 - subBuilder1.endLocation = endLocation1.build() - subBuilder1.lineId = 124 - subBuilder1.lineName = "测试路线1" - builder.addSubList(subBuilder1.build()) - //第三个子任务 - val subBuilder2 = SubTaskInfo.newBuilder() - subBuilder2.subTaskId = "3" - subBuilder2.subTaskName = "海水浴场-佛兴禅寺(前岛贴左)" - subBuilder2.taskModel = TaskModel.MANUAL - subBuilder2.taskStatus = SweeperCommon.TaskStatus.TO_START - val startLocation2 = Location.newBuilder() - startLocation2.siteName = "人工驾驶子任务起点2" - startLocation2.wgsLongitude = 121.31344761929978 - startLocation2.wgsLatitude = 37.53205755535642 - startLocation2.longitude = 121.3185679517558 - startLocation2.latitude = 37.5329694887952 - subBuilder2.startLocation = startLocation2.build() - val endLocation2 = Location.newBuilder() - endLocation2.siteName = "人工驾驶子任务终点2" - endLocation2.wgsLongitude = 121.4551205070834 - endLocation2.wgsLatitude = 37.47936696980237 - endLocation2.longitude = 121.46030960742117 - endLocation2.latitude = 37.48032689641474 - subBuilder2.endLocation = endLocation2.build() - subBuilder2.lineId = 125 - subBuilder2.lineName = "测试路线2" - builder.addSubList(subBuilder2.build()) - //第四个子任务 - val subBuilder3 = SubTaskInfo.newBuilder() - subBuilder3.subTaskId = "4" - subBuilder3.subTaskName = "海水浴场-佛兴禅寺(前岛贴左第四个任务)" - subBuilder3.taskModel = TaskModel.MANUAL - subBuilder3.taskStatus = SweeperCommon.TaskStatus.TO_START - val startLocation3 = Location.newBuilder() - startLocation3.siteName = "人工驾驶子任务起点3" - startLocation3.wgsLongitude = 121.31344761929978 - startLocation3.wgsLatitude = 37.53205755535642 - startLocation3.longitude = 121.3185679517558 - startLocation3.latitude = 37.5329694887952 - subBuilder3.startLocation = startLocation3.build() - val endLocation3 = Location.newBuilder() - endLocation3.siteName = "人工驾驶子任务终点3" - endLocation3.wgsLongitude = 121.4551205070834 - endLocation3.wgsLatitude = 37.47936696980237 - endLocation3.longitude = 121.46030960742117 - endLocation3.latitude = 37.48032689641474 - subBuilder3.endLocation = endLocation3.build() - subBuilder3.lineId = 126 - subBuilder3.lineName = "测试路线3" - builder.addSubList(subBuilder3.build()) +// val subBuilder1 = SubTaskInfo.newBuilder() +// subBuilder1.subTaskId = "2" +// subBuilder1.subTaskName = "佛兴禅寺-海水浴场(前岛贴左)" +// subBuilder1.taskModel = TaskModel.AUTO +// subBuilder1.taskStatus = SweeperCommon.TaskStatus.TO_START +// val startLocation1 = Location.newBuilder() +// startLocation1.siteName = "自动驾驶子任务起点1" +// startLocation1.wgsLongitude = 112.57723562874442 +// startLocation1.wgsLatitude = 26.819769725304003 +// startLocation1.longitude = 112.5824598556873 +// startLocation1.latitude = 26.81616501438377 +// subBuilder1.startLocation = startLocation1.build() +// val endLocation1 = Location.newBuilder() +// endLocation1.siteName = "自动驾驶子任务终点1" +// endLocation1.wgsLongitude = 112.56970262448544 +// endLocation1.wgsLatitude = 26.817567832504274 +// endLocation1.longitude = 112.57493487730413 +// endLocation1.latitude = 26.81397095451884 +// subBuilder1.endLocation = endLocation1.build() +// subBuilder1.lineId = 124 +// subBuilder1.lineName = "测试路线1" +// builder.addSubList(subBuilder1.build()) +// //第三个子任务 +// val subBuilder2 = SubTaskInfo.newBuilder() +// subBuilder2.subTaskId = "3" +// subBuilder2.subTaskName = "海水浴场-佛兴禅寺(前岛贴左)" +// subBuilder2.taskModel = TaskModel.MANUAL +// subBuilder2.taskStatus = SweeperCommon.TaskStatus.TO_START +// val startLocation2 = Location.newBuilder() +// startLocation2.siteName = "人工驾驶子任务起点2" +// startLocation2.wgsLongitude = 121.31344761929978 +// startLocation2.wgsLatitude = 37.53205755535642 +// startLocation2.longitude = 121.3185679517558 +// startLocation2.latitude = 37.5329694887952 +// subBuilder2.startLocation = startLocation2.build() +// val endLocation2 = Location.newBuilder() +// endLocation2.siteName = "人工驾驶子任务终点2" +// endLocation2.wgsLongitude = 121.4551205070834 +// endLocation2.wgsLatitude = 37.47936696980237 +// endLocation2.longitude = 121.46030960742117 +// endLocation2.latitude = 37.48032689641474 +// subBuilder2.endLocation = endLocation2.build() +// subBuilder2.lineId = 125 +// subBuilder2.lineName = "测试路线2" +// builder.addSubList(subBuilder2.build()) +// //第四个子任务 +// val subBuilder3 = SubTaskInfo.newBuilder() +// subBuilder3.subTaskId = "4" +// subBuilder3.subTaskName = "海水浴场-佛兴禅寺(前岛贴左第四个任务)" +// subBuilder3.taskModel = TaskModel.MANUAL +// subBuilder3.taskStatus = SweeperCommon.TaskStatus.TO_START +// val startLocation3 = Location.newBuilder() +// startLocation3.siteName = "人工驾驶子任务起点3" +// startLocation3.wgsLongitude = 121.31344761929978 +// startLocation3.wgsLatitude = 37.53205755535642 +// startLocation3.longitude = 121.3185679517558 +// startLocation3.latitude = 37.5329694887952 +// subBuilder3.startLocation = startLocation3.build() +// val endLocation3 = Location.newBuilder() +// endLocation3.siteName = "人工驾驶子任务终点3" +// endLocation3.wgsLongitude = 121.4551205070834 +// endLocation3.wgsLatitude = 37.47936696980237 +// endLocation3.longitude = 121.46030960742117 +// endLocation3.latitude = 37.48032689641474 +// subBuilder3.endLocation = endLocation3.build() +// subBuilder3.lineId = 126 +// subBuilder3.lineName = "测试路线3" +// builder.addSubList(subBuilder3.build()) SweeperTaskModel.getInstance().onSweeperFutianCloudTask( messageType, "${System.currentTimeMillis()}", diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficLightView.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficLightView.kt index ab86b77dbf..925ae96d73 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficLightView.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperTrafficLightView.kt @@ -58,7 +58,7 @@ class SweeperTrafficLightView @JvmOverloads constructor( override fun showTrafficLight(checkLightId: TrafficLightEnum, lightSource: DataSourceType) { mCurrentLightId = checkLightId updateTrafficLightIcon(checkLightId) - CallerLogger.d(SceneConstant.M_SWEEPER + TAG,"灯态类型:"+checkLightId.name +"灯态来源:"+DataSourceType.getName(lightSource)) + CallerLogger.d(SceneConstant.M_SWEEPER + TAG,"灯态类型:"+checkLightId.name +" 灯态来源:"+DataSourceType.getName(lightSource)) } /** diff --git a/OCH/sweeper/sweeper-cloud/src/main/res/layout/sweeper_welt_map_overview.xml b/OCH/sweeper/sweeper-cloud/src/main/res/layout/sweeper_welt_map_overview.xml index 7b4d1f3b37..e51070b285 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/res/layout/sweeper_welt_map_overview.xml +++ b/OCH/sweeper/sweeper-cloud/src/main/res/layout/sweeper_welt_map_overview.xml @@ -2,7 +2,8 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> -