Merge branch 'dev_sweeper-d_230423_3.1.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_sweeper-d_230423_3.1.0
This commit is contained in:
@@ -12,6 +12,6 @@ public interface ISweeperControllerStatusCallback {
|
||||
void onVRModeChanged(boolean isVRMode);
|
||||
// 自车定位
|
||||
void onCarLocationChanged(MogoLocation location);
|
||||
//开始开启自动驾驶
|
||||
void startOpenAutopilot();
|
||||
//自动驾驶状态
|
||||
void onAutopilotState(int state);
|
||||
}
|
||||
|
||||
@@ -249,7 +249,9 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
mapBizView.onCreate(savedInstanceState);
|
||||
mMapWeltView.onCreateView(savedInstanceState);
|
||||
}
|
||||
|
||||
public void setAutoState(int state){
|
||||
mTrafficDataView.setAutoState(state);
|
||||
}
|
||||
/**
|
||||
* 消息盒子
|
||||
*/
|
||||
@@ -549,18 +551,6 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
public void setTaskDataToFragmentCallback(ISweeperTaskDataToFragmentCallback mTaskDataToFragmentCallback) {
|
||||
this.mTaskDataToFragmentCallback = mTaskDataToFragmentCallback;
|
||||
}
|
||||
/**
|
||||
* 模拟pad获取正在执行的任务
|
||||
*/
|
||||
public void mockCloudTaskInfo() {
|
||||
SweeperCloudTaskUtils.mockSendCloudTaskInfo(SweeperCloudTask.MessageType.CloudPushTask);
|
||||
}
|
||||
/**
|
||||
* 模拟云端发送任务信息
|
||||
*/
|
||||
public void mockSendCloudTaskInfo() {
|
||||
SweeperCloudTaskUtils.mockSendCloudTaskInfo(SweeperCloudTask.MessageType.CloudPushTask);
|
||||
}
|
||||
/**
|
||||
* 结束子任务
|
||||
*/
|
||||
|
||||
@@ -53,7 +53,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
private var mSubTaskType: TaskModel = TaskModel.DEFAULT_MODEL //1:自动驾驶子任务 2:人工驾驶子任务 -1:未知任务类型
|
||||
private var mCurrentSubTaskInfo: SubTaskInfo? = null//当前正在执行的子任务
|
||||
private val mLoadingDialog: SweeperCloudLoadingDialog by lazy { SweeperCloudLoadingDialog(requireContext()) }
|
||||
private var mDialog:SweeperCloudDialog?=null
|
||||
private var mDialog: SweeperCloudDialog? = null
|
||||
|
||||
override fun getTagName(): String {
|
||||
return "SweepersFragment"
|
||||
@@ -111,7 +111,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
getCurrentView().getAutoBtn().setOnClickListener {
|
||||
//前置条件 (1)必须处于人工驾驶状态 (2)必须有正在执行的子任务,且子任务类型为自动驾驶子任务 才能请求云端进入自驾
|
||||
mCurrentSubTaskInfo?.let {
|
||||
if (mPresenter?.autopilotState == STATUS_AUTOPILOT_ENABLE&&it.taskModel==TaskModel.AUTO) {
|
||||
if (mPresenter?.autopilotState == STATUS_AUTOPILOT_ENABLE && it.taskModel == TaskModel.AUTO) {
|
||||
mLoadingDialog.showLoading()
|
||||
mPresenter?.sendSweeperAutopilotBootable(mTaskInfo?.taskId, it.subTaskId, it.lineId.toLong())
|
||||
}
|
||||
@@ -243,7 +243,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
}
|
||||
val timeout: String = getTimeSpent(it.taskEndTime)
|
||||
//数据重复导致连续弹窗
|
||||
if (mDialog!=null&& mDialog!!.isShowing){
|
||||
if (mDialog != null && mDialog!!.isShowing) {
|
||||
return
|
||||
}
|
||||
if (stopTaskType == SweeperTaskStop.StopTaskType.NORMAL) {
|
||||
@@ -253,19 +253,19 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
override fun onConfirm() {
|
||||
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.MANUAL_CONFIRM)
|
||||
mLoadingDialog.showLoading()
|
||||
ToastUtils.showLong("确认")
|
||||
//ToastUtils.showLong("确认")
|
||||
}
|
||||
|
||||
override fun onRefuseOrEnd() {
|
||||
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.MANUAL_REFUSE)
|
||||
mLoadingDialog.showLoading()
|
||||
ToastUtils.showLong("拒绝")
|
||||
//ToastUtils.showLong("拒绝")
|
||||
}
|
||||
|
||||
override fun onCountDownStop() {
|
||||
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.OVER_TIME)
|
||||
mLoadingDialog.showLoading()
|
||||
ToastUtils.showLong("倒计时")
|
||||
//ToastUtils.showLong("倒计时")
|
||||
}
|
||||
|
||||
override fun onNext() {
|
||||
@@ -315,19 +315,14 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
if (it.taskId != taskId) {
|
||||
return
|
||||
}
|
||||
//大任务正常结束
|
||||
if (subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.FINISHED) {
|
||||
//大任务处于取消状态 异常状态pad端都显示无任务列表
|
||||
if (subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.CANCLE || subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.ABNORMAL || subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.FINISHED) {
|
||||
//数据重复导致连续弹窗
|
||||
if (mDialog!=null&& mDialog!!.isShowing){
|
||||
if (mDialog != null && mDialog!!.isShowing) {
|
||||
return
|
||||
}
|
||||
mDialog=sweeperCloudTaskNormalEndDialog()
|
||||
mDialog = sweeperCloudTaskNormalEndDialog()
|
||||
mDialog?.show()
|
||||
return
|
||||
}
|
||||
//大任务处于取消状态 异常状态pad端都显示无任务列表
|
||||
if (subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.CANCLE || subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.ABNORMAL) {
|
||||
resetTaskInfoPanel()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -337,10 +332,16 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
*/
|
||||
fun onSweeperCloudAutopilotBootable(taskId: String, subTaskId: String, isBootableResp: SweeperBootable.IsBootableResp) {
|
||||
mLoadingDialog.hideLoading()
|
||||
if (isBootableResp.code == SweeperCommon.Code.SUCCEED) {
|
||||
ToastUtils.showLong("请求成功")
|
||||
} else {
|
||||
ToastUtils.showLong("请求失败")
|
||||
//如果云端要更新的任务和本地缓存任务不是同一个,在无法进行任务列表状态更新
|
||||
mTaskInfo?.let {
|
||||
if (it.taskId != taskId) {
|
||||
return
|
||||
}
|
||||
if (isBootableResp.code == SweeperCommon.Code.SUCCEED) {
|
||||
ToastUtils.showLong("上报云控成功")
|
||||
} else {
|
||||
ToastUtils.showLong("上报云控失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -432,30 +433,30 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
val subInfo = bySubTaskIdFindSubTaskInfo(subTaskId)
|
||||
subInfo?.let {
|
||||
//数据重复导致连续弹窗
|
||||
if (mDialog!=null&& mDialog!!.isShowing){
|
||||
if (mDialog != null && mDialog!!.isShowing) {
|
||||
return
|
||||
}
|
||||
mDialog = createConfirmStartSubTaskDialog(context, object : SweeperCloudDialogClickListener {
|
||||
override fun onConfirm() {
|
||||
ToastUtils.showLong("确认")
|
||||
//ToastUtils.showLong("确认")
|
||||
mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.MANUAL_CONFIRM)
|
||||
mLoadingDialog.showLoading()
|
||||
}
|
||||
|
||||
override fun onRefuseOrEnd() {
|
||||
ToastUtils.showLong("结束")
|
||||
//ToastUtils.showLong("结束")
|
||||
mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.MANUAL_REFUSE_ALL)
|
||||
mLoadingDialog.showLoading()
|
||||
}
|
||||
|
||||
override fun onCountDownStop() {
|
||||
ToastUtils.showLong("倒计时结束")
|
||||
//ToastUtils.showLong("倒计时结束")
|
||||
mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.OVER_TIME)
|
||||
mLoadingDialog.showLoading()
|
||||
}
|
||||
|
||||
override fun onNext() {
|
||||
ToastUtils.showLong("下一个")
|
||||
//ToastUtils.showLong("下一个")
|
||||
mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.MANUAL_REFUSE_SINGLE)
|
||||
mLoadingDialog.showLoading()
|
||||
}
|
||||
@@ -472,7 +473,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
mTaskInfo?.let {
|
||||
mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.RECEIVED)
|
||||
//数据重复导致连续弹窗
|
||||
if (mDialog!=null&& mDialog!!.isShowing){
|
||||
if (mDialog != null && mDialog!!.isShowing) {
|
||||
return
|
||||
}
|
||||
mDialog = createReceivedTaskInfoDialog(context, object : SweeperCloudDialogClickListener {
|
||||
@@ -487,14 +488,14 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
|
||||
override fun onRefuseOrEnd() {
|
||||
//ToastUtils.showLong("拒绝")
|
||||
setShowCurrentTaskPanelView(false)
|
||||
mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.MANUAL_REFUSE)
|
||||
mLoadingDialog.showLoading()
|
||||
resetTaskInfoPanel()
|
||||
}
|
||||
|
||||
override fun onCountDownStop() {
|
||||
//ToastUtils.showLong("倒计时结束")
|
||||
setShowCurrentTaskPanelView(false)
|
||||
resetTaskInfoPanel()
|
||||
mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.OVER_TIME)
|
||||
mLoadingDialog.showLoading()
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCleanSystemListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCloudTaskListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
|
||||
import com.mogo.och.common.module.utils.NumberFormatUtil;
|
||||
@@ -300,10 +301,8 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
public void onSweeperFutianCloudTask(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTask.TaskInfo taskInfo) {
|
||||
|
||||
if (taskInfo != null) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG,
|
||||
"messageType: "+messageType.getNumber()+" sysTime:"+sysTime+" onSweeperFutianCloudTask:" + printMessage(taskInfo) + " mSweeperTaskCallback:" + mSweeperTaskCallback);
|
||||
}
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG,
|
||||
"messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " onSweeperFutianCloudTask:" + (taskInfo == null ? "null" : printMessage(taskInfo)) + " mSweeperTaskCallback:" + mSweeperTaskCallback);
|
||||
if (mSweeperTaskCallback != null) {
|
||||
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
|
||||
mSweeperTaskCallback.onSweeperCloudTask(messageType, taskInfo);
|
||||
@@ -314,8 +313,9 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
public void onSweeperFutianCloudTaskConfirm(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTaskConfirm.TaskConfirm taskConfirm) {
|
||||
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: "+messageType.getNumber()+" sysTime:"+sysTime+" onSweeperFutianCloudTaskConfirm:" + printMessage(taskConfirm));
|
||||
if (mSweeperTaskCallback != null&&taskConfirm!=null) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudTaskConfirm:" + printMessage(taskConfirm));
|
||||
if (mSweeperTaskCallback != null && taskConfirm != null) {
|
||||
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
|
||||
mSweeperTaskCallback.onSweeperCloudTaskConfirm(taskConfirm.getTaskId(), taskConfirm.getSubTaskId());
|
||||
}
|
||||
@@ -324,8 +324,9 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
@Override
|
||||
public void onSweeperFutianCloudTaskStatus(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTaskStatus.TaskStatusPush taskStatusPush) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: "+messageType.getNumber()+" sysTime:"+sysTime+" onSweeperFutianCloudTaskStatus:" + printMessage(taskStatusPush));
|
||||
if (mSweeperTaskCallback != null&&taskStatusPush!=null) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudTaskStatus:" + printMessage(taskStatusPush));
|
||||
if (mSweeperTaskCallback != null && taskStatusPush != null) {
|
||||
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
|
||||
mSweeperTaskCallback.onSweeperCloudTaskStatus(taskStatusPush.getTaskId(), taskStatusPush.getSubTaskId(), taskStatusPush.getTaskStatus());
|
||||
}
|
||||
@@ -334,18 +335,20 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
@Override
|
||||
public void onSweeperFutianCloudTaskStop(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTaskStop.StopTaskReq stopTaskReq) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: "+messageType.getNumber()+" sysTime:"+sysTime+" onSweeperFutianCloudTaskStop:" + printMessage(stopTaskReq));
|
||||
if (mSweeperTaskCallback != null&&stopTaskReq!=null) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudTaskStop:" + printMessage(stopTaskReq));
|
||||
if (mSweeperTaskCallback != null && stopTaskReq != null) {
|
||||
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
|
||||
mSweeperTaskCallback.onSweeperCloudTaskStop(stopTaskReq.getTaskId(), stopTaskReq.getType());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudTaskSuspendResume(@NonNull SweeperCloudTask.MessageType messageType,String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudTaskSuspendResume(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: "+messageType.getNumber()+" sysTime:"+sysTime+" onSweeperFutianCloudTaskSuspendResume:" + printMessage(suspendResumeTaskResp));
|
||||
if (mSweeperTaskCallback != null&&suspendResumeTaskResp!=null) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudTaskSuspendResume:" + printMessage(suspendResumeTaskResp));
|
||||
if (mSweeperTaskCallback != null && suspendResumeTaskResp != null) {
|
||||
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
|
||||
mSweeperTaskCallback.onSweeperCloudTaskSuspendResume(messageType, suspendResumeTaskResp.getTaskId(),
|
||||
suspendResumeTaskResp.getSubTaskId(), suspendResumeTaskResp.getCode());
|
||||
@@ -355,8 +358,9 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
@Override
|
||||
public void onSweeperFutianCloudBootable(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperBootable.IsBootableResp isBootableResp) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: "+messageType.getNumber()+" sysTime:"+sysTime+" onSweeperFutianCloudBootable:" + printMessage(isBootableResp));
|
||||
if (mSweeperTaskCallback != null&&isBootableResp!=null) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudBootable:" + printMessage(isBootableResp));
|
||||
if (mSweeperTaskCallback != null && isBootableResp != null) {
|
||||
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
|
||||
mSweeperTaskCallback.onSweeperCloudBootable(isBootableResp.getTaskId(), isBootableResp.getSubTaskId(), isBootableResp);
|
||||
}
|
||||
@@ -365,8 +369,9 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
@Override
|
||||
public void onSweeperFutianCloudBigTaskStatus(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: "+messageType.getNumber()+" sysTime:"+sysTime+" onSweeperFutianCloudBigTaskStatus:" + printMessage(bigTaskStatusPush));
|
||||
if (mSweeperTaskCallback != null&&bigTaskStatusPush!=null) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudBigTaskStatus:" + printMessage(bigTaskStatusPush));
|
||||
if (mSweeperTaskCallback != null && bigTaskStatusPush != null) {
|
||||
msgTypeAndReqNo.put(messageType.getNumber(), reqNo);
|
||||
mSweeperTaskCallback.onSweeperCloudBigTaskStatus(bigTaskStatusPush.getTaskId(), bigTaskStatusPush.getTaskStatus());
|
||||
}
|
||||
@@ -458,7 +463,8 @@ 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());
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG,
|
||||
"getCurrentTask:" + printMessage(getTaskReq) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.PadSendGetTaskReq.getNumber());
|
||||
getAutoPilotControlManager().sendSweeperGetTaskReq(reqNo, getTaskReq);
|
||||
// TODO: 2023/5/5 模拟云控获取任务
|
||||
// UiThreadHandler.postDelayed(() -> {
|
||||
@@ -478,7 +484,8 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
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());
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG,
|
||||
"sendSweeperStartTaskResp:" + printMessage(startTaskResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTask.getNumber());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -492,7 +499,8 @@ 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());
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG,
|
||||
"sendSweeperTaskConfirmResp" + printMessage(taskConfirmResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
|
||||
getAutoPilotControlManager().sendSweeperTaskConfirmResp(reqNo, taskConfirmResp);
|
||||
}
|
||||
|
||||
@@ -509,7 +517,8 @@ 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());
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG,
|
||||
"sendSweeperStopTaskResp" + printMessage(stopTaskResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTaskStop.getNumber());
|
||||
getAutoPilotControlManager().sendSweeperStopTaskResp(reqNo, stopTaskResp);
|
||||
}
|
||||
|
||||
@@ -528,10 +537,11 @@ 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());
|
||||
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();
|
||||
//SweeperCloudTaskUtils.mockSendCloudBootable();
|
||||
}
|
||||
|
||||
public CallerAutoPilotControlManager getAutoPilotControlManager() {
|
||||
@@ -544,8 +554,11 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
|
||||
@Override
|
||||
public void onAutopilotStatusResponse(@NonNull AutopilotStatusInfo autoPilotStatusInfo) {
|
||||
CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onAutopilotStatusResponse state:" + autoPilotStatusInfo.getState());
|
||||
//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;
|
||||
@@ -577,6 +590,11 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
|
||||
@Override
|
||||
public void onAutopilotIpcConnectStatusChanged(int status, @Nullable String reason) {
|
||||
if (status == 0x00){//判断工控机重连后,获取当前正在执行的子任务,延时10秒,防止工控机连接上时SN为空
|
||||
UiThreadHandler.postDelayed(()->{
|
||||
getCurrentTask();
|
||||
},10000);
|
||||
}
|
||||
//CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onAutopilotIpcConnectStatusChanged status:" + status + " reason:" + reason);
|
||||
}
|
||||
|
||||
|
||||
@@ -83,6 +83,11 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotState(int state) {
|
||||
ThreadUtils.runOnUiThread(() ->mView.setAutoState(state));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取自动驾驶状态
|
||||
* @return
|
||||
@@ -90,12 +95,6 @@ public class SweeperPresenter extends Presenter<SweeperFragment>
|
||||
public int getAutopilotState() {
|
||||
return SweeperTaskModel.getInstance().getAutopilotState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startOpenAutopilot() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除路线缓存数据
|
||||
*/
|
||||
|
||||
@@ -33,7 +33,7 @@ class SweeperCloudLoadingDialog : BaseFloatDialog, LifecycleObserver {
|
||||
* 开始旋转
|
||||
*/
|
||||
private fun startRotation() {
|
||||
objectAnimator = ObjectAnimator.ofFloat(mLoadingView, "rotation", 0f, 720f)
|
||||
objectAnimator = ObjectAnimator.ofFloat(mLoadingView, "rotation", -720f, 0f)
|
||||
objectAnimator?.let {
|
||||
it.duration = 3000
|
||||
it.repeatCount = -1
|
||||
|
||||
@@ -30,9 +30,10 @@ object SweeperCloudTaskUtils {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun mockQueryCurrentTaskInfo() {
|
||||
UiThreadHandler.getsUiHandler().postDelayed({
|
||||
mockSendCloudTaskInfo(MessageType.PadSendGetTaskReq)
|
||||
},1000)
|
||||
// UiThreadHandler.getsUiHandler().postDelayed({
|
||||
// mockSendCloudTaskInfo(MessageType.PadSendGetTaskReq)
|
||||
// },1000)
|
||||
SweeperTaskModel.getInstance().getCurrentTask()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -202,7 +203,7 @@ object SweeperCloudTaskUtils {
|
||||
val builder = SweeperBigTaskStatus.BigTaskStatusPush.newBuilder()
|
||||
builder.sn = getDriverSn()
|
||||
builder.taskId = "10"
|
||||
builder.taskStatus = BigTaskStatus.RUNNING
|
||||
builder.taskStatus = BigTaskStatus.FINISHED
|
||||
builder.systemTime = System.currentTimeMillis()
|
||||
SweeperTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus(
|
||||
MessageType.CloudPushBigTaskStatus, "${System.currentTimeMillis()}",
|
||||
|
||||
@@ -12,10 +12,7 @@ import chassis.Chassis.LightSwitch
|
||||
import chassis.ChassisStatesOuterClass.BMSSystemStates
|
||||
import chassis.ChassisStatesOuterClass.SweeperFuTianTaskSystemStates
|
||||
import com.elegant.utils.UiThreadHandler
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoBatteryManagementSystemListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGearStateListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoSweeperFutianCleanSystemListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.*
|
||||
import com.mogo.eagle.core.function.call.autopilot.*
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.TapPositionView
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
@@ -32,16 +29,15 @@ class SweeperTrafficDataView : ConstraintLayout,
|
||||
IMoGoBatteryManagementSystemListener,
|
||||
IMoGoChassisLamplightListener,
|
||||
IMoGoChassisGearStateListener,
|
||||
IMoGoSweeperFutianCleanSystemListener
|
||||
{
|
||||
IMoGoSweeperFutianCleanSystemListener {
|
||||
private var tapPositionView //方向盘下方的档位
|
||||
: TapPositionView? = null
|
||||
private var speedImage //速度图标
|
||||
: ImageView? = null
|
||||
private var speedTextView //速度值
|
||||
: TextView? = null
|
||||
private var sweeperTurnSignal //转向灯
|
||||
: TurnSignalView? = null
|
||||
private var sweeperAutoState //自动驾驶状态
|
||||
: TextView? = null
|
||||
private var tvBattery //电量百分比展示
|
||||
: TextView? = null
|
||||
private var ivBgWaterWarning //水位预警背景图
|
||||
@@ -72,7 +68,7 @@ class SweeperTrafficDataView : ConstraintLayout,
|
||||
tapPositionView = findViewById(R.id.sweeperTrafficPosition)
|
||||
speedImage = findViewById(R.id.sweeperSpeedImage)
|
||||
speedTextView = findViewById(R.id.sweeperSpeedText)
|
||||
sweeperTurnSignal = findViewById(R.id.sweeperTurnSignal)
|
||||
sweeperAutoState = findViewById(R.id.sweeperAutoState)
|
||||
tvBattery = findViewById(R.id.tvBattery)
|
||||
ivBgWaterWarning = findViewById(R.id.sweeperIvBgWaterWarning)
|
||||
ivWater = findViewById(R.id.sweeperIvWater)
|
||||
@@ -92,7 +88,7 @@ class SweeperTrafficDataView : ConstraintLayout,
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow()
|
||||
CallerBatteryManagementSystemListenerManager.removeListener(TAG )
|
||||
CallerBatteryManagementSystemListenerManager.removeListener(TAG)
|
||||
CallerChassisLamplightListenerManager.removeListener(TAG)
|
||||
CallerChassisGearStateListenerManager.removeListener(TAG)
|
||||
CallerSweeperFutianCleanSystemListenerManager.removeListener(TAG)
|
||||
@@ -101,7 +97,7 @@ class SweeperTrafficDataView : ConstraintLayout,
|
||||
override fun onSweeperFutianTaskIndexData(roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex) {}
|
||||
override fun onSweeperFutianCleanSystemState(cleanSystemState: SweeperFuTianTaskSystemStates) {
|
||||
val current = System.currentTimeMillis()
|
||||
if (current - mCurrentTimeWaterMillis <=VEHICLE_STATE_INTERVAL_MILLIS) {
|
||||
if (current - mCurrentTimeWaterMillis <= VEHICLE_STATE_INTERVAL_MILLIS) {
|
||||
return
|
||||
}
|
||||
mCurrentTimeWaterMillis = current
|
||||
@@ -121,23 +117,49 @@ class SweeperTrafficDataView : ConstraintLayout,
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun onBatteryManagementSystemStates(states: BMSSystemStates) {
|
||||
val current = System.currentTimeMillis()
|
||||
if (current - mCurrentTimeBatteryMillis <=VEHICLE_STATE_INTERVAL_MILLIS) {
|
||||
if (current - mCurrentTimeBatteryMillis <= VEHICLE_STATE_INTERVAL_MILLIS) {
|
||||
return
|
||||
}
|
||||
mCurrentTimeBatteryMillis = current
|
||||
d(SceneConstant.M_SWEEPER + TAG, "电量:${states.bmsSoc}")
|
||||
UiThreadHandler.post{
|
||||
UiThreadHandler.post {
|
||||
tvBattery?.text = "${states.bmsSoc.roundToInt()}%"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆转向灯
|
||||
* @param directionLight
|
||||
*/
|
||||
override fun onAutopilotLightSwitchData(lightSwitch: LightSwitch?) {
|
||||
//转向灯状态 0是正常 1是左转 2是右转
|
||||
if (lightSwitch != null) {
|
||||
sweeperTurnSignal?.setTurnLight(lightSwitch)
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置自动驾驶状态
|
||||
*/
|
||||
fun setAutoState(state: Int) {
|
||||
when (state) {
|
||||
//不可自动驾驶
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {
|
||||
sweeperAutoState?.text="自动驾驶"
|
||||
sweeperAutoState?.setBackgroundResource(R.drawable.icon_not_auto)
|
||||
}
|
||||
//人工驾驶
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {
|
||||
sweeperAutoState?.text="人工驾驶"
|
||||
sweeperAutoState?.setBackgroundResource(R.drawable.icon_auto)
|
||||
}
|
||||
//自动驾驶中
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
|
||||
sweeperAutoState?.text="自动驾驶"
|
||||
sweeperAutoState?.setBackgroundResource(R.drawable.icon_auto)
|
||||
}
|
||||
//平行驾驶
|
||||
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
|
||||
sweeperAutoState?.text="平行驾驶"
|
||||
sweeperAutoState?.setBackgroundResource(R.drawable.icon_auto)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,6 +170,7 @@ class SweeperTrafficDataView : ConstraintLayout,
|
||||
override fun onAutopilotBrakeLightData(brakeLight: Boolean) {
|
||||
d(TAG, "刹车灯:$brakeLight")
|
||||
}
|
||||
|
||||
/**
|
||||
* 方向盘下方的档位
|
||||
* @param gear
|
||||
@@ -158,9 +181,11 @@ class SweeperTrafficDataView : ConstraintLayout,
|
||||
tapPositionView?.updateWithGear(gear)
|
||||
}
|
||||
}
|
||||
fun getSpeedImage():ImageView?{
|
||||
return speedImage
|
||||
|
||||
fun getSpeedImage(): ImageView? {
|
||||
return speedImage
|
||||
}
|
||||
|
||||
/**
|
||||
* 速度设置
|
||||
*/
|
||||
|
||||
BIN
OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_auto.png
Executable file
BIN
OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_auto.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_not_auto.png
Executable file
BIN
OCH/sweeper/sweeper-cloud/src/main/res/drawable-xhdpi/icon_not_auto.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
@@ -1,5 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<gradient android:startColor="#2A537F" android:endColor="#263A5B" android:angle="315"/>
|
||||
<corners android:radius="@dimen/dp_45"/>
|
||||
</shape>
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:innerRadiusRatio="3"
|
||||
android:shape="ring"
|
||||
android:thicknessRatio="16"
|
||||
android:useLevel="false">
|
||||
<gradient
|
||||
android:endColor="#6020AAFF"
|
||||
android:centerColor="#102F6EFF"
|
||||
android:startColor="#6020AAFF"
|
||||
android:type="sweep" />
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/sweeper_cloud_rotation_background"/>
|
||||
<item android:drawable="@drawable/sweeper_cloud_rotation"/>
|
||||
</layer-list>
|
||||
@@ -12,18 +12,20 @@
|
||||
app:shadow_position="outer"
|
||||
app:xOffset="0dp"
|
||||
app:yOffset="0dp">
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
<com.mogo.och.common.module.wigets.OCHRoundConstraintLayout
|
||||
android:layout_width="@dimen/dp_800"
|
||||
android:layout_height="@dimen/dp_560"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/bg_shape_dialog_cloud_view">
|
||||
android:background="@drawable/bg_shape_dialog_cloud_view"
|
||||
app:roundLayoutRadius="@dimen/dp_45"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/sweeper_cloud_imageview"
|
||||
android:layout_width="@dimen/dp_84"
|
||||
android:layout_height="@dimen/dp_84"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:src="@drawable/shape_sweeper_cloud_rotation"
|
||||
android:src="@drawable/sweeper_cloud_rotation_layer"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
@@ -67,8 +69,8 @@
|
||||
android:id="@+id/sweeper_cloud_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:layout_marginEnd="@dimen/dp_30"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginEnd="@dimen/dp_60"
|
||||
android:gravity="center"
|
||||
android:textColor="#FFFFFFFF"
|
||||
android:textSize="@dimen/dp_50"
|
||||
@@ -78,9 +80,9 @@
|
||||
android:id="@+id/sweeper_cloud_tip"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_30"
|
||||
android:layout_marginStart="@dimen/dp_60"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:layout_marginEnd="@dimen/dp_30"
|
||||
android:layout_marginEnd="@dimen/dp_60"
|
||||
android:gravity="center"
|
||||
android:textColor="#A6CEFF"
|
||||
android:textSize="@dimen/dp_40"
|
||||
@@ -129,5 +131,5 @@
|
||||
android:textSize="@dimen/dp_50"
|
||||
tools:text="拒绝" />
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</com.mogo.och.common.module.wigets.OCHRoundConstraintLayout>
|
||||
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout>
|
||||
@@ -68,21 +68,27 @@
|
||||
app:layout_constraintBottom_toBottomOf="@+id/sweeperTrafficPosition"
|
||||
android:layout_marginStart="@dimen/dp_34"
|
||||
/>
|
||||
<com.mogo.och.sweepercloud.view.TurnSignalView
|
||||
android:id="@+id/sweeperTurnSignal"
|
||||
android:layout_width="@dimen/dp_200"
|
||||
android:layout_height="wrap_content"
|
||||
<TextView
|
||||
android:id="@+id/sweeperAutoState"
|
||||
android:layout_width="@dimen/dp_168"
|
||||
android:layout_height="@dimen/dp_58"
|
||||
app:layout_constraintTop_toBottomOf="@+id/sweeperTrafficPosition"
|
||||
app:layout_constraintLeft_toRightOf="@+id/sweeperSpeedImage"
|
||||
android:layout_marginTop="@dimen/dp_10"/>
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:text="自动驾驶"
|
||||
android:background="@drawable/icon_not_auto"
|
||||
android:layout_marginStart="@dimen/dp_20"/>
|
||||
<View
|
||||
android:id="@+id/line2"
|
||||
android:layout_width="@dimen/dp_1"
|
||||
android:layout_height="@dimen/dp_34"
|
||||
app:layout_constraintStart_toEndOf="@+id/sweeperTurnSignal"
|
||||
app:layout_constraintTop_toTopOf="@+id/sweeperTurnSignal"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/sweeperTurnSignal"
|
||||
android:layout_marginStart="@dimen/dp_12"
|
||||
app:layout_constraintStart_toEndOf="@+id/sweeperAutoState"
|
||||
app:layout_constraintTop_toTopOf="@+id/sweeperAutoState"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/sweeperAutoState"
|
||||
android:layout_marginStart="@dimen/dp_26"
|
||||
android:background="#414869"/>
|
||||
<com.mogo.och.sweepercloud.view.SweeperTrafficLightView
|
||||
android:id="@+id/sweeperTrafficLight"
|
||||
@@ -136,7 +142,7 @@
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:layout_marginEnd="@dimen/dp_36"
|
||||
app:layout_constraintTop_toBottomOf="@+id/sweeperTurnSignal"
|
||||
app:layout_constraintTop_toBottomOf="@+id/sweeperAutoState"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/sweeperIvBgWaterWarning"
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
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;
|
||||
import com.zhidao.support.adas.high.common.CupidLogUtils;
|
||||
import com.zhidao.support.adas.high.protocol.RawData;
|
||||
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
|
||||
@@ -41,6 +44,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);
|
||||
boolean isExistPayload = payload != null && !payload.isEmpty();
|
||||
if (msgType == SweeperCloudTask.MessageType.CloudPushTask || msgType == SweeperCloudTask.MessageType.PadSendGetTaskReq) {
|
||||
//1、云端下发大任务信息(type: 100001)-> sweeper_task.proto
|
||||
@@ -49,6 +53,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)));
|
||||
adasListener.onSweeperFutianCloudTask(header, msgType, reqNo, sysTime, taskInfo);
|
||||
} else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskConfirm) {
|
||||
//2、云端下发子任务,请求pad确认(type:100002)-> sweeper_task_confirm.proto
|
||||
@@ -56,6 +62,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)));
|
||||
adasListener.onSweeperFutianCloudTaskConfirm(header, msgType, reqNo, sysTime, taskConfirm);
|
||||
} else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskStatus) {
|
||||
//3、云端下发任务状态到pad(type:100003)-> sweeper_task_status.proto
|
||||
@@ -63,6 +71,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)));
|
||||
adasListener.onSweeperFutianCloudTaskStatus(header, msgType, reqNo, sysTime, taskStatusPush);
|
||||
} else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskStop) {
|
||||
//4、云端请求pad结束任务(type:100004)-> sweeper_task_stop.proto
|
||||
@@ -70,6 +80,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)));
|
||||
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
|
||||
@@ -78,6 +90,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)));
|
||||
adasListener.onSweeperFutianCloudTaskSuspendResume(header, msgType, reqNo, sysTime, suspendResumeTaskResp);
|
||||
} else if (msgType == SweeperCloudTask.MessageType.PadSendBootable) {
|
||||
//8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_autopilot.proto
|
||||
@@ -85,6 +99,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)));
|
||||
adasListener.onSweeperFutianCloudBootable(header, msgType, reqNo, sysTime, isBootableResp);
|
||||
} else if (msgType == SweeperCloudTask.MessageType.CloudPushBigTaskStatus) {
|
||||
//9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto
|
||||
@@ -92,9 +108,12 @@ 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)));
|
||||
adasListener.onSweeperFutianCloudBigTaskStatus(header, msgType, reqNo, sysTime, bigTaskStatusPush);
|
||||
} else {
|
||||
//未知数据类型
|
||||
Log.i("SweeperCloudTaskMessage", " 错误数据=" + ByteUtil.byteArrToHex(bytes));
|
||||
adasListener.onSweeperFutianCloudTaskUnknown(header, bytes);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user