From dc2bf86ac2cc324b66d495330d4cb175155bc8f9 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Tue, 18 Jul 2023 15:26:34 +0800 Subject: [PATCH] =?UTF-8?q?[Sweeper=20cloud=203.2.0]=20refactor:=20?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6=E7=8A=B6=E6=80=81=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9=EF=BC=9B=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=A0=BC=E5=BC=8F=E4=BF=AE=E6=94=B9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweepercloud/fragment/SweeperFragment.kt | 52 +++++------------- .../sweepercloud/model/SweeperTaskModel.java | 55 ++++++++++--------- .../util/SweeperCloudTaskUtils.kt | 25 +++++++++ 3 files changed, 67 insertions(+), 65 deletions(-) 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 0714e5ddc3..4037a3845d 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 @@ -19,6 +19,7 @@ import com.mogo.och.sweepercloud.database.MyDataBase import com.mogo.och.sweepercloud.presenter.SweeperPresenter import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudDialog import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudLoadingDialog +import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createConfirmStartSubTaskDialog import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createReceivedTaskInfoDialog import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskEndDialog @@ -35,8 +36,9 @@ import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop -import kotlinx.android.synthetic.main.fragment_och_sweeper.* -import kotlinx.android.synthetic.main.sweeper_no_data_common_view.* +import kotlinx.android.synthetic.main.fragment_och_sweeper.sweeper_cl_work_mode +import kotlinx.android.synthetic.main.fragment_och_sweeper.sweeper_current_task_view +import kotlinx.android.synthetic.main.sweeper_no_data_common_view.noTaskDataView import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -114,7 +116,8 @@ class SweeperFragment : BaseSweeperTabFragment= 1) { - return "${day}天${hour}时${minute}分钟" - } - if (hour >= 1) { - return "${hour}时${minute}分钟" - } - return "${minute}分钟" } } \ No newline at end of file diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/model/SweeperTaskModel.java b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/model/SweeperTaskModel.java index 349be74b75..242bd5b5e7 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/model/SweeperTaskModel.java +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/model/SweeperTaskModel.java @@ -182,7 +182,6 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM }); } - public void setControllerStatusCallback(ISweeperControllerStatusCallback callback) { this.mControllerStatusCallback = callback; } @@ -216,7 +215,6 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM } } } - }; public void setSubtask(String subTaskId, SweeperTask.TaskModel subTaskType, int currentLineId) { @@ -256,8 +254,9 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM return this.mAutopilotState; } - public static List coordinateConverterWgsToGcjList(Context mContext, - List mogoLatLngList) { + public static List coordinateConverterWgsToGcjList( + Context mContext, + List mogoLatLngList) { List points = new ArrayList<>(); for (MessagePad.Location m : mogoLatLngList) { LatLng mogoLatLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(mContext, m); @@ -304,7 +303,6 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM } if (mSubTaskType == SweeperTask.TaskModel.MANUAL) {//收集人工驾驶子任务坐标点 addCoordinates(gnssInfo); - return; } } }; @@ -334,7 +332,6 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM @Override public void onSweeperFutianCloudTask(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime, SweeperTask.TaskInfo taskInfo) { - CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " onSweeperFutianCloudTask:" + (taskInfo == null ? "null" : printMessage(taskInfo)) + " mSweeperTaskCallback:" + mSweeperTaskCallback); if (mSweeperTaskCallback != null) { @@ -493,7 +490,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM } } - public static String format(double value) { + private static String format(double value) { BigDecimal bd = new BigDecimal(value); bd = bd.setScale(2, RoundingMode.HALF_UP); return bd.toString(); @@ -507,6 +504,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM builder.setSn(getDriverSn()); String reqNo = SweeperCloudTaskUtils.getRequestId(); SweeperTask.GetTaskReq getTaskReq = builder.build(); + CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "getCurrentTask:" + printMessage(getTaskReq) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.PadSendGetTaskReq.getNumber()); getAutoPilotControlManager().sendSweeperGetTaskReq(reqNo, getTaskReq); @@ -522,6 +520,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM builder.setCode(code); SweeperTask.StartTaskResp startTaskResp = builder.build(); String reqNo = msgTypeAndReqNo.get(SweeperCloudTask.MessageType.CloudPushTask.getNumber()); + getAutoPilotControlManager().sendSweeperStartTaskResp(reqNo, startTaskResp); CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "sendSweeperStartTaskResp:" + printMessage(startTaskResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTask.getNumber()); @@ -538,6 +537,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM builder.setCode(code); SweeperTaskConfirm.TaskConfirmResp taskConfirmResp = builder.build(); String reqNo = msgTypeAndReqNo.get(SweeperCloudTask.MessageType.CloudPushTaskConfirm.getNumber()); + CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "sendSweeperTaskConfirmResp" + printMessage(taskConfirmResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTaskConfirm.getNumber()); getAutoPilotControlManager().sendSweeperTaskConfirmResp(reqNo, taskConfirmResp); @@ -556,6 +556,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM builder.setCode(code); SweeperTaskStop.StopTaskResp stopTaskResp = builder.build(); String reqNo = msgTypeAndReqNo.get(SweeperCloudTask.MessageType.CloudPushTaskStop.getNumber()); + CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "sendSweeperStopTaskResp" + printMessage(stopTaskResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTaskStop.getNumber()); getAutoPilotControlManager().sendSweeperStopTaskResp(reqNo, stopTaskResp); @@ -576,10 +577,10 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM builder.setLineId(lineId); SweeperBootable.IsBootable isBootable = builder.build(); String reqNo = SweeperCloudTaskUtils.getRequestId(); + CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "sendSweeperAutopilotBootable" + printMessage(isBootable) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.PadSendBootable.getNumber()); getAutoPilotControlManager().sendSweeperAutopilotBootable(reqNo, isBootable); - // TODO: 2023/5/16 //SweeperCloudTaskUtils.mockSendCloudBootable(); } @@ -593,23 +594,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM @Override public void onAutopilotStatusResponse(@NonNull AutopilotStatusInfo autoPilotStatusInfo) { - //CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onAutopilotStatusResponse state:" + autoPilotStatusInfo.getState()); - this.mAutopilotState = autoPilotStatusInfo.getState(); - if (mControllerStatusCallback != null) { - mControllerStatusCallback.onAutopilotState(autoPilotStatusInfo.getState()); - } - switch (autoPilotStatusInfo.getState()) { - case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE://不可自动驾驶 - break; - case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE://人工驾驶 - break; - case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING://自动驾驶中 - break; - case IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING://平行驾驶 - break; - default: - break; - } + } @Override @@ -660,11 +645,27 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM @Override public void onAutopilotStatusResponse(int state) { - // TODO: 2023/6/19 bingbing + //CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onAutopilotStatusResponse state:" + state); + this.mAutopilotState = state; + if (mControllerStatusCallback != null) { + mControllerStatusCallback.onAutopilotState(state); + } + switch (state) { + case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE://不可自动驾驶 + break; + case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE://人工驾驶 + break; + case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING://自动驾驶中 + break; + case IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING://平行驾驶 + break; + default: + break; + } } @Override public void onAutopilotDockerInfo(@NonNull String dockerVersion) { - // TODO: 2023/6/19 bingbing + } } 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 9bcd53b6be..515a50bb32 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 @@ -362,8 +362,33 @@ object SweeperCloudTaskUtils { fun printMessage(message: MessageOrBuilder): String { return "\n"+TextFormat.printer().escapingNonAscii(false).printToString(message) } + @JvmStatic fun getRequestId():String{ return UUID.randomUUID().toString() } + + /** + * 计算任务超时时间 + */ + @JvmStatic + fun getTimeSpentString(taskEndTime: Long): String { + val timeLag: Long = System.currentTimeMillis() - taskEndTime + //天 + val day: Long = timeLag / (24 * 60 * 60 * 1000) + //小时 + val hour = (timeLag / (60 * 60 * 1000) - day * 24) + //分钟 + val minute = ((timeLag / (60 * 1000)) - day * 24 * 60 - hour * 60) + + if (day >= 1) { + return "${day}天${hour}时${minute}分钟" + } + if (hour >= 1) { + return "${hour}时${minute}分钟" + } + return "${minute}分钟" + } + + } \ No newline at end of file