From 2a239654df346e84441762a677320ef03a13339d Mon Sep 17 00:00:00 2001 From: aibingbing Date: Mon, 17 Jul 2023 18:42:23 +0800 Subject: [PATCH 01/35] =?UTF-8?q?[Sweeper]=20feat:=20=E6=B8=85=E6=89=AB?= =?UTF-8?q?=E8=BD=A6=E5=8F=B8=E6=9C=BA=E7=AB=AFV3.2.0=20=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 13815adaa1..fe8c85abeb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -171,6 +171,6 @@ CHARTER_DRIVER_VERSION=3.3.2 # 包车模式乘客端端版本号 CHARTER_PASSENGER_VERSION=2.3.2 # 支持云控清扫车模式司机端版本号 -SWEEPERCLOUD_DRIVER_VERSION=3.1.4 +SWEEPERCLOUD_DRIVER_VERSION=3.2.0 # 清扫车模式司机端版本号 SWEEPEROPERATE_DRIVER_VERSION=3.1.0 From e30a5751125057f31453c4ec83c395bb7c2bd96f Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 17 Jul 2023 18:47:38 +0800 Subject: [PATCH 02/35] =?UTF-8?q?[Sweeper][=E9=AD=94=E6=96=B9]=20=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=87=AA=E9=A9=BE=E5=85=BC=E5=AE=B9=E6=B8=85=E6=89=AB?= =?UTF-8?q?=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mofang/MoFangCommandExecutor.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt index bc472a3f42..d0d67ef3bd 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt @@ -3,8 +3,10 @@ package com.zhjt.mogo_core_function_devatools.mofang import android.os.* import android.util.* import android.view.KeyEvent +import com.mogo.eagle.core.data.config.* import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.network.utils.GsonUtil +import com.mogo.eagle.core.utilcode.mogo.* import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_SUB_KEYCODE import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_SUB_TYPE @@ -82,7 +84,13 @@ internal class MoFangCommandExecutor { MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: ""))) linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message, $json")) Log.d(TAG, "--- 启动自驾 ----入参:$json") - CallerAutoPilotControlManager.startAutoPilot(parameters) + //清扫车有FSM模块,魔方启动自驾时需要将Source修改为魔方,以便telamatics做区分并在转发时增加flag标记 + if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) { + CallerAutoPilotControlManager.startAutoPilotByMoFang(parameters) + } else{ + CallerAutoPilotControlManager.startAutoPilot(parameters) + } + } catch (t: Throwable) { t.printStackTrace() Log.e(TAG, "error: ${t.message}, msg-> $msg") From 20897d03423cc3c42210c1d35ba1df42e7ca7446 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 18 Jul 2023 15:23:04 +0800 Subject: [PATCH 03/35] =?UTF-8?q?[sweeper3.2.0][mogo-adas]=E6=B8=85?= =?UTF-8?q?=E6=89=AB=E8=BD=A6=E4=BA=91=E6=8E=A7=E8=80=81=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/proto/sweeper/sweeper_big_task_status.proto | 7 ++++--- .../src/main/proto/sweeper/sweeper_task.proto | 6 +++--- .../src/main/proto/sweeper/sweeper_task_confirm.proto | 9 +++++---- .../src/main/proto/sweeper/sweeper_task_stop.proto | 10 ++++++---- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto index 618c603c1b..a7074442db 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto @@ -10,9 +10,10 @@ enum BigTaskStatus { DEFAULT_STATUS = 0; // 无效值 TO_START = 1; //待开始 RUNNING = 2; // 运行中 - CANCLE = 3; // 取消 - FINISHED = 4; // 结束 - ABNORMAL = 5; // 异常 + CANCLE = 3; // 取消(提前结束) + FINISHED = 4; // 正常结束 + ABNORMAL = 5; // 异常结束 + SUSPENDED = 6; // 暂停 (新增) } message BigTaskStatusPush { diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task.proto index 03dcc8330c..fcc9cf0e25 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task.proto @@ -61,10 +61,10 @@ message TaskInfo { // 响应状态 enum StartTaskCode { DEFAULT_CODE = 0; // 无效值 - MANUAL_CONFIRM = 1; // 安全员确认执行任务-pad - MANUAL_REFUSE = 2; // 安全员拒绝任务-pad + MANUAL_CONFIRM = 1; // 安全员确认执行任务-pad(无效值) + MANUAL_REFUSE = 2; // 安全员拒绝任务-pad(无效值) RECEIVED = 3; // 收到任务 - OVER_TIME = 4; // 超时未确认 + OVER_TIME = 4; // 超时未确认(无效值) } /** diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_confirm.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_confirm.proto index 5a2e34e50f..c1ac0ec756 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_confirm.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_confirm.proto @@ -19,10 +19,11 @@ message TaskConfirm { // 响应状态 enum TaskConfirmCode { DEFAULT_CODE = 0; // 无效值 - MANUAL_CONFIRM = 1; // 安全员确认执行任务-pad - MANUAL_REFUSE_ALL = 2; // 安全员拒绝全部任务-pad - MANUAL_REFUSE_SINGLE = 3; // 安全员拒绝单个子任务-pad - OVER_TIME = 4; // 超时未确认 + MANUAL_CONFIRM = 1; // 安全员确认执行任务-pad(无效值) + MANUAL_REFUSE_ALL = 2; // 安全员拒绝全部任务-pad(无效值) + MANUAL_REFUSE_SINGLE = 3; // 安全员拒绝单个子任务-pad(无效值) + OVER_TIME = 4; // 超时未确认(无效值) + RECEIVED = 5; // 收到子任务(新增) } /** diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_stop.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_stop.proto index 72af952f09..e243390210 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_stop.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_stop.proto @@ -8,9 +8,10 @@ package com.zhjt.mogo.adas.data.sweeper.task.stop; // 任务状态 enum StopTaskType { DEFAULT_TYPE = 0; // 无效值 - TIMEOUT = 1; //超时结束 + TIMEOUT = 1; //超时结束(无效值) ADVANCE = 2; // 提前结束 NORMAL = 3; // 正常结束 + EXCEPTION = 4; // 异常结束(新增) } @@ -29,9 +30,10 @@ message StopTaskReq { // 响应状态 enum StopTaskCode { DEFAULT_CODE = 0; // 无效值 - MANUAL_CONFIRM = 1; // 安全员确认 - MANUAL_REFUSE = 2; // 安全员拒绝 - OVER_TIME = 3; // 超时未确认 + MANUAL_CONFIRM = 1; // 安全员确认(无效值) + MANUAL_REFUSE = 2; // 安全员拒绝(无效值) + OVER_TIME = 3; // 超时未确认(无效值) + RECEIVED = 4; // 收到结束指令(新增) } /** From dc2bf86ac2cc324b66d495330d4cb175155bc8f9 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Tue, 18 Jul 2023 15:26:34 +0800 Subject: [PATCH 04/35] =?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 From 077b3399561677546c936bd87699a6abca0200ef Mon Sep 17 00:00:00 2001 From: aibingbing Date: Tue, 18 Jul 2023 21:00:12 +0800 Subject: [PATCH 05/35] =?UTF-8?q?[Sweeper=20Cloud]=20refactor:=20=E4=BA=91?= =?UTF-8?q?=E6=8E=A7=E6=B5=81=E7=A8=8B=E9=87=8D=E6=9E=84=20&=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=BC=98=E5=8C=96=20step=201;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/ISweeperCloudTaskCallback.kt | 2 +- .../sweepercloud/fragment/SweeperFragment.kt | 181 +++++++++--------- .../presenter/SweeperPresenter.java | 4 +- .../util/SweeperCloudTaskUtils.kt | 42 ++-- 4 files changed, 119 insertions(+), 110 deletions(-) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt index 92fc78aafb..4fb6c26c85 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt @@ -50,7 +50,7 @@ interface ISweeperCloudTaskCallback { /** * 云端同步大任务状态 */ - fun onSweeperCloudBigTaskStatus(taskId:String,subTaskStatus: SweeperBigTaskStatus.BigTaskStatus) + fun onSweeperCloudBigTaskStatus(taskId:String, bigTaskStatus: SweeperBigTaskStatus.BigTaskStatus) /** * 设置轨迹坐标点集合 */ 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 4037a3845d..3bb836cdc9 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 @@ -5,7 +5,6 @@ import android.view.View import androidx.lifecycle.lifecycleScope import chassis.ChassisStatesOuterClass import com.amap.api.maps.model.LatLng -import com.elegant.utils.UiThreadHandler import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_ENABLE import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -21,7 +20,7 @@ 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.createReceivedBigTaskInfoDialog import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskEndDialog import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskExceptionEndDialog import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskNormalEndDialog @@ -56,7 +55,7 @@ class SweeperFragment : BaseSweeperTabFragment } @Override - public void onSweeperCloudBigTaskStatus(@NonNull String taskId, SweeperBigTaskStatus.BigTaskStatus subTaskStatus) { - ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudBigTaskStatus(taskId, subTaskStatus)); + public void onSweeperCloudBigTaskStatus(@NonNull String taskId, SweeperBigTaskStatus.BigTaskStatus bigTaskStatus) { + ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudBigTaskStatus(taskId, bigTaskStatus)); } @Override 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 515a50bb32..702ac105e2 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 @@ -235,15 +235,15 @@ object SweeperCloudTaskUtils { } /** - * 创建接收任务弹窗 + * 创建接收大任务弹窗 */ @JvmStatic - fun createReceivedTaskInfoDialog(context: Context?, listener: SweeperCloudDialogClickListener?, taskInfo: TaskInfo): SweeperCloudDialog? { + fun createReceivedBigTaskInfoDialog(context: Context?, listener: SweeperCloudDialogClickListener?, taskInfo: TaskInfo): SweeperCloudDialog? { var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() val startCalendar = DateTimeUtil.formatLongToCalendar(taskInfo.taskStartTime) val endCalendar = DateTimeUtil.formatLongToCalendar(taskInfo.taskEndTime) builder.titleStr = "任务接取" - builder.contentStr = "请确认是否接取${taskInfo.taskName}" + builder.contentStr = "已为您接取任务${taskInfo.taskName}" builder.tipStr = "(任务时间${DateTimeUtil.formatCalendarToString(startCalendar, DateTimeUtil.HH_mm)}-${ DateTimeUtil.formatCalendarToString( endCalendar, @@ -252,8 +252,8 @@ object SweeperCloudTaskUtils { })" builder.leftStr = "确认" builder.middleStr = "" - builder.rightStr = "拒绝" - builder.countDownTime = 15 + builder.rightStr = "" + builder.countDownTime = 10 builder.listener = listener return context?.let { it1 -> builder.build(it1) } } @@ -268,14 +268,14 @@ object SweeperCloudTaskUtils { subTaskInfo: SubTaskInfo ): SweeperCloudDialog? { var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() - builder.titleStr = "任务确认" - builder.contentStr = "请确认是否执行${subTaskInfo.subTaskName}" + builder.titleStr = "子任务确认" + builder.contentStr = "请确认并执行${subTaskInfo.subTaskName}" builder.tipStr = if (subTaskInfo.taskModel == TaskModel.MANUAL) "[需手动驾驶至终点${subTaskInfo.endLocation.siteName}]" else "[自动驾驶至终点${subTaskInfo.endLocation.siteName}]" builder.leftStr = "确认" - builder.middleStr = "下一个" - builder.rightStr = "结束" - builder.countDownTime = 15 + builder.middleStr = "" + builder.rightStr = "" + builder.countDownTime = 10 builder.listener = listener return context?.let { it1 -> builder.build(it1) } } @@ -295,24 +295,24 @@ object SweeperCloudTaskUtils { when (stopTaskType) { //任务提前结束 SweeperTaskStop.StopTaskType.ADVANCE -> { - builder.contentStr = "云端请求终止任务,请确认" - builder.tipStr = "【确认后请接管停车】" + builder.contentStr = "云端中止任务,注意车辆即将停车!" + builder.tipStr = "" builder.leftStr = "确认" builder.middleStr = "" - builder.rightStr = "拒绝" - VoiceNotice.showNotice("云端请求终止任务,请确认") + builder.rightStr = "" + VoiceNotice.showNotice("云端中止任务") } - //任务超时结束 - SweeperTaskStop.StopTaskType.TIMEOUT -> { - builder.contentStr = "任务已超时${timeoutStr},请确认是否结束" - builder.tipStr = "【结束后请接管停车】" + //任务异常结束 + SweeperTaskStop.StopTaskType.EXCEPTION -> { + builder.contentStr = "云端异常结束任务!" + builder.tipStr = "" builder.leftStr = "确认" builder.middleStr = "" - builder.rightStr = "拒绝" - VoiceNotice.showNotice("任务已超时${timeoutStr},请确认是否结束") + builder.rightStr = "" + VoiceNotice.showNotice("云端异常结束任务") } } - builder.countDownTime = 15 + builder.countDownTime = 10 builder.listener = listener return context?.let { it1 -> builder.build(it1) } } From 874c96a4ad28175a968ad397819d0c07a5cbad4e Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 19 Jul 2023 18:08:44 +0800 Subject: [PATCH 06/35] =?UTF-8?q?[sweeper320][adas]=E4=BA=91=E6=8E=A7?= =?UTF-8?q?=E6=B8=85=E6=89=AB=E8=BD=A6=E6=B7=BB=E5=8A=A0=E4=BA=91=E7=AB=AF?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E4=BB=BB=E5=8A=A1=E6=9A=82=E5=81=9C/?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E6=8C=87=E4=BB=A4=E5=88=B0pad=EF=BC=88type:?= =?UTF-8?q?=20100010=EF=BC=89=E6=94=B6=E5=8F=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweepercloud/model/SweeperTaskModel.java | 8 +++- .../autopilot/MoGoAutopilotControlProvider.kt | 15 +++++- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 16 ++++++- .../IMoGoAutopilotControlProvider.kt | 13 +++++- .../IMoGoSweeperFutianCloudTaskListener.kt | 14 +++++- .../CallerAutoPilotControlManager.kt | 14 +++++- ...erSweeperFutianCloudTaskListenerManager.kt | 18 +++++++- .../src/main/proto/sweeper/README.md | 25 ++++++++++ .../proto/sweeper/sweeper_cloud_task.proto | 1 + .../sweeper_task_cloud_suspend_resume.proto | 40 ++++++++++++++++ .../sweeper/sweeper_task_suspend_resume.proto | 2 +- .../zhidao/support/adas/high/AdasChannel.java | 23 ++++++++-- .../zhidao/support/adas/high/AdasManager.java | 22 +++++++-- .../support/adas/high/IAdasNetCommApi.java | 17 +++++-- .../support/adas/high/OnAdasListener.java | 17 +++++-- .../high/msg/SweeperCloudTaskMessage.java | 46 +++++++++++-------- 16 files changed, 248 insertions(+), 43 deletions(-) create mode 100644 libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_cloud_suspend_resume.proto 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 242bd5b5e7..b4433104d2 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 @@ -42,9 +42,10 @@ import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils; import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask; import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable; import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask; -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus; +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; @@ -408,6 +409,11 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM } } + @Override + public void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush) { + + } + @Override public void onSweeperFutianCleanSystemState(@NonNull ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { if (cleanSystemState == null) { diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index 876a5a4af2..826b9fd681 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -61,7 +61,8 @@ import com.zhjt.mogo.adas.data.AdasConstants import com.zhjt.mogo.adas.data.bean.MogoReport import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop import com.zhjt.service.chain.ChainLog @@ -1002,6 +1003,18 @@ class MoGoAutopilotControlProvider : return AdasManager.getInstance().sendSweeperAutopilotBootable(reqNo, isBootable) } + /** + * pad收到云端下发暂停恢复响应 + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp + * + * @param reqNo 请求编号 + * @param bigTaskActionResp 参数 + * @return boolean + */ + override fun sendSweeperCloudSuspendResumeTaskResp(reqNo: String, bigTaskActionResp: SweeperTaskCloudSuspendResume.BigTaskActionResp): Boolean { + return AdasManager.getInstance().sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp) + } + override fun setIsDrawPointCloud(isDrawPointCloud: Boolean) { if (isDrawPointCloud) { AdasManager.getInstance().subscribeInterface( diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index ca07517c0c..c7aaed986d 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -58,8 +58,9 @@ import com.zhjt.mogo.adas.data.bean.AutopilotStatistics import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop @@ -646,6 +647,19 @@ class MoGoAdasListenerImpl : OnAdasListener { CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudBigTaskStatus(messageType, reqNo, sysTime, bigTaskStatusPush) } + /** + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)-> sweeper_task_cloud_suspend_resume.proto + * + * @param header 头 + * @param messageType 消息类型 + * @param reqNo 请求编号 + * @param sysTime 当前时间戳 + * @param bigTaskActionPush 数据 + */ + override fun onSweeperFutianCloudTaskCloudSuspendResume(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: SweeperTaskCloudSuspendResume.BigTaskActionPush?) { + CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskCloudSuspendResume(messageType, reqNo, sysTime, bigTaskActionPush) + } + /** * 清扫车云端任务未知类型 * diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt index 88d8661d52..9397f3bdf8 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt @@ -8,10 +8,11 @@ import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootable import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.GetTaskReq import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.StartTaskResp -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume.SuspendResumeTaskReq +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskReq import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirmResp import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp import com.zhjt.mogo.adas.data.AdasConstants +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionResp /** * @author xiaoyuzhou @@ -399,6 +400,16 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider { */ fun sendSweeperAutopilotBootable(reqNo: String, isBootable: IsBootable): Boolean + /** + * pad收到云端下发暂停恢复响应 + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp + * + * @param reqNo 请求编号 + * @param bigTaskActionResp 参数 + * @return boolean + */ + fun sendSweeperCloudSuspendResumeTaskResp(reqNo: String, bigTaskActionResp: BigTaskActionResp): Boolean + /** * 打开点云绘制 * diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoSweeperFutianCloudTaskListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoSweeperFutianCloudTaskListener.kt index f40c2ed6bc..55dba62ef9 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoSweeperFutianCloudTaskListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoSweeperFutianCloudTaskListener.kt @@ -3,12 +3,12 @@ package com.mogo.eagle.core.function.api.autopilot import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootableResp import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume.SuspendResumeTaskResp import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus.BigTaskStatusPush +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionPush import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirm +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskResp import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus.TaskStatusPush import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskReq -import mogo.telematics.pad.MessagePad /** * 清扫车(福田)云端任务接口 @@ -87,6 +87,16 @@ interface IMoGoSweeperFutianCloudTaskListener { */ fun onSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskStatusPush: BigTaskStatusPush?) + /** + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)-> sweeper_task_cloud_suspend_resume.proto + * + * @param messageType 消息类型 + * @param reqNo 请求编号 + * @param sysTime 当前时间戳 + * @param bigTaskActionPush 数据 + */ + fun onSweeperFutianCloudTaskCloudSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: BigTaskActionPush?) + /** * 清扫车云端任务未知类型 * diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt index b0e9ea0777..8524f6f49b 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt @@ -17,10 +17,11 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootable import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.GetTaskReq import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.StartTaskResp -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume.SuspendResumeTaskReq +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskReq import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirmResp import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp import com.zhjt.mogo.adas.data.AdasConstants +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionResp import com.zhjt.service.chain.ChainLog import com.zhjt.service_biz.BizConfig import kotlin.random.Random @@ -550,6 +551,17 @@ object CallerAutoPilotControlManager { return providerApi?.sendSweeperAutopilotBootable(reqNo, isBootable) ?: false } + /** + * pad收到云端下发暂停恢复响应 + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp + * + * @param reqNo 请求编号 + * @param bigTaskActionResp 参数 + * @return boolean + */ + fun sendSweeperCloudSuspendResumeTaskResp( reqNo: String, bigTaskActionResp: BigTaskActionResp): Boolean { + return providerApi?.sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp) ?: false + } /** * 打开点云绘制 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerSweeperFutianCloudTaskListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerSweeperFutianCloudTaskListenerManager.kt index bee2a3d1f1..ba6a151961 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerSweeperFutianCloudTaskListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerSweeperFutianCloudTaskListenerManager.kt @@ -5,8 +5,9 @@ import com.mogo.eagle.core.function.call.base.CallerBase import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop @@ -123,6 +124,21 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase sweeper_task_cloud_suspend_resume.proto + * + * @param messageType 消息类型 + * @param reqNo 请求编号 + * @param sysTime 当前时间戳 + * @param bigTaskActionPush 数据 + */ + fun invokeSweeperFutianCloudTaskCloudSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: SweeperTaskCloudSuspendResume.BigTaskActionPush?) { + M_LISTENERS.forEach { + val listener = it.value + listener.onSweeperFutianCloudTaskCloudSuspendResume(messageType, reqNo, sysTime, bigTaskActionPush) + } + } + /** * 清扫车云端任务未知类型 * diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/README.md b/libraries/mogo-adas-data/src/main/proto/sweeper/README.md index a022d1bbed..f4a74e7647 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/README.md +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/README.md @@ -12,6 +12,7 @@ |7、pad主动拉取当前车辆正在执行任务的完整信息(type:100007)|sweeper/sweeper_task.proto| |8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)|sweeper/sweeper_bootable.proto| |9、云端下发pad大任务状态(type: 100009)|sweeper/sweeper_big_task_status.proto| +|10、云端下发任务暂停/恢复指令到pad(type: 100010)|sweeper/sweeper_task_cloud_suspend_resume.proto| # 接口使用说明 ## 回调接口类:IMoGoSweeperFutianCloudTaskListener @@ -181,4 +182,28 @@ fun onSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, 客户端回复: 无 +~~~ + +~~~ +服务端发: +/** + * 10、云端下发任务暂停/恢复指令到pad(type: 100010) + * + * @param messageType 消息类型 + * @param reqNo 请求编号 + * @param sysTime 当前时间戳 + * @param bigTaskActionPush 数据 + */ +fun onSweeperFutianCloudTaskCloudSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: BigTaskActionPush?) + +客户端回复: + /** + * pad收到云端下发暂停恢复响应 + * 10、云端下发任务暂停/恢复指令到pad(type: 100010) + * + * @param reqNo 请求编号 + * @param bigTaskActionResp 参数 + * @return boolean + */ +CallerAutoPilotControlManager.INSTANCE.sendSweeperSuspendResumeTaskReq() ~~~ \ No newline at end of file diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_cloud_task.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_cloud_task.proto index a0a9bab56b..d4b9e2bb57 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_cloud_task.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_cloud_task.proto @@ -16,6 +16,7 @@ enum MessageType PadSendGetTaskReq = 100007; //7、pad主动拉取当前车辆正在执行任务的完整信息(type:100007)-> sweeper_task.proto PadSendBootable = 100008; //8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_bootable.proto CloudPushBigTaskStatus = 100009; //9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto + CloudPushTaskSuspendResume = 100010; //10、云端下发任务暂停/恢复指令到pad(type: 100010)-> sweeper_task_cloud_suspend_resume.proto } //云下行消息 diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_cloud_suspend_resume.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_cloud_suspend_resume.proto new file mode 100644 index 0000000000..72e093880e --- /dev/null +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_cloud_suspend_resume.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; +package com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r; + + +/**** 10、云端下发任务暂停/恢复指令到pad(type: 100010) ****/ + +//10.1、请求信息 + +// 指令类型 +enum ActionType { + DEFAULT_TYPE = 0; // 无效值 + SUSPENDED = 1; // 暂停 + RESUME = 2; //恢复 +} + +message BigTaskActionPush { + string sn = 1;// sn + string taskId = 2;// 大任务编号 + ActionType action = 3;// 指令类型 + uint64 systemTime = 4; // 时间戳 + bool isPop = 5; // 是否弹窗 +} + + +//10.2、响应信息 + +// 响应状态 +enum Code { + DEFAULT_CODE = 0; // 无效值 + RECEIVED = 1; // 收到指令 +} + +/** +开始大任务响应 +*/ +message BigTaskActionResp { + string sn = 1;// sn + string taskId = 2;// 大任务编号 + Code code = 3; //响应状态 +} diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_suspend_resume.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_suspend_resume.proto index 20bdb949a4..db18a5dd84 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_suspend_resume.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task_suspend_resume.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -package com.zhjt.mogo.adas.data.sweeper.task; +package com.zhjt.mogo.adas.data.sweeper.task.s_r; import "sweeper/sweeper_common.proto"; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 4b12882544..07e9702efe 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -5,7 +5,6 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_INIT; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_GLOBAL_PATH; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_SYSTEM_CMD; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD; -import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_START_AUTOPILOT; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_CONNECT_ADDRESS; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_STATUS_CHANGE_REASON; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_SOURCE_ADAS; @@ -16,13 +15,11 @@ import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.text.TextUtils; -import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.protobuf.InvalidProtocolBufferException; -import com.zhjt.mogo.adas.data.bean.AdasParam; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.AutopilotReview; import com.zhidao.support.adas.high.common.ByteUtil; @@ -47,12 +44,14 @@ import com.zhidao.support.adas.high.subscribe.SubscribeInterface; import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions; import com.zhidao.support.adas.high.thread.DispatchHandler; import com.zhjt.mogo.adas.data.AdasConstants; +import com.zhjt.mogo.adas.data.bean.AdasParam; import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask; import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable; import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask; -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume; +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; import com.zhjt.service.chain.ChainLog; @@ -68,8 +67,8 @@ import java.util.concurrent.atomic.AtomicInteger; import bag_manager.BagManagerOuterClass; import chassis.SpecialVehicleTaskCmdOuterClass; import common.HeaderOuterClass; -import mogo.telematics.ParamSetCmdOuterClass; import function_state_management.FSMStatusReasonQueryOuterClass; +import mogo.telematics.ParamSetCmdOuterClass; import mogo.telematics.pad.MessagePad; import okio.ByteString; @@ -1748,6 +1747,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec ParamSetCmdOuterClass.ParamSetCmd req = builder.build(); return sendPBMessage(MessageType.TYPE_SEND_SET_PARAM_REQ_V2.typeCode, req.toByteArray()); } + /** * FSM状态原因查询 * 当FSMFunctionStates的类型是XXX_DRIVING_OFF时查询OFF的原因 @@ -1866,5 +1866,18 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec public boolean sendSweeperAutopilotBootable(@NonNull String reqNo, @NonNull SweeperBootable.IsBootable isBootable) { return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.PadSendBootable, reqNo, isBootable.toByteString()); } + + /** + * pad收到云端下发暂停恢复响应 + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp + * + * @param reqNo 请求编号 + * @param bigTaskActionResp 参数 + * @return boolean + */ + @Override + public boolean sendSweeperCloudSuspendResumeTaskResp(@NonNull String reqNo, @NonNull SweeperTaskCloudSuspendResume.BigTaskActionResp bigTaskActionResp) { + return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.CloudPushTaskSuspendResume, reqNo, bigTaskActionResp.toByteString()); + } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 53e041eb9f..bb0e5980a5 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -5,7 +5,6 @@ import android.text.TextUtils; import androidx.annotation.NonNull; -import com.zhjt.mogo.adas.data.bean.AdasParam; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.AppPreferenceHelper; import com.zhidao.support.adas.high.common.Constants; @@ -13,12 +12,14 @@ import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.common.Define; import com.zhidao.support.adas.high.common.MessageType; import com.zhidao.support.adas.high.common.ReceiveTimeoutManager; +import com.zhjt.mogo.adas.data.AdasConstants; +import com.zhjt.mogo.adas.data.bean.AdasParam; import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable; import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask; -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume; +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; -import com.zhjt.mogo.adas.data.AdasConstants; import java.util.HashSet; import java.util.List; @@ -929,7 +930,7 @@ public class AdasManager implements IAdasNetCommApi { * 参数获取请求 * 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)} * - * @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto + * @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto * @return boolean */ @Override @@ -1081,6 +1082,19 @@ public class AdasManager implements IAdasNetCommApi { return mChannel != null && mChannel.sendSweeperAutopilotBootable(reqNo, isBootable); } + /** + * pad收到云端下发暂停恢复响应 + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp + * + * @param reqNo 请求编号 + * @param bigTaskActionResp 参数 + * @return boolean + */ + @Override + public boolean sendSweeperCloudSuspendResumeTaskResp(@NonNull String reqNo, @NonNull SweeperTaskCloudSuspendResume.BigTaskActionResp bigTaskActionResp) { + return mChannel != null && mChannel.sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp); + } + /** * 获取工控机固定IP列表 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index 16a2e8da3c..468095b63c 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -6,12 +6,13 @@ import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.Constants; import com.zhidao.support.adas.high.common.Define; import com.zhidao.support.adas.high.common.MessageType; +import com.zhjt.mogo.adas.data.AdasConstants; import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable; import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask; -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume; +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; -import com.zhjt.mogo.adas.data.AdasConstants; import java.util.List; import java.util.Set; @@ -572,7 +573,7 @@ public interface IAdasNetCommApi { /** * 参数获取请求 * - * @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto + * @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto * @return boolean */ boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType); @@ -690,6 +691,16 @@ public interface IAdasNetCommApi { */ boolean sendSweeperAutopilotBootable(@NonNull String reqNo, @NonNull SweeperBootable.IsBootable isBootable); + /** + * pad收到云端下发暂停恢复响应 + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp + * + * @param reqNo 请求编号 + * @param bigTaskActionResp 参数 + * @return boolean + */ + boolean sendSweeperCloudSuspendResumeTaskResp(@NonNull String reqNo, @NonNull SweeperTaskCloudSuspendResume.BigTaskActionResp bigTaskActionResp); + // TODO 需求暂停 待讨论 // boolean getRoutes(); diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java index 8caa4165c7..40b79e0859 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java @@ -4,18 +4,18 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.mogo.support.obu.ObuScene; -import com.zhjt.mogo.adas.data.AdasConstants; import com.zhidao.support.adas.high.common.MessageType; import com.zhidao.support.adas.high.common.ProtocolStatus; +import com.zhjt.mogo.adas.data.AdasConstants; import com.zhjt.mogo.adas.data.bean.AdasParam; import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; - import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask; import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable; import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask; -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus; +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; @@ -355,6 +355,17 @@ public interface OnAdasListener { */ void onSweeperFutianCloudBigTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush); + /** + * 10、云端下发任务暂停/恢复指令到pad(type: 100010)-> sweeper_task_cloud_suspend_resume.proto + * + * @param header 头 + * @param messageType 消息类型 + * @param reqNo 请求编号 + * @param sysTime 当前时间戳 + * @param bigTaskActionPush 数据 + */ + void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush); + /** * 清扫车云端任务未知类型 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperCloudTaskMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperCloudTaskMessage.java index 3f74546c23..2af62348ec 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperCloudTaskMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperCloudTaskMessage.java @@ -1,11 +1,9 @@ package com.zhidao.support.adas.high.msg; import android.os.SystemClock; -import android.util.Log; import com.google.protobuf.ByteString; import com.google.protobuf.InvalidProtocolBufferException; -import com.google.protobuf.TextFormat; import com.zhidao.support.adas.high.AdasChannel; import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.common.ByteUtil; @@ -14,9 +12,10 @@ import com.zhidao.support.adas.high.protocol.RawData; import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask; import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable; import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask; -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus; +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; +import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; @@ -44,7 +43,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { String reqNo = message.getReqNo(); //请求编号,响应请求时,使用请求方的请求编号 long sysTime = message.getSysTime(); //当前时间戳 ByteString payload = message.getPayload(); - Log.i("SweeperCloudTaskMessage", "MsgType=" + (msgType == null ? "null" : msgType.getNumber()) + " reqNo=" + reqNo + " sysTime=" + sysTime); + CupidLogUtils.i("SweeperCloudTaskMessage", "MsgType=" + (msgType == null ? "null" : msgType.getNumber()) + " reqNo=" + reqNo + " sysTime=" + sysTime); boolean isExistPayload = payload != null && !payload.isEmpty(); if (msgType == SweeperCloudTask.MessageType.CloudPushTask || msgType == SweeperCloudTask.MessageType.PadSendGetTaskReq) { //1、云端下发大任务信息(type: 100001)-> sweeper_task.proto @@ -53,8 +52,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { if (isExistPayload) { taskInfo = SweeperTask.TaskInfo.parseFrom(payload); } - Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskInfo == null ? "null" : - TextFormat.printer().escapingNonAscii(false).printToString(taskInfo))); +// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskInfo == null ? "null" : +// TextFormat.printer().escapingNonAscii(false).printToString(taskInfo))); adasListener.onSweeperFutianCloudTask(header, msgType, reqNo, sysTime, taskInfo); } else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskConfirm) { //2、云端下发子任务,请求pad确认(type:100002)-> sweeper_task_confirm.proto @@ -62,8 +61,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { if (isExistPayload) { taskConfirm = SweeperTaskConfirm.TaskConfirm.parseFrom(payload); } - Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskConfirm == null ? "null" : - TextFormat.printer().escapingNonAscii(false).printToString(taskConfirm))); +// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskConfirm == null ? "null" : +// TextFormat.printer().escapingNonAscii(false).printToString(taskConfirm))); adasListener.onSweeperFutianCloudTaskConfirm(header, msgType, reqNo, sysTime, taskConfirm); } else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskStatus) { //3、云端下发任务状态到pad(type:100003)-> sweeper_task_status.proto @@ -71,8 +70,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { if (isExistPayload) { taskStatusPush = SweeperTaskStatus.TaskStatusPush.parseFrom(payload); } - Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskStatusPush == null ? "null" : - TextFormat.printer().escapingNonAscii(false).printToString(taskStatusPush))); +// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskStatusPush == null ? "null" : +// TextFormat.printer().escapingNonAscii(false).printToString(taskStatusPush))); adasListener.onSweeperFutianCloudTaskStatus(header, msgType, reqNo, sysTime, taskStatusPush); } else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskStop) { //4、云端请求pad结束任务(type:100004)-> sweeper_task_stop.proto @@ -80,8 +79,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { if (isExistPayload) { stopTaskReq = SweeperTaskStop.StopTaskReq.parseFrom(payload); } - Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (stopTaskReq == null ? "null" : - TextFormat.printer().escapingNonAscii(false).printToString(stopTaskReq))); +// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (stopTaskReq == null ? "null" : +// TextFormat.printer().escapingNonAscii(false).printToString(stopTaskReq))); adasListener.onSweeperFutianCloudTaskStop(header, msgType, reqNo, sysTime, stopTaskReq); } else if (msgType == SweeperCloudTask.MessageType.PadSendTaskSuspend || msgType == SweeperCloudTask.MessageType.PadSendTaskResume) { //5、pad请求挂起任务(type:100005)-> sweeper_task_suspend_resume.proto @@ -90,8 +89,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { if (isExistPayload) { suspendResumeTaskResp = SweeperTaskSuspendResume.SuspendResumeTaskResp.parseFrom(payload); } - Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (suspendResumeTaskResp == null ? "null" : - TextFormat.printer().escapingNonAscii(false).printToString(suspendResumeTaskResp))); +// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (suspendResumeTaskResp == null ? "null" : +// TextFormat.printer().escapingNonAscii(false).printToString(suspendResumeTaskResp))); adasListener.onSweeperFutianCloudTaskSuspendResume(header, msgType, reqNo, sysTime, suspendResumeTaskResp); } else if (msgType == SweeperCloudTask.MessageType.PadSendBootable) { //8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_autopilot.proto @@ -99,8 +98,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { if (isExistPayload) { isBootableResp = SweeperBootable.IsBootableResp.parseFrom(payload); } - Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (isBootableResp == null ? "null" : - TextFormat.printer().escapingNonAscii(false).printToString(isBootableResp))); +// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (isBootableResp == null ? "null" : +// TextFormat.printer().escapingNonAscii(false).printToString(isBootableResp))); adasListener.onSweeperFutianCloudBootable(header, msgType, reqNo, sysTime, isBootableResp); } else if (msgType == SweeperCloudTask.MessageType.CloudPushBigTaskStatus) { //9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto @@ -108,12 +107,21 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { if (isExistPayload) { bigTaskStatusPush = SweeperBigTaskStatus.BigTaskStatusPush.parseFrom(payload); } - Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (bigTaskStatusPush == null ? "null" : - TextFormat.printer().escapingNonAscii(false).printToString(bigTaskStatusPush))); +// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (bigTaskStatusPush == null ? "null" : +// TextFormat.printer().escapingNonAscii(false).printToString(bigTaskStatusPush))); adasListener.onSweeperFutianCloudBigTaskStatus(header, msgType, reqNo, sysTime, bigTaskStatusPush); + } else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskSuspendResume) { + //10、云端下发任务暂停/恢复指令到pad(type: 100010) + SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush = null; + if (isExistPayload) { + bigTaskActionPush = SweeperTaskCloudSuspendResume.BigTaskActionPush.parseFrom(payload); + } +// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (bigTaskActionPush == null ? "null" : +// TextFormat.printer().escapingNonAscii(false).printToString(bigTaskActionPush))); + adasListener.onSweeperFutianCloudTaskCloudSuspendResume(header, msgType, reqNo, sysTime, bigTaskActionPush); } else { //未知数据类型 - Log.i("SweeperCloudTaskMessage", " 错误数据=" + ByteUtil.byteArrToHex(bytes)); + CupidLogUtils.i("SweeperCloudTaskMessage", " 错误数据=" + ByteUtil.byteArrToHex(bytes)); adasListener.onSweeperFutianCloudTaskUnknown(header, bytes); } } From feb90b42744621db216070701bf700d9e3e278ea Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 20 Jul 2023 15:48:07 +0800 Subject: [PATCH 07/35] =?UTF-8?q?[sweeper320][adas-data]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=B8=85=E6=89=AB=E8=BD=A6=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81?= =?UTF-8?q?PB=EF=BC=8C=E5=A4=A7=E3=80=81=E5=AD=90=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8=E4=B8=80=E5=A5=97=E6=9E=9A?= =?UTF-8?q?=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/proto/sweeper/sweeper_big_task_status.proto | 12 ++---------- .../src/main/proto/sweeper/sweeper_common.proto | 7 ++++--- .../src/main/proto/sweeper/sweeper_task.proto | 1 + 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto index a7074442db..369d4ee140 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto @@ -1,25 +1,17 @@ syntax = "proto3"; package com.zhjt.mogo.adas.data.sweeper.task.big; +import "sweeper/sweeper_common.proto"; /**** 9、云端下发pad大任务状态(type: 100009) ****/ //9.1、请求信息 // 任务状态 -enum BigTaskStatus { - DEFAULT_STATUS = 0; // 无效值 - TO_START = 1; //待开始 - RUNNING = 2; // 运行中 - CANCLE = 3; // 取消(提前结束) - FINISHED = 4; // 正常结束 - ABNORMAL = 5; // 异常结束 - SUSPENDED = 6; // 暂停 (新增) -} message BigTaskStatusPush { string sn = 1;// sn string taskId = 2;// 大任务编号 - BigTaskStatus TaskStatus = 3;// 大任务状态 + common.TaskStatus TaskStatus = 3;// 大任务状态 uint64 systemTime = 4; // 时间戳 } diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_common.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_common.proto index ca6364dbec..cd5735edb5 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_common.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_common.proto @@ -7,9 +7,10 @@ enum TaskStatus DEFAULT_STATUS = 0; // 无效值 TO_START = 1; //待开始 RUNNING = 2; // 运行中 - SUSPENDED = 3; // 暂停 - FINISHED = 4; // 结束 - ABNORMAL = 5; // *异常 + CANCEL = 3; // 取消(提前结束) + FINISHED = 4; // 正常结束 + ABNORMAL = 5; // 异常结束 + SUSPENDED = 6; // 暂停 (新增) } // 响应状态 diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task.proto index fcc9cf0e25..211f20fd95 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_task.proto @@ -55,6 +55,7 @@ message TaskInfo { uint64 currentTime = 6; //当前时间戳 repeated SubTaskInfo subList = 7; // 子任务列表信息 bool isPop = 8; // 是否弹窗 + common.TaskStatus taskStatus = 9; // 大任务状态(新增) } //1.2、响应信息 From 306f6a17c090cb4c08e0d17523661b19bb2ec5d6 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Thu, 20 Jul 2023 16:03:33 +0800 Subject: [PATCH 08/35] =?UTF-8?q?[Sweeper-cloud]=20refactor:=20=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=EF=BC=9B=E4=B8=9A=E5=8A=A1=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=BB=93=E6=9D=9F/=E6=9A=82=E5=81=9C=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=90=8C=E6=AD=A5=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/ISweeperCloudTaskCallback.kt | 2 +- .../sweepercloud/fragment/SweeperFragment.kt | 36 ++++++++++--------- .../presenter/SweeperPresenter.java | 2 +- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt index 4fb6c26c85..b39f3a8923 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt @@ -50,7 +50,7 @@ interface ISweeperCloudTaskCallback { /** * 云端同步大任务状态 */ - fun onSweeperCloudBigTaskStatus(taskId:String, bigTaskStatus: SweeperBigTaskStatus.BigTaskStatus) + fun onSweeperCloudBigTaskStatus(taskId:String, bigTaskStatus: SweeperCommon.TaskStatus) /** * 设置轨迹坐标点集合 */ 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 3bb836cdc9..5724914e47 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 @@ -194,7 +194,6 @@ class SweeperFragment : BaseSweeperTabFragment } @Override - public void onSweeperCloudBigTaskStatus(@NonNull String taskId, SweeperBigTaskStatus.BigTaskStatus bigTaskStatus) { + public void onSweeperCloudBigTaskStatus(@NonNull String taskId, SweeperCommon.TaskStatus bigTaskStatus) { ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudBigTaskStatus(taskId, bigTaskStatus)); } From 05984793bf1b8d72f4ede959307da4ec6c075a2e Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 18 Jul 2023 16:55:11 +0800 Subject: [PATCH 09/35] =?UTF-8?q?[3.4.0][=E9=AD=94=E6=96=B9]=20=E9=95=BF?= =?UTF-8?q?=E6=8C=89=E9=94=AEB=E6=97=A0=E6=95=88;=E9=95=BF=E6=8C=89?= =?UTF-8?q?=E9=94=AEA=E5=8A=A0=E9=80=9F=E5=BA=A6=E5=87=8F2;=E7=BB=84?= =?UTF-8?q?=E5=90=88=E9=94=AEAB=E5=8A=A0=E9=80=9F=E5=BA=A6=E5=8A=A01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mofang/MoFangCommandExecutor.kt | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt index d0d67ef3bd..a0a662ebd1 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt @@ -15,14 +15,14 @@ internal class MoFangCommandExecutor { companion object { private const val TAG = "MoFangCommandExecutor" - private const val MSG_WHAT_KEY_CODE_A = 0x01 - private const val MSG_WHAT_KEY_CODE_B = 0x02 - private const val MSG_WHAT_KEY_CODE_BL = 0x03 - private const val MSG_WHAT_KEY_CODE_C = 0x04 - private const val MSG_WHAT_KEY_CODE_D = 0x05 - private const val MSG_WHAT_KEY_CODE_E = 0x06 - private const val MSG_WHAT_KEY_CODE_EL = 0x07 - private const val MSG_WHAT_KEY_CODE_AB = 0x08 + private const val MSG_WHAT_KEY_CODE_A = 0x01 + private const val MSG_WHAT_KEY_CODE_AL = 0x02 + private const val MSG_WHAT_KEY_CODE_B = 0x03 + private const val MSG_WHAT_KEY_CODE_AB = 0x04 + private const val MSG_WHAT_KEY_CODE_C = 0x05 + private const val MSG_WHAT_KEY_CODE_D = 0x06 + private const val MSG_WHAT_KEY_CODE_E = 0x07 + private const val MSG_WHAT_KEY_CODE_EL = 0x08 } @Volatile @@ -36,7 +36,7 @@ internal class MoFangCommandExecutor { val message = whatToString(msg.what, ", msg_info:[obj:${msg.obj}, arg1: ${msg.arg1}, arg2: ${msg.arg2}]") linkedLog?.record(mapOf("收到:${System.currentTimeMillis()}" to "$message")) when(msg.what) { - MSG_WHAT_KEY_CODE_A, MSG_WHAT_KEY_CODE_B, MSG_WHAT_KEY_CODE_AB, MSG_WHAT_KEY_CODE_BL -> { + MSG_WHAT_KEY_CODE_A, MSG_WHAT_KEY_CODE_B, MSG_WHAT_KEY_CODE_AB, MSG_WHAT_KEY_CODE_AL -> { var send = false try { val acc = msg.obj as? Double @@ -132,14 +132,14 @@ internal class MoFangCommandExecutor { MSG_WHAT_KEY_CODE_A -> { "单击键A->加速度每隔500ms,减少1$extra" } - MSG_WHAT_KEY_CODE_AB -> { - "组合键AB->加速度每隔500毫秒,减小2$extra" + MSG_WHAT_KEY_CODE_AL -> { + "长按键A->加速度每隔500ms,减少2$extra" } MSG_WHAT_KEY_CODE_B -> { "单击键B->复原$extra" } - MSG_WHAT_KEY_CODE_BL -> { - "长按键B->加速度每隔500ms,增加1$extra" + MSG_WHAT_KEY_CODE_AB -> { + "组合键AB->加速度每隔500毫秒,增加1$extra" } MSG_WHAT_KEY_CODE_C -> { "单击键C->左变道$extra" @@ -159,12 +159,12 @@ internal class MoFangCommandExecutor { private fun getKeycodeByWhat(what: Int): String? { return when(what) { - MSG_WHAT_KEY_CODE_A -> KeyEvent.keyCodeToString(KeyEvent.KEYCODE_A) - MSG_WHAT_KEY_CODE_B,MSG_WHAT_KEY_CODE_BL -> KeyEvent.keyCodeToString(KeyEvent.KEYCODE_B) + MSG_WHAT_KEY_CODE_A, MSG_WHAT_KEY_CODE_AL -> KeyEvent.keyCodeToString(KeyEvent.KEYCODE_A) + MSG_WHAT_KEY_CODE_B -> KeyEvent.keyCodeToString(KeyEvent.KEYCODE_B) + MSG_WHAT_KEY_CODE_AB -> "${KeyEvent.keyCodeToString(KeyEvent.KEYCODE_A)},${KeyEvent.keyCodeToString(KeyEvent.KEYCODE_B)}" MSG_WHAT_KEY_CODE_C -> KeyEvent.keyCodeToString(KeyEvent.KEYCODE_C) MSG_WHAT_KEY_CODE_D -> KeyEvent.keyCodeToString(KeyEvent.KEYCODE_D) MSG_WHAT_KEY_CODE_E, MSG_WHAT_KEY_CODE_EL -> KeyEvent.keyCodeToString(KeyEvent.KEYCODE_E) - MSG_WHAT_KEY_CODE_AB -> "${KeyEvent.keyCodeToString(KeyEvent.KEYCODE_A)},${KeyEvent.keyCodeToString(KeyEvent.KEYCODE_B)}" else -> null } } @@ -178,7 +178,7 @@ internal class MoFangCommandExecutor { MSG_WHAT_KEY_CODE_E -> { "1" } - MSG_WHAT_KEY_CODE_BL,MSG_WHAT_KEY_CODE_EL -> { + MSG_WHAT_KEY_CODE_AL,MSG_WHAT_KEY_CODE_EL -> { "2" } MSG_WHAT_KEY_CODE_AB -> { @@ -197,7 +197,7 @@ internal class MoFangCommandExecutor { handler.removeMessages(MSG_WHAT_KEY_CODE_A) handler.removeMessages(MSG_WHAT_KEY_CODE_B) handler.removeMessages(MSG_WHAT_KEY_CODE_AB) - handler.removeMessages(MSG_WHAT_KEY_CODE_BL) + handler.removeMessages(MSG_WHAT_KEY_CODE_AL) handler.sendMessage(Message.obtain().also { it.what = MSG_WHAT_KEY_CODE_A it.obj = -1.0 @@ -206,10 +206,10 @@ internal class MoFangCommandExecutor { } if (keycode == KeyEvent.KEYCODE_B) { Log.d(TAG, "--- 单机键B --- 复原 ----") - handler.removeMessages(MSG_WHAT_KEY_CODE_A) handler.removeMessages(MSG_WHAT_KEY_CODE_B) + handler.removeMessages(MSG_WHAT_KEY_CODE_A) handler.removeMessages(MSG_WHAT_KEY_CODE_AB) - handler.removeMessages(MSG_WHAT_KEY_CODE_BL) + handler.removeMessages(MSG_WHAT_KEY_CODE_AL) handler.sendMessage(Message.obtain().also { it.what = MSG_WHAT_KEY_CODE_B it.obj = 0.0 @@ -249,6 +249,19 @@ internal class MoFangCommandExecutor { } fun handleLongClick(keyCode: Int) { + if (keyCode == KeyEvent.KEYCODE_A) { + Log.d(TAG, "---- 长按键A ---- 加速度每隔500毫秒,减小2 ---") + handler.removeMessages(MSG_WHAT_KEY_CODE_AL) + handler.removeMessages(MSG_WHAT_KEY_CODE_A) + handler.removeMessages(MSG_WHAT_KEY_CODE_B) + handler.removeMessages(MSG_WHAT_KEY_CODE_AB) + handler.sendMessage(Message.obtain().also { + it.what = MSG_WHAT_KEY_CODE_AL + it.obj = -2.0 + }) + linkedLog?.record(mapOf("发送[AL]:${System.currentTimeMillis()}" to "${whatToString(MSG_WHAT_KEY_CODE_AL)}")) + } + if (keyCode == KeyEvent.KEYCODE_E) { Log.d(TAG, "--- 长按键E --- 鸣笛 ----") handler.removeMessages(MSG_WHAT_KEY_CODE_EL) @@ -258,31 +271,19 @@ internal class MoFangCommandExecutor { }) linkedLog?.record(mapOf("发送[EL]:${System.currentTimeMillis()}" to "${whatToString(MSG_WHAT_KEY_CODE_EL)}")) } - if (keyCode == KeyEvent.KEYCODE_B) { - Log.d(TAG, "--- 长按键B --- 加速度加1 ----") - handler.removeMessages(MSG_WHAT_KEY_CODE_A) - handler.removeMessages(MSG_WHAT_KEY_CODE_B) - handler.removeMessages(MSG_WHAT_KEY_CODE_AB) - handler.removeMessages(MSG_WHAT_KEY_CODE_BL) - handler.sendMessage(Message.obtain().also { - it.what = MSG_WHAT_KEY_CODE_BL - it.obj = 1.0 - }) - linkedLog?.record(mapOf("发送[BL]:${System.currentTimeMillis()}" to "${whatToString(MSG_WHAT_KEY_CODE_BL)}")) - } } fun handleCombineClick(vararg keyCodes: Int) { if (isCombineEqual(KeyEvent.KEYCODE_A, KeyEvent.KEYCODE_B, *keyCodes)) { - //AB组合键,加速度每隔500毫秒,减小2 - Log.d(TAG, "---- 组合键AB ---- 按下,加速度每隔500毫秒,减小2 ---") + //AB组合键,加速度每隔500毫秒,增加1 + Log.d(TAG, "---- 组合键AB ---- 按下, 加速度加1 ----") handler.removeMessages(MSG_WHAT_KEY_CODE_A) handler.removeMessages(MSG_WHAT_KEY_CODE_B) handler.removeMessages(MSG_WHAT_KEY_CODE_AB) - handler.removeMessages(MSG_WHAT_KEY_CODE_BL) + handler.removeMessages(MSG_WHAT_KEY_CODE_AL) handler.sendMessage(Message.obtain().also { - it.what = MSG_WHAT_KEY_CODE_AB - it.obj = -2.0 + it.what = MSG_WHAT_KEY_CODE_AB + it.obj = 1.0 }) linkedLog?.record(mapOf("发送[AB]:${System.currentTimeMillis()}" to "${whatToString(MSG_WHAT_KEY_CODE_AB)}")) } From b5e2ae75af5319fe6c5ad286979faab7f223d470 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Fri, 21 Jul 2023 16:07:52 +0800 Subject: [PATCH 10/35] =?UTF-8?q?[Sweeper=20Colud]=20feat:=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20=E4=BA=91=E7=AB=AF=E4=B8=8B=E5=8F=91=E5=A4=A7?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=20=E6=9A=82=E5=81=9C/=E6=81=A2=E5=A4=8D=20?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86/=E5=BC=B9=E6=A1=86/=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=94=B6=E5=88=B0=E6=B6=88=E6=81=AF=E7=9A=84=E5=9B=9E?= =?UTF-8?q?=E6=89=A7=EF=BC=9B=20refactor:=20=E4=BB=BB=E5=8A=A1=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E4=B8=AD=E7=8A=B6=E6=80=81=20=E4=BB=8E=E5=AD=90?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=20=E5=A4=A7=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=20?= =?UTF-8?q?=EF=BC=88=E6=9A=82=E5=81=9C/=E6=81=A2=E5=A4=8D=20=E5=8A=A8?= =?UTF-8?q?=E4=BD=9C=E5=9C=A8=E5=A4=A7=E4=BB=BB=E5=8A=A1=E4=B8=8A=EF=BC=89?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/ISweeperCloudTaskCallback.kt | 8 ++ .../sweepercloud/fragment/SweeperFragment.kt | 124 +++++++++++++++++- .../sweepercloud/model/SweeperTaskModel.java | 28 +++- .../presenter/SweeperPresenter.java | 24 +++- .../util/SweeperCloudTaskUtils.kt | 44 ++++++- .../view/SweeperCurrentTaskInfoView.kt | 34 +++-- 6 files changed, 236 insertions(+), 26 deletions(-) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt index b39f3a8923..179b88c41f 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt @@ -10,6 +10,8 @@ import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.Code import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.ActionType +import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionPush import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskType /** @@ -51,6 +53,12 @@ interface ISweeperCloudTaskCallback { * 云端同步大任务状态 */ fun onSweeperCloudBigTaskStatus(taskId:String, bigTaskStatus: SweeperCommon.TaskStatus) + + /** + * 云端同步大任务暂停 / 恢复 指令 + */ + fun onSweeperCloudBigTaskSuspendResume(taskId:String, actionType: ActionType, isPop:Boolean) + /** * 设置轨迹坐标点集合 */ 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 5724914e47..a1d88cea14 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 @@ -24,6 +24,8 @@ import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createReceivedBigTas import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskEndDialog import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskExceptionEndDialog import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskNormalEndDialog +import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskResumeDialog +import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskSuspendDialog import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.printMessage import com.mogo.och.sweepercloud.view.SweeperCurrentTaskInfoView import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask @@ -32,7 +34,7 @@ import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo 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.cloud.s_r.SweeperTaskCloudSuspendResume 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.sweeper_cl_work_mode @@ -56,6 +58,7 @@ class SweeperFragment : BaseSweeperTabFragment { + mDialog = sweeperCloudTaskSuspendDialog() + showNotice("云端暂停任务,注意车辆即将停车!") + } + else -> { + mDialog = sweeperCloudTaskResumeDialog() + var ttsString = "云端恢复任务,注意车辆即将启动!" + mCurrentSuspendSubTaskInfo?.also { suspendSub -> + val isAutoPoilotState = mPresenter?.autopilotState == STATUS_AUTOPILOT_ENABLE + when { + suspendSub.taskModel == TaskModel.MANUAL -> { + ttsString = "云端恢复任务,请继续手动驾驶完成任务!" + } + suspendSub.taskModel == TaskModel.AUTO && isAutoPoilotState -> { + ttsString = "云端恢复任务,注意车辆即将启动!" + } + suspendSub.taskModel == TaskModel.AUTO && !isAutoPoilotState -> { + ttsString = "云端恢复任务,请到达合适的位置后开启自动驾驶!" + } + } + } + showNotice(ttsString) + } + } + mDialog?.show() } } } @@ -563,7 +633,11 @@ class SweeperFragment : BaseSweeperTabFragment SweeperTaskModel.getInstance().sendSweeperAutopilotBootable(taskId, subTaskId, lineId); } + /** + * 大任务暂停/恢复 接收到指令到 回复 + * @param taskId + * @param code + */ + public void sendSweeperSuspendResumeTaskResp(String taskId, SweeperTaskCloudSuspendResume.Code code) { + SweeperTaskModel.getInstance().sendSweeperSuspendResumeTaskResp(taskId, code); + } + @Override public void setRouteList(@NonNull ArrayList routeList) { mView.setTaskRouteList(routeList); @@ -216,6 +225,11 @@ public class SweeperPresenter extends Presenter ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudBigTaskStatus(taskId, bigTaskStatus)); } + @Override + public void onSweeperCloudBigTaskSuspendResume(@NonNull String taskId, @NonNull SweeperTaskCloudSuspendResume.ActionType actionType, boolean isPop) { + ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudBigTaskSuspendOrResume(taskId, actionType, isPop)); + } + @Override public void setWeltDataToMap(@NonNull ArrayList weltDataBeans, boolean isWeltData, @NonNull String distance) { ThreadUtils.runOnUiThread(() -> mView.setWeltDataToMap(weltDataBeans, isWeltData, distance)); 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 702ac105e2..56bfea2a26 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 @@ -15,13 +15,15 @@ import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudDialog import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask.MessageType import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon -import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.* +import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.Location +import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo +import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskInfo +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.big.SweeperBigTaskStatus.BigTaskStatus import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirm import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop -import java.util.* +import java.util.UUID object SweeperCloudTaskUtils { const val TAG = "SweeperCloudTaskUtils" @@ -204,7 +206,7 @@ object SweeperCloudTaskUtils { val builder = SweeperBigTaskStatus.BigTaskStatusPush.newBuilder() builder.sn = getDriverSn() builder.taskId = "10" - builder.taskStatus = BigTaskStatus.FINISHED + builder.taskStatus = SweeperCommon.TaskStatus.FINISHED builder.systemTime = System.currentTimeMillis() SweeperTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus( MessageType.CloudPushBigTaskStatus, "${System.currentTimeMillis()}", @@ -358,6 +360,40 @@ object SweeperCloudTaskUtils { return context?.let { it1 -> builder.build(it1) } } + @JvmStatic + fun createSweeperTaskSuspendDialog( + context: Context?, + listener: SweeperCloudDialogClickListener? + ): SweeperCloudDialog? { + var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() + builder.titleStr = "任务暂停" + builder.contentStr = "云端暂停任务,注意车辆即将停车!" + builder.tipStr = "【云端任务恢复前不可启动自动驾驶】" + builder.leftStr = "确认" + builder.middleStr = "" + builder.rightStr = "" + builder.countDownTime = 10 + builder.listener = listener + return context?.let { it1 -> builder.build(it1) } + } + + @JvmStatic + fun createSweeperTaskResumeDialog( + context: Context?, + listener: SweeperCloudDialogClickListener? + ): SweeperCloudDialog? { + var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() + builder.titleStr = "任务恢复" + builder.contentStr = "云端恢复任务,注意车辆即将启动!" + builder.tipStr = "【注意安全,坐稳扶好】" + builder.leftStr = "确认" + builder.middleStr = "" + builder.rightStr = "" + builder.countDownTime = 10 + builder.listener = listener + return context?.let { it1 -> builder.build(it1) } + } + @JvmStatic fun printMessage(message: MessageOrBuilder): String { return "\n"+TextFormat.printer().escapingNonAscii(false).printToString(message) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperCurrentTaskInfoView.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperCurrentTaskInfoView.kt index 41b06aae2d..3dbca26a5b 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperCurrentTaskInfoView.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperCurrentTaskInfoView.kt @@ -10,6 +10,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.sweepercloud.R +import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.TaskStatus import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskInfo @@ -46,7 +47,7 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { private fun initView(context: Context) { LayoutInflater.from(context).inflate(R.layout.sweeper_current_task_info, this) - setSubTaskState(false) + updateTaskStateText(TaskStatus.TO_START) } fun getAutoBtn(): TextView { @@ -85,10 +86,10 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { * 设置当前任务数据 */ fun setData( - subTaskBean: TaskInfo?, + taskInfo: TaskInfo?, currentPosition: Int = -1 ) { - subTaskBean?.apply { + taskInfo?.apply { this@SweeperCurrentTaskInfoView.listTask = subListList tvTaskName.text = taskName val calendarStart = DateTimeUtil.formatLongToCalendar(taskStartTime) @@ -104,25 +105,32 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { listTask?.let { //特殊处理当前暂无执行中任务的情况 if (currentPosition == -1) { - setSubTaskState(false) + updateTaskStateText(TaskStatus.TO_START) setCurrentData(currentPosition + 1) } else { - setSubTaskState(it[currentPosition].taskStatus == TaskStatus.RUNNING) + updateTaskStateText(taskInfo?.taskStatus ?: TaskStatus.RUNNING) setCurrentData(currentPosition) } } } /** - * 设置子任务的状态 + * 设置任务的状态 */ - private fun setSubTaskState(isWorking: Boolean) { - if (isWorking) { - tvTaskState.text = "任务执行中" - tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_working) - } else { - tvTaskState.text = "任务待开始" - tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready) + private fun updateTaskStateText(taskStatus: SweeperCommon.TaskStatus) { + when (taskStatus) { + SweeperCommon.TaskStatus.RUNNING -> { + tvTaskState.text = "任务执行中" + tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_working) + } + SweeperCommon.TaskStatus.SUSPENDED -> { + tvTaskState.text = "任务已暂停" + tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready) + } + else -> { + tvTaskState.text = "任务待开始" + tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready) + } } } From 91e6f0fab57581ee72068592da00e642a7e868df Mon Sep 17 00:00:00 2001 From: aibingbing Date: Fri, 21 Jul 2023 18:55:42 +0800 Subject: [PATCH 11/35] =?UTF-8?q?[Sweeper=20Cloud]=20feat:=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20=E5=AD=90=E4=BB=BB=E5=8A=A1=E5=BC=80=E5=A7=8B/?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=20=E6=97=B6=E7=9A=84=E9=AB=98=E7=B2=BE?= =?UTF-8?q?=E5=9C=B0=E5=9B=BEMarker=20;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/sweepercloud/constant/SweeperConst.kt | 4 +- .../sweepercloud/fragment/SweeperFragment.kt | 269 ++++++++++++++---- 2 files changed, 219 insertions(+), 54 deletions(-) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/constant/SweeperConst.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/constant/SweeperConst.kt index aa96c7f40d..1c4f5891e8 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/constant/SweeperConst.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/constant/SweeperConst.kt @@ -55,9 +55,9 @@ class SweeperConst { const val EVENT_PARAM_UNABLE_START_REASON = "unable_start_reason"; /** - * 订单起终点Marker类型 + * 子任务起终点Marker类型 */ - const val TYPE_MARKER_SWEEPER_ORDER = "TYPE_MARKER_SWEEPER_ORDER" + const val TYPE_MARKER_SWEEPER_SUBTASK_START_END = "TYPE_MARKER_SWEEPER_SUBTASK_START_END" const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L 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 a1d88cea14..6329c9c5db 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 @@ -7,13 +7,18 @@ import chassis.ChassisStatesOuterClass import com.amap.api.maps.model.LatLng import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_ENABLE +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.map.overlay.core.Level +import com.mogo.map.overlay.point.Point +import com.mogo.och.common.module.utils.OCHThreadPoolManager import com.mogo.och.common.module.voice.VoiceNotice.showNotice import com.mogo.och.sweepercloud.R import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean import com.mogo.och.sweepercloud.callback.SweeperCloudDialogClickListener +import com.mogo.och.sweepercloud.constant.SweeperConst.Companion.TYPE_MARKER_SWEEPER_SUBTASK_START_END import com.mogo.och.sweepercloud.database.MyDataBase import com.mogo.och.sweepercloud.presenter.SweeperPresenter import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudDialog @@ -59,7 +64,11 @@ class SweeperFragment : BaseSweeperTabFragment { mDialog = sweeperCloudTaskResumeDialog() var ttsString = "云端恢复任务,注意车辆即将启动!" mCurrentSuspendSubTaskInfo?.also { suspendSub -> - val isAutoPoilotState = mPresenter?.autopilotState == STATUS_AUTOPILOT_ENABLE + val isAutoPoilotState = + mPresenter?.autopilotState == STATUS_AUTOPILOT_ENABLE when { suspendSub.taskModel == TaskModel.MANUAL -> { ttsString = "云端恢复任务,请继续手动驾驶完成任务!" } + suspendSub.taskModel == TaskModel.AUTO && isAutoPoilotState -> { ttsString = "云端恢复任务,注意车辆即将启动!" } + suspendSub.taskModel == TaskModel.AUTO && !isAutoPoilotState -> { ttsString = "云端恢复任务,请到达合适的位置后开启自动驾驶!" } @@ -485,7 +552,11 @@ class SweeperFragment : BaseSweeperTabFragment Date: Mon, 24 Jul 2023 19:22:56 +0800 Subject: [PATCH 12/35] =?UTF-8?q?[Sweeper=20Cloud]=20fix:=20=E5=A4=A7?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=20=E5=A2=9E=E5=8A=A0=20run?= =?UTF-8?q?ning=E7=8A=B6=E6=80=81=EF=BC=9B=20refactor:=20=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=B8=AD=E6=AD=A2=E5=BC=B9=E6=A1=86=20title=E5=92=8Cc?= =?UTF-8?q?ontent=20=E6=96=87=E6=A1=88=E8=B0=83=E6=95=B4=EF=BC=9B=20fix:?= =?UTF-8?q?=20=E5=A4=A7=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=E5=B1=95?= =?UTF-8?q?=E7=A4=BAissue=20=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweepercloud/fragment/SweeperFragment.kt | 12 +++++++++--- .../sweepercloud/util/SweeperCloudTaskUtils.kt | 16 +++++++++++----- .../mogo/och/sweepercloud/view/SubTaskView.kt | 11 ++++++++--- .../view/SweeperCurrentTaskInfoView.kt | 18 +++++++++++++++--- 4 files changed, 43 insertions(+), 14 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 6329c9c5db..cc2d4814cd 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 @@ -481,6 +481,12 @@ class SweeperFragment : BaseSweeperTabFragment { - mDialog = sweeperCloudTaskResumeDialog() var ttsString = "云端恢复任务,注意车辆即将启动!" mCurrentSuspendSubTaskInfo?.also { suspendSub -> val isAutoPoilotState = @@ -542,6 +547,7 @@ class SweeperFragment : BaseSweeperTabFragment "任务中止" + SweeperTaskStop.StopTaskType.EXCEPTION -> "任务异常结束" + else -> "任务结束" + } + builder.titleStr = titleStr when (stopTaskType) { //任务提前结束 SweeperTaskStop.StopTaskType.ADVANCE -> { @@ -380,11 +385,12 @@ object SweeperCloudTaskUtils { @JvmStatic fun createSweeperTaskResumeDialog( context: Context?, - listener: SweeperCloudDialogClickListener? + listener: SweeperCloudDialogClickListener?, + contentStr: String ): SweeperCloudDialog? { var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() builder.titleStr = "任务恢复" - builder.contentStr = "云端恢复任务,注意车辆即将启动!" + builder.contentStr = contentStr builder.tipStr = "【注意安全,坐稳扶好】" builder.leftStr = "确认" builder.middleStr = "" diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SubTaskView.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SubTaskView.kt index 32559b6bdc..8f2b8709ec 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SubTaskView.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SubTaskView.kt @@ -30,15 +30,20 @@ class SubTaskView : ConstraintLayout { /** * 设置子任务信息 */ - fun setData(taskInfo: SubTaskInfo,isLastTask: Boolean = false) { + fun setData(taskInfo: SubTaskInfo, isLastTask: Boolean = false) { tvSubTaskName.text = taskInfo.subTaskName - tvSubTaskName.setTextColor(if (taskInfo.taskStatus==SweeperCommon.TaskStatus.RUNNING) Color.parseColor("#3BD2FF") else Color.parseColor("#FFFFFF")) + tvSubTaskName.setTextColor( + if (taskInfo.taskStatus == SweeperCommon.TaskStatus.RUNNING) + Color.parseColor("#3BD2FF") + else + Color.parseColor("#FFFFFF") + ) if (taskInfo.taskModel == TaskModel.MANUAL) {//人工驾驶子任务 ivManualDriving.visibility = View.VISIBLE } else { ivManualDriving.visibility = View.GONE } - if (taskInfo.taskStatus==SweeperCommon.TaskStatus.RUNNING) { + if (taskInfo.taskStatus == SweeperCommon.TaskStatus.RUNNING) { ivSubTask.setImageResource(R.drawable.sweeper_icon_select_subtask) } else { ivSubTask.setImageResource(R.drawable.sweeper_icon_not_select_subtask) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperCurrentTaskInfoView.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperCurrentTaskInfoView.kt index 3dbca26a5b..09af70c1de 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperCurrentTaskInfoView.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/view/SweeperCurrentTaskInfoView.kt @@ -1,5 +1,6 @@ package com.mogo.och.sweepercloud.view +import android.annotation.SuppressLint import android.content.Context import android.graphics.Color import android.util.AttributeSet @@ -14,7 +15,13 @@ import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.TaskStatus import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.SubTaskInfo import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskInfo -import kotlinx.android.synthetic.main.sweeper_current_task_info.view.* +import kotlinx.android.synthetic.main.sweeper_current_task_info.view.currentSubTask +import kotlinx.android.synthetic.main.sweeper_current_task_info.view.lastSubTask +import kotlinx.android.synthetic.main.sweeper_current_task_info.view.preSubTask +import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvStartAuto +import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskName +import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskState +import kotlinx.android.synthetic.main.sweeper_current_task_info.view.tvTaskTime /** * 清扫车当前任务信息展示 @@ -85,10 +92,12 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { /** * 设置当前任务数据 */ + @SuppressLint("SetTextI18n") fun setData( taskInfo: TaskInfo?, currentPosition: Int = -1 ) { + // 更新 任务名称、任务时间 taskInfo?.apply { this@SweeperCurrentTaskInfoView.listTask = subListList tvTaskName.text = taskName @@ -102,13 +111,14 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { ) }" } + // 更新大任务状态 + updateTaskStateText(taskInfo?.taskStatus ?: TaskStatus.TO_START) + // 更新子任务列表 listTask?.let { //特殊处理当前暂无执行中任务的情况 if (currentPosition == -1) { - updateTaskStateText(TaskStatus.TO_START) setCurrentData(currentPosition + 1) } else { - updateTaskStateText(taskInfo?.taskStatus ?: TaskStatus.RUNNING) setCurrentData(currentPosition) } } @@ -123,10 +133,12 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { tvTaskState.text = "任务执行中" tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_working) } + SweeperCommon.TaskStatus.SUSPENDED -> { tvTaskState.text = "任务已暂停" tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready) } + else -> { tvTaskState.text = "任务待开始" tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready) From a7778f713d09b08db0ca6abc0b5feac02e465bf5 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 25 Jul 2023 17:47:51 +0800 Subject: [PATCH 13/35] =?UTF-8?q?[sweeper320][adas]=E4=BA=91=E6=8E=A7?= =?UTF-8?q?=E6=B8=85=E6=89=AB=E8=BD=A6=E6=B7=BB=E5=8A=A0100009=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/proto/sweeper/sweeper_big_task_status.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto index 369d4ee140..27505111fe 100644 --- a/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto +++ b/libraries/mogo-adas-data/src/main/proto/sweeper/sweeper_big_task_status.proto @@ -13,6 +13,7 @@ message BigTaskStatusPush { string taskId = 2;// 大任务编号 common.TaskStatus TaskStatus = 3;// 大任务状态 uint64 systemTime = 4; // 时间戳 + bool isPop = 5; // 是否弹窗(0725新增) } //4.2、响应信息 From f23b2da15c8f2e66415b45f79dcda9ac7c055e76 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 26 Jul 2023 15:26:42 +0800 Subject: [PATCH 14/35] =?UTF-8?q?[sweeper320][adas]=E6=B8=85=E6=89=AB?= =?UTF-8?q?=E8=BD=A6=E6=B7=BB=E5=8A=A0=E5=80=92=E5=9E=83=E5=9C=BE=E7=9A=84?= =?UTF-8?q?=E5=9C=BA=E6=99=AFPB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/proto/special_vehicle_task_cmd.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/mogo-adas-data/src/main/proto/special_vehicle_task_cmd.proto b/libraries/mogo-adas-data/src/main/proto/special_vehicle_task_cmd.proto index c97d77fba9..eb8ff009a2 100644 --- a/libraries/mogo-adas-data/src/main/proto/special_vehicle_task_cmd.proto +++ b/libraries/mogo-adas-data/src/main/proto/special_vehicle_task_cmd.proto @@ -14,6 +14,9 @@ message RoboSweeperFuTianCleanCmd { optional uint32 sweepdisk_speed_requirement = 8 [default = 0]; // 扫盘加速需求 0--no req, 1--decelerate req, 2--accelerate req(扫盘加速需求,每点一次为加速一次,每次加速为5%pwm) optional uint32 sweepdisk_desire_speed_requirement = 9 [default = 0]; // 扫盘期望转速, 0-100% 必须是5的倍数 optional uint32 one_touch_take_out_trash_requirement = 10 [default = 0]; // 一键倒垃圾请求,0:no req; 1: take out; 2: stop take out + optional uint32 clean_tail_door_requirement = 11 [default = 0]; // 垃圾尾门开关请求,0--no req; 1-- open; 2:--stop take out + optional uint32 clean_tail_tip_requirement = 12 [default = 0]; // 垃圾箱举升请求,0--no req; 1 -- tail ret,2-- tail tip + optional uint32 clean_work_Enc_des_requirement = 13 [default = 0]; // 垃圾箱清淤请求,0--no req; 1:--open; 2--close } message RoboSweeperFuTianTaskCmd { From 0967bf1e1bb75c95f572ab7644031fdccef7d281 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Wed, 26 Jul 2023 15:38:58 +0800 Subject: [PATCH 15/35] =?UTF-8?q?[Sweeper=20Cloud]=20feat:=20=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=A4=A7=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=20?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E5=A2=9E=E5=8A=A0isPop=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=9D=A5=E6=8E=A7=E5=88=B6=E6=98=AF=E5=90=A6=E5=BC=B9?= =?UTF-8?q?=E6=A1=86=EF=BC=9B=20fix=EF=BC=9A=E4=B8=8B=E5=8F=91=E4=B8=AD?= =?UTF-8?q?=E6=AD=A2=E5=A4=A7=E4=BB=BB=E5=8A=A1=E6=97=B6=EF=BC=8C=E5=8F=AA?= =?UTF-8?q?=E6=98=AF=E4=B8=80=E4=B8=AA=E6=8F=90=E7=A4=BA=E5=BC=B9=E6=A1=86?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E9=9C=80=E8=A6=81=20resetTaskpanel()=20;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/ISweeperCloudTaskCallback.kt | 2 +- .../sweepercloud/fragment/SweeperFragment.kt | 24 +++++++++---------- .../sweepercloud/model/SweeperTaskModel.java | 2 +- .../presenter/SweeperPresenter.java | 4 ++-- .../util/SweeperCloudTaskUtils.kt | 2 +- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt index 179b88c41f..d564062e3d 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/callback/ISweeperCloudTaskCallback.kt @@ -52,7 +52,7 @@ interface ISweeperCloudTaskCallback { /** * 云端同步大任务状态 */ - fun onSweeperCloudBigTaskStatus(taskId:String, bigTaskStatus: SweeperCommon.TaskStatus) + fun onSweeperCloudBigTaskStatus(taskId:String, bigTaskStatus: SweeperCommon.TaskStatus, isPop:Boolean) /** * 云端同步大任务暂停 / 恢复 指令 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 cc2d4814cd..5f8b22339e 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 @@ -331,7 +331,7 @@ class SweeperFragment : BaseSweeperTabFragment } @Override - public void onSweeperCloudBigTaskStatus(@NonNull String taskId, SweeperCommon.TaskStatus bigTaskStatus) { - ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudBigTaskStatus(taskId, bigTaskStatus)); + public void onSweeperCloudBigTaskStatus(@NonNull String taskId, SweeperCommon.TaskStatus bigTaskStatus, boolean isPop) { + ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudBigTaskStatus(taskId, bigTaskStatus, isPop)); } @Override 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 bf4adfe76a..2f59cc17cf 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 @@ -283,7 +283,7 @@ object SweeperCloudTaskUtils { } /** - * 创建结束任务弹窗 + * 创建任务中止弹窗 */ @JvmStatic fun createSweeperTaskEndDialog( From a0f23353f7d6643688a740e1f5b0ab612774c229 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Fri, 28 Jul 2023 09:54:20 +0800 Subject: [PATCH 16/35] =?UTF-8?q?[SweeperCloud]=20feat:=20=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E8=BF=9B=E5=85=A5app=E5=90=8E=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E6=8B=89=E5=8F=96=E4=BB=BB=E5=8A=A1=E5=90=8E=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E7=BB=98=E5=88=B6=E9=AB=98=E7=B2=BE=E5=9C=B0=E5=9B=BE=E4=B8=8A?= =?UTF-8?q?=E7=9A=84marker;=20refactor:=20=E5=9B=A0=E7=9B=AE=E5=89=8D?= =?UTF-8?q?=E4=B8=8D=E5=B1=95=E7=A4=BA=E5=B0=8F=E5=9C=B0=E5=9B=BE=EF=BC=8C?= =?UTF-8?q?=E8=B4=B4=E8=BE=B9=E6=95=B0=E6=8D=AE=E6=94=B6=E5=88=B0=E5=90=8E?= =?UTF-8?q?=E5=85=88=E4=B8=8D=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweepercloud/fragment/SweeperFragment.kt | 6 +++ .../sweepercloud/model/SweeperTaskModel.java | 37 ++++++++++--------- 2 files changed, 25 insertions(+), 18 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 5f8b22339e..01db091efa 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 @@ -215,6 +215,12 @@ class SweeperFragment : BaseSweeperTabFragment Date: Fri, 28 Jul 2023 22:37:56 +0800 Subject: [PATCH 17/35] =?UTF-8?q?[SweeperCloud]=20refactor:=20=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=98=AFisPop=3Dtrue,=20=E5=8F=91=E9=80=81=E6=94=B6?= =?UTF-8?q?=E5=88=B0=E6=B6=88=E6=81=AF=E5=9B=9E=E6=89=A7=E6=BB=9E=E5=90=8E?= =?UTF-8?q?=E5=88=B0=E5=BC=B9=E6=A1=86=E5=90=8E=E7=82=B9=E5=87=BB=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=EF=BC=8C=E9=81=BF=E5=85=8D=E4=BA=91=E6=8E=A7=E4=B8=8B?= =?UTF-8?q?=E5=8F=91=E6=B5=81=E7=A8=8B=E8=BF=87=E5=BF=AB=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E5=BC=B9=E6=A1=86=E5=86=B2=E7=AA=81=E5=8F=8A=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweepercloud/fragment/SweeperFragment.kt | 104 +++++++++++++----- 1 file changed, 75 insertions(+), 29 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 01db091efa..8f1eefa0cb 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 @@ -228,14 +228,14 @@ class SweeperFragment : BaseSweeperTabFragment { - mDialog = sweeperCloudTaskSuspendDialog() + mDialog = sweeperCloudTaskSuspendDialog(it.taskId) showNotice("云端暂停任务,注意车辆即将停车!") } @@ -553,10 +554,16 @@ class SweeperFragment : BaseSweeperTabFragment Date: Fri, 28 Jul 2023 22:52:05 +0800 Subject: [PATCH 18/35] =?UTF-8?q?[SweeperCloud]=20fix:=20=E4=B9=8B?= =?UTF-8?q?=E5=89=8D=E6=B7=BB=E5=8A=A0=E9=AB=98=E7=B2=BE=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?Marker=E6=97=B6=EF=BC=8C=E8=B5=B7=E7=82=B9/=E7=BB=88=E7=82=B9?= =?UTF-8?q?=20Marker=E4=B8=BA=E4=BA=86=E9=81=BF=E5=85=8D=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E6=98=AF=20=E5=88=A0=E9=99=A4-=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=B5=B7=E7=82=B9-=E5=A2=9E=E5=8A=A0=E7=BB=88?= =?UTF-8?q?=E7=82=B9=EF=BC=8C=E4=BD=86=E6=98=AF=E5=9B=A0=E4=B8=BA=E9=83=BD?= =?UTF-8?q?=E6=98=AF=E5=BC=82=E6=AD=A5=E6=93=8D=E4=BD=9C=EF=BC=8C=E4=BC=9A?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E5=85=88=E6=B7=BB=E5=8A=A0=E9=87=8C=E9=9D=A2?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E8=BF=99?= =?UTF-8?q?=E9=87=8C=E5=B0=863=E4=B8=AA=E6=93=8D=E4=BD=9C=E6=94=BE?= =?UTF-8?q?=E5=85=A5=E4=B8=80=E4=B8=AARunnable=E5=90=8C=E6=AD=A5=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweepercloud/fragment/SweeperFragment.kt | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 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 8f1eefa0cb..3a71d851a5 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 @@ -218,7 +218,6 @@ class SweeperFragment : BaseSweeperTabFragment Date: Sat, 29 Jul 2023 15:13:25 +0800 Subject: [PATCH 19/35] =?UTF-8?q?[SweeperCloud]refactor:=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0HD=20Marker=E4=BD=BF=E7=94=A8wgsLocation;=20feat:=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E5=A2=9E=E5=8A=A0/=E5=88=A0=E9=99=A4=20?= =?UTF-8?q?=E9=AB=98=E7=BA=A7=E5=9C=B0=E5=9B=BEMarkder=20=E7=9A=84Mock;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fragment/BaseSweeperTabFragment.java | 19 +++++++ .../sweepercloud/fragment/SweeperFragment.kt | 4 +- .../util/SweeperCloudTaskUtils.kt | 54 +++++++++++++++++++ .../main/res/layout/sweeper_base_fragment.xml | 24 ++++++++- 4 files changed, 98 insertions(+), 3 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 e3842fcf82..39861e1082 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 @@ -59,6 +59,7 @@ import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; +import java.util.Random; import mogo.telematics.pad.MessagePad; @@ -213,6 +214,24 @@ public abstract class BaseSweeperTabFragment SweeperCloudTaskUtils.mockSendCloudBigTaskStatus() ); + // 模拟 添加高精地图Marker + findViewById(R.id.btnAddHDMarker).setOnClickListener(view -> { + // 坐标地址:湖南省衡阳市雁峰区金龙坪街道科学城大道衡山科学城停车场 + SweeperCloudTaskUtils.mockAddHdMarker("marker_sweeper_subtask_123_start", + 112.57742887355035, + 26.82068193910221, + true); + // 坐标地址:湖南省衡阳市雁峰区岳屏镇雁鸣路 + SweeperCloudTaskUtils.mockAddHdMarker("marker_sweeper_subtask_123_end", + 112.56666738544979, + 26.822879976829867, + false); + } + ); + // 模拟 移除高精地图Marker + findViewById(R.id.btnRemoveHDMarker).setOnClickListener(view -> + SweeperCloudTaskUtils.mockRemoveHDMarker() + ); mTrafficDataView.getSpeedImage().setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { 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 3a71d851a5..153f21fe8d 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 @@ -883,8 +883,8 @@ class SweeperFragment : BaseSweeperTabFragment +