[3.4.0-map-sdk] merge

This commit is contained in:
zhongchao
2023-09-11 18:14:56 +08:00
parent 9f4df04133
commit 94c7b74a81
7 changed files with 66 additions and 68 deletions

View File

@@ -1,20 +1,23 @@
package com.mogo.och.bus.fragment;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import static com.mogo.map.MogoMap.DEFAULT;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.map.CenterLine;
import com.mogo.eagle.core.data.temp.EventLogout;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
@@ -22,6 +25,7 @@ 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.MapDataWrapper;
import com.mogo.map.overlay.IMoGoOverlayManager;
import com.mogo.map.overlay.core.Level;
import com.mogo.map.overlay.point.Point;
@@ -41,8 +45,10 @@ import com.mogo.och.common.module.utils.QRUtilsKt;
import com.mogo.och.common.module.wigets.BindQRCodeDialog;
import com.mogo.och.common.module.wigets.MarqueeTextView;
import com.mogo.och.common.module.wigets.OCHCommitDialog;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
import me.jessyan.autosize.utils.AutoSizeUtils;
@@ -80,10 +86,11 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
if(loginService!=null){
loginService.registerFragment(this, getPresenter(),new LoginBusImpl());
if (loginService != null) {
loginService.registerFragment(this, getPresenter(), new LoginBusImpl());
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
@@ -112,12 +119,9 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
mSwitchLine.setOnClickListener(this);
mLineName.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
showHideTestBar();
return false;
}
mLineName.setOnLongClickListener(v -> {
showHideTestBar();
return false;
});
}
@@ -177,7 +181,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
}
public void updateLineEmptyUI(){
setArrivedClikable(false);
setArrivedClickable(false);
showOrHideSwitchLineBtn(true);
hideStationsPanel();
hideSlidePanel();
@@ -489,26 +493,24 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
.icon3DRes(resourceId)
.latitude(lat)
.longitude(longi);
IMogoMapUIController mapUIController = CallerMapUIServiceManager.INSTANCE.getMapUIController();
if (mapUIController != null) {
CenterLine centerLine = mapUIController.getCenterLineInfo(
longi,lat,-1);
MapDataWrapper.INSTANCE.getCenterLineInfo(longi, lat, -1, centerLine -> {
if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
Double angle = centerLine.getAngle();
if (angle != null) {
builder.rotate(angle.floatValue());
}
}
}
return null;
});
IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
if (overlayManager != null) {
overlayManager.showOrUpdatePoint(builder.build());
overlayManager.showOrUpdatePoint(builder.build(), DEFAULT);
}
};
OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable);
}else {
} else {
Runnable removeMapMarkerRunnable = () -> {
CallerLogger.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(),
uuid+"=latitude="+lat+",longitude="+longi);

View File

@@ -12,6 +12,7 @@ import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road.V2XRoadEventScena
import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.warning.V2XFrontWarningScenario;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.VisualAngleMode;

View File

@@ -49,7 +49,6 @@ import com.mogo.eagle.core.function.call.obu.CallerObuMapMathListenerManager
import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsiListenerManager
import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsmListenerManager
import com.mogo.eagle.core.function.call.obu.CallerObuWarningSpatListenerManager
import com.mogo.eagle.core.function.call.v2x.*
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.support.obu.ObuScene
@@ -61,10 +60,9 @@ import com.zhjt.mogo.adas.data.bean.UnableAutopilotReason
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.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.s_r.SweeperTaskSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
import com.zhjt.service.chain.ChainLog
@@ -210,7 +208,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
* 底盘数据
*
* @param header 头
* @param vehicleState 数据
* @param chassisStates 数据
*/
@ChainLog(
linkChainLog = CHAIN_TYPE_SOCKET_VEHICLE,

View File

@@ -11,9 +11,13 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Liste
import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager
import com.mogo.map.MogoMapView
import com.mogo.map.overlay.line.Polyline
import com.mogo.map.overlay.point.Point
import com.mogo.map.overlay.proxy.line.IMapPolylineOverlay
import com.mogo.map.overlay.proxy.point.IMapPointOverlay
import com.mogo.map.uicontroller.IMogoMapUIController
class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs),
@@ -48,7 +52,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
//设置旋转手势是否可用。
it.setRotateGesturesEnabled(false)
//设置比例尺控件是否可见
it.setScaleControlsEnabled(true)
it.setScaleControlsEnabled(false)
//设置拖拽手势是否可用。
it.setScrollGesturesEnabled(true)
//设置倾斜手势是否可用。
@@ -60,6 +64,18 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
}
}
fun getUI(): IMogoMapUIController {
return uiController
}
fun addLine(options:Polyline.Options): IMapPolylineOverlay? {
return map.addLine(options)
}
fun addPoint(options: Point.Options): IMapPointOverlay?{
return map.addPoint(options)
}
override fun onSaveInstanceState(outState: Bundle?) {
super.onSaveInstanceState(outState)
}
@@ -74,9 +90,9 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
override fun onSkinModeChange(skinMode: Int) {
if (skinMode == 0) {
CallerMapUIServiceManager.getMapUIController()?.stepInVrMode(false)
getUI().stepInDayMode(false)
} else if (skinMode == 1) {
CallerMapUIServiceManager.getMapUIController()?.stepInVrMode(true)
getUI().stepInDayMode(true)
}
}
@@ -107,9 +123,9 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
private fun turn(lightNum: Int) {
if (currentLevel != lightNum) {
when (lightNum) {
0 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(0, 500)
1 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(1, 500)
2 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(2, 500)
0 -> getUI().setCarLightsType(0, 500)
1 -> getUI().setCarLightsType(1, 500)
2 -> getUI().setCarLightsType(2, 500)
}
currentLevel = lightNum
}

View File

@@ -14,7 +14,6 @@ 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.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;
@@ -267,7 +266,7 @@ public interface OnAdasListener {
*/
void onFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates functionStates);
/**
/*
* FSM状态原因查询 回调
*
* @param header 头
@@ -371,17 +370,6 @@ public interface OnAdasListener {
*/
void onSweeperFutianCloudBigTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush);
/**
* 10、云端下发任务暂停/恢复指令到padtype: 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);
/**
* 清扫车云端任务未知类型
*

View File

@@ -1,9 +1,11 @@
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;
@@ -13,7 +15,6 @@ 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.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;
@@ -43,7 +44,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
String reqNo = message.getReqNo(); //请求编号,响应请求时,使用请求方的请求编号
long sysTime = message.getSysTime(); //当前时间戳
ByteString payload = message.getPayload();
CupidLogUtils.i("SweeperCloudTaskMessage", "MsgType=" + (msgType == null ? "null" : msgType.getNumber()) + " reqNo=" + reqNo + " sysTime=" + sysTime);
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
@@ -52,8 +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)));
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确认type100002-> sweeper_task_confirm.proto
@@ -61,8 +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)));
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、云端下发任务状态到padtype100003-> sweeper_task_status.proto
@@ -70,8 +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)));
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结束任务type100004-> sweeper_task_stop.proto
@@ -79,8 +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)));
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请求挂起任务type100005-> sweeper_task_suspend_resume.proto
@@ -89,8 +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)));
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
@@ -98,8 +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)));
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
@@ -107,21 +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)));
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、云端下发任务暂停/恢复指令到padtype: 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 {
//未知数据类型
CupidLogUtils.i("SweeperCloudTaskMessage", " 错误数据=" + ByteUtil.byteArrToHex(bytes));
Log.i("SweeperCloudTaskMessage", " 错误数据=" + ByteUtil.byteArrToHex(bytes));
adasListener.onSweeperFutianCloudTaskUnknown(header, bytes);
}
}

View File

@@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.zhidaoauto.map.sdk.open.view.MapAutoView;
import com.zhidaoauto.map.sdk.open.view.MapStyleParams;