,
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt
index 19c63ce5ee..94b9a31f2c 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt
@@ -689,21 +689,25 @@ class OverMapView @JvmOverloads constructor(
boundsBuilder.include(currentLatLng)
val cameraPosition = CameraPosition.Builder().tilt(mTilt).build()
//第二个参数为四周留空宽度
- mAMap!!.moveCamera(
- CameraUpdateFactory.newLatLngBoundsRect(
- boundsBuilder.build(),
- AutoSizeUtils.dp2px(context, leftPadding.toFloat()),
- AutoSizeUtils.dp2px(context, rightPadding.toFloat()),
- AutoSizeUtils.dp2px(context, topPadding.toFloat()),
- AutoSizeUtils.dp2px(context, bottomPadding.toFloat())
+ if (mAMap != null) {
+ mAMap!!.moveCamera(
+ CameraUpdateFactory.newLatLngBoundsRect(
+ boundsBuilder.build(),
+ AutoSizeUtils.dp2px(context, leftPadding.toFloat()),
+ AutoSizeUtils.dp2px(context, rightPadding.toFloat()),
+ AutoSizeUtils.dp2px(context, topPadding.toFloat()),
+ AutoSizeUtils.dp2px(context, bottomPadding.toFloat())
+ )
)
- )
- mAMap!!.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
+ mAMap!!.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
+ }
} else {
- //设置希望展示的地图缩放级别
- val cameraPosition = CameraPosition.Builder()
- .target(mCarMarker!!.position).tilt(mTilt).zoom(zoomLevel.toFloat()).build()
- mAMap!!.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
+ if (mCarMarker != null && mAMap != null) {
+ //设置希望展示的地图缩放级别
+ val cameraPosition = CameraPosition.Builder()
+ .target(mCarMarker!!.position).tilt(mTilt).zoom(zoomLevel.toFloat()).build()
+ mAMap!!.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
+ }
}
}
}
@@ -869,21 +873,25 @@ class OverMapView @JvmOverloads constructor(
if (!isOnlyCarLocation) {
val cameraPosition = CameraPosition.Builder().tilt(mTilt).build()
//第二个参数为四周留空宽度
- mAMap!!.moveCamera(
- CameraUpdateFactory.newLatLngBoundsRect(
- boundsBuilder.build(),
- AutoSizeUtils.dp2px(context, leftPadding.toFloat()),
- AutoSizeUtils.dp2px(context, rightPadding.toFloat()),
- AutoSizeUtils.dp2px(context, topPadding.toFloat()),
- AutoSizeUtils.dp2px(context, bottomPadding.toFloat())
+ if (mAMap != null) {
+ mAMap!!.moveCamera(
+ CameraUpdateFactory.newLatLngBoundsRect(
+ boundsBuilder.build(),
+ AutoSizeUtils.dp2px(context, leftPadding.toFloat()),
+ AutoSizeUtils.dp2px(context, rightPadding.toFloat()),
+ AutoSizeUtils.dp2px(context, topPadding.toFloat()),
+ AutoSizeUtils.dp2px(context, bottomPadding.toFloat())
+ )
)
- )
- mAMap!!.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
+ mAMap!!.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
+ }
} else {
//设置希望展示的地图缩放级别
- val cameraPosition = CameraPosition.Builder()
- .target(mCarMarker!!.position).tilt(mTilt).zoom(zoomLevel.toFloat()).build()
- mAMap!!.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
+ if (mCarMarker != null && mAMap != null) {
+ val cameraPosition = CameraPosition.Builder()
+ .target(mCarMarker!!.position).tilt(mTilt).zoom(zoomLevel.toFloat()).build()
+ mAMap!!.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
+ }
}
}
}
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/CloudPoiManager.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/CloudPoiManager.java
index 1359dd3e6b..e0e752cc14 100644
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/CloudPoiManager.java
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/CloudPoiManager.java
@@ -50,8 +50,6 @@ public class CloudPoiManager {
R.drawable.module_common_icon_map_marker_road_block_up2, R.drawable.module_common_icon_map_marker_road_block_up2_white, "拥堵"));
poiWrapper.put(EventTypeEnumNew.FOURS_PONDING.getPoiType(), new PoiWrapper(EventTypeEnumNew.FOURS_PONDING.getPoiType(),
R.drawable.module_common_icon_map_marker_pondingl2, R.drawable.module_common_icon_map_marker_pondingl2_white, "积水"));
- poiWrapper.put(EventTypeEnumNew.FOURS_FOG.getPoiType(), new PoiWrapper(EventTypeEnumNew.FOURS_FOG.getPoiType(),
- R.drawable.module_common_ic_rc_dark_frog2, R.drawable.module_common_ic_rc_dark_frog2_white, "浓雾"));
poiWrapper.put(EventTypeEnumNew.FOURS_ICE.getPoiType(), new PoiWrapper(EventTypeEnumNew.FOURS_ICE.getPoiType(),
R.drawable.module_common_ic_rc_freeze2, R.drawable.module_common_ic_rc_freeze2_white, "结冰"));
poiWrapper.put(EventTypeEnumNew.FOURS_ACCIDENT.getPoiType(), new PoiWrapper(EventTypeEnumNew.FOURS_ACCIDENT.getPoiType(),
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt
index 1f9a850303..6ad2e63d6a 100644
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt
@@ -45,12 +45,6 @@ enum class EventTypeEnumNew(
"前方道路积水", "道路积水"
),
- //浓雾
- FOURS_FOG(
- "10010", "出现浓雾", "浓雾预警", R.drawable.v2x_icon_nongwu_vr,
- "前方出现浓雾", "出现浓雾"
- ),
-
//结冰
FOURS_ICE(
"10011", "路面结冰", "路面结冰", R.drawable.v2x_icon_jiebing_vr,
@@ -538,7 +532,6 @@ enum class EventTypeEnumNew(
FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.poiTypeStr
FOURS_BLOCK_UP.poiType -> FOURS_BLOCK_UP.poiTypeStr
FOURS_PONDING.poiType -> FOURS_PONDING.poiTypeStr
- FOURS_FOG.poiType -> FOURS_FOG.poiTypeStr
FOURS_ICE.poiType -> FOURS_ICE.poiTypeStr
FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType,
@@ -559,7 +552,6 @@ enum class EventTypeEnumNew(
FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.poiTypeStrVr
FOURS_BLOCK_UP.poiType -> FOURS_BLOCK_UP.poiTypeStrVr
FOURS_PONDING.poiType -> FOURS_PONDING.poiTypeStrVr
- FOURS_FOG.poiType -> FOURS_FOG.poiTypeStrVr
FOURS_ICE.poiType -> FOURS_ICE.poiTypeStrVr
FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType,
@@ -580,7 +572,6 @@ enum class EventTypeEnumNew(
FOURS_ROAD_WORK.poiType -> "施工"
FOURS_BLOCK_UP.poiType -> "道路拥堵"
FOURS_PONDING.poiType -> "道路积水"
- FOURS_FOG.poiType -> "出现浓雾"
FOURS_ICE.poiType -> "路面结冰"
FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType, FOURS_ACCIDENT_02.poiType,
FOURS_ACCIDENT_03.poiType, FOURS_ACCIDENT_04.poiType, FOURS_ACCIDENT_05.poiType -> "交通事故"
@@ -596,7 +587,6 @@ enum class EventTypeEnumNew(
FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.poiTypeSrcVr
FOURS_BLOCK_UP.poiType -> FOURS_BLOCK_UP.poiTypeSrcVr
FOURS_PONDING.poiType -> FOURS_PONDING.poiTypeSrcVr
- FOURS_FOG.poiType -> FOURS_FOG.poiTypeSrcVr
FOURS_ICE.poiType -> FOURS_ICE.poiTypeSrcVr
FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType,
@@ -616,7 +606,7 @@ enum class EventTypeEnumNew(
return when (poiType) {
FOURS_BLOCK_UP.poiType, FOURS_LIVING.poiType-> if (isVrMode) R.drawable.bg_v2x_event_type_orange_vr else R.drawable.bg_v2x_event_type_orange
TRAFFIC_CHECK.poiType, ROAD_CLOSED.poiType, FOURS_ROAD_WORK.poiType,
- FOURS_PONDING.poiType, FOURS_FOG.poiType, FOURS_ICE.poiType, FOURS_ACCIDENT.poiType,
+ FOURS_PONDING.poiType, FOURS_ICE.poiType, FOURS_ACCIDENT.poiType,
FOURS_ACCIDENT_01.poiType, FOURS_ACCIDENT_02.poiType, FOURS_ACCIDENT_03.poiType,
FOURS_ACCIDENT_04.poiType, FOURS_ACCIDENT_05.poiType -> if (isVrMode) R.drawable.bg_v2x_event_type_red_vr else R.drawable.bg_v2x_event_type_read
else -> {
@@ -632,7 +622,7 @@ enum class EventTypeEnumNew(
R.drawable.bg_v2x_event_type_orange
TRAFFIC_CHECK.poiType, ROAD_CLOSED.poiType,
FOURS_ROAD_WORK.poiType, FOURS_PONDING.poiType,
- FOURS_FOG.poiType, FOURS_ICE.poiType,
+ FOURS_ICE.poiType,
FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType,
FOURS_ACCIDENT_02.poiType, FOURS_ACCIDENT_03.poiType,
FOURS_ACCIDENT_04.poiType, FOURS_ACCIDENT_05.poiType ->
@@ -649,7 +639,7 @@ enum class EventTypeEnumNew(
return when (poiType) {
TRAFFIC_CHECK.poiType, ROAD_CLOSED.poiType,
FOURS_ROAD_WORK.poiType, FOURS_BLOCK_UP.poiType,
- FOURS_PONDING.poiType, FOURS_FOG.poiType,
+ FOURS_PONDING.poiType,
FOURS_ICE.poiType, FOURS_ACCIDENT.poiType,
FOURS_ACCIDENT_01.poiType, FOURS_ACCIDENT_02.poiType,
FOURS_ACCIDENT_03.poiType, FOURS_ACCIDENT_04.poiType,
@@ -670,7 +660,6 @@ enum class EventTypeEnumNew(
FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.tts
FOURS_BLOCK_UP.poiType -> FOURS_BLOCK_UP.tts
FOURS_PONDING.poiType -> FOURS_PONDING.tts
- FOURS_FOG.poiType -> FOURS_FOG.tts
FOURS_ICE.poiType -> FOURS_ICE.tts
FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType, FOURS_ACCIDENT_02.poiType,
FOURS_ACCIDENT_03.poiType, FOURS_ACCIDENT_04.poiType, FOURS_ACCIDENT_05.poiType -> FOURS_ACCIDENT.tts
@@ -690,7 +679,6 @@ enum class EventTypeEnumNew(
FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.content
FOURS_BLOCK_UP.poiType -> FOURS_BLOCK_UP.content
FOURS_PONDING.poiType -> FOURS_PONDING.content
- FOURS_FOG.poiType -> FOURS_FOG.content
FOURS_ICE.poiType -> FOURS_ICE.content
FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType, FOURS_ACCIDENT_02.poiType,
FOURS_ACCIDENT_03.poiType, FOURS_ACCIDENT_04.poiType, FOURS_ACCIDENT_05.poiType ->
@@ -710,7 +698,6 @@ enum class EventTypeEnumNew(
FOURS_BLOCK_UP.poiType -> R.raw.v2x_yongdu
FOURS_ACCIDENT.poiType,FOURS_ACCIDENT_04.poiType -> R.raw.v2x_shigu
FOURS_LIVING.poiType -> R.raw.v2x_shishilukuang
- FOURS_FOG.poiType -> R.raw.v2x_nongwu
TRAFFIC_CHECK.poiType -> R.raw.v2x_jiaotongjiancha
FOURS_ROAD_WORK.poiType -> R.raw.v2x_daolushigong
FOURS_ICE.poiType -> R.raw.v2x_daolujiebing
@@ -763,10 +750,6 @@ enum class EventTypeEnumNew(
FOURS_PONDING.poiType ->{
FOURS_PONDING.poiTypeStr
}
- //浓雾
- FOURS_FOG.poiType ->{
- FOURS_FOG.poiTypeStr
- }
//结冰
FOURS_ICE.poiType ->{
FOURS_ICE.poiTypeStr
@@ -1066,10 +1049,6 @@ enum class EventTypeEnumNew(
FOURS_PONDING.poiType -> {
R.drawable.v2x_icon_jishui_vr
}
- //浓雾
- FOURS_FOG.poiType -> {
- R.drawable.v2x_icon_nongwu_vr
- }
//结冰
FOURS_ICE.poiType -> {
R.drawable.v2x_icon_jiebing_vr
diff --git a/core/mogo-core-res/src/main/res/drawable-xhdpi/module_common_ic_rc_dark_frog2.png b/core/mogo-core-res/src/main/res/drawable-xhdpi/module_common_ic_rc_dark_frog2.png
deleted file mode 100644
index 787101fbb1..0000000000
Binary files a/core/mogo-core-res/src/main/res/drawable-xhdpi/module_common_ic_rc_dark_frog2.png and /dev/null differ
diff --git a/core/mogo-core-res/src/main/res/drawable-xhdpi/module_common_ic_rc_dark_frog2_white.png b/core/mogo-core-res/src/main/res/drawable-xhdpi/module_common_ic_rc_dark_frog2_white.png
deleted file mode 100644
index b6164bcfdd..0000000000
Binary files a/core/mogo-core-res/src/main/res/drawable-xhdpi/module_common_ic_rc_dark_frog2_white.png and /dev/null differ
diff --git a/core/mogo-core-res/src/main/res/drawable-xhdpi/v2x_icon_nongwu_vr.png b/core/mogo-core-res/src/main/res/drawable-xhdpi/v2x_icon_nongwu_vr.png
deleted file mode 100644
index f6e145dbea..0000000000
Binary files a/core/mogo-core-res/src/main/res/drawable-xhdpi/v2x_icon_nongwu_vr.png and /dev/null differ
diff --git a/libraries/mogo-adas-data/src/main/proto/system_status_info.proto b/libraries/mogo-adas-data/src/main/proto/system_status_info.proto
index 0a4953f7f8..0469739ba8 100644
--- a/libraries/mogo-adas-data/src/main/proto/system_status_info.proto
+++ b/libraries/mogo-adas-data/src/main/proto/system_status_info.proto
@@ -54,11 +54,14 @@ message StatusInfo {
optional DropTopic topic_drop_info=3; // topic 掉频信息, 如有掉频添加没有不添加
optional string reserved = 4; // 用于表示idle模式,'idle' 表示idle模式 'work' 表示正常工作
// add by liyl 20220907
- optional int32 pilot_mode = 5; // 0: manaul 1: autopilot 2: RemotePilot
+ optional int32 pilot_mode = 5; // 0: manaul 1: autopilot 6: RemotePilot
optional string map_version = 6; // MAP 版本信息
optional string master_version = 7; // system_master 版本信息
optional bool auto_pilot_ready = 8; // 自动驾驶状态就绪, 20221111增加
optional bool remote_pilot_ready = 9; // 平行驾驶状态就绪
- optional NodeFaultList auto_pilot_unready_list = 10; //20221128 增加
- optional NodeFaultList remote_pilot_unready_list = 11; //20221128 增加
+ optional NodeFaultList auto_pilot_unready_list = 10; //自驾未就绪节点列表, 20221128 增加
+ optional NodeFaultList remote_pilot_unready_list = 11; //平行驾驶未就绪列表, 20221128 增加
+ optional string auto_pilot_unready_reason = 12; //自动驾驶状态未就绪原因描述
+ optional string remote_pilot_unready_reason = 13; //平行驾驶状态未就绪原因描述
}
+
diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java
index 5bccb67907..499fff2033 100644
--- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java
+++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java
@@ -13,7 +13,7 @@ import chassis.ChassisStatesOuterClass;
import system_master.SystemStatusInfo;
/**
- * 是否可以启动自动驾驶能力检测 工控机版本>=250使用此类
+ * 是否可以启动自动驾驶能力检测 非清扫车MAP版本>=250使用此类 清扫车MAP版本>=250&& <330使用此类
* 目前监控了底盘的一些状态和查询节点状态应答的数据
* 没有使用监控事件报告的原因是因为,部分异常没进行正常恢复通知,例如收到了异常监控数据,但是异常恢复之后没有恢复的通知
*
@@ -27,8 +27,10 @@ public class AutopilotAbility250 {
private static final String[] NODE_INFO_STATE = {"未知状态 ", "依赖未就绪 ", "启动中 ", "运行 ", "停止 ", "无法启动状态 ", "人为启动状态 ", "人为关闭状态 "};
private volatile Timer timer;
private ChassisStatesOuterClass.ChassisStates chassisStates;
+ private int mapVersion = -1;//工控机版本
- public AutopilotAbility250() {
+ public AutopilotAbility250(int mapVersion) {
+ this.mapVersion = mapVersion;
}
@@ -55,8 +57,13 @@ public class AutopilotAbility250 {
String masterVersion = statusInfo.getMasterVersion();
version = AdasManager.getInstance().parseVersion(false, masterVersion);
}
- //如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行
- if (version > 1 && statusInfo.hasAutoPilotReady()) {
+ //SSM 3版本兼容
+ if (mapVersion >= 30400 && version > 2 && statusInfo.hasAutoPilotReady() && statusInfo.hasAutoPilotUnreadyReason()) {
+ isAutopilotAbility = statusInfo.getAutoPilotReady();
+ if (!isAutopilotAbility) {
+ unableAutopilotReason = statusInfo.getAutoPilotUnreadyReason();
+ }
+ } else if (mapVersion >= 21000 && version > 1 && statusInfo.hasAutoPilotReady()) {//如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行
isAutopilotAbility = statusInfo.getAutoPilotReady();
if (!isAutopilotAbility) {
SystemStatusInfo.NodeFaultList nodeFaultList = statusInfo.getAutoPilotUnreadyList();
diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java
index f44c666eba..5185bd6321 100644
--- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java
+++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java
@@ -30,7 +30,8 @@ public class AutopilotAbilityManager {
private OnAdasListener listener;
private Handler handler;
private OnAutopilotAbilityListener onAutopilotAbilityListener;
- private int dockerVersion = -1;//工控机版本
+ private int mapVersion = -1;//工控机版本
+ private boolean isFutianSweeper = false;//是否是福田清扫车
private AutopilotAbility230 autopilotAbility230;
private AutopilotAbility250 autopilotAbility250;
private Timer startTimer;
@@ -77,15 +78,12 @@ public class AutopilotAbilityManager {
}
public void setCarConfig(MessagePad.CarConfigResp carConfig) {
- if (dockerVersion == -1) {
- String v = carConfig.getDockVersion();
- int version = AdasManager.getInstance().parseVersion(v);
- if (version != -1) {
- stopTimer();
- dockerVersion = version;
- CupidLogUtils.i(TAG, "工控机版本=" + dockerVersion);
- initAutopilotAbility();
- }
+ mapVersion = carConfig.getMapVersion();
+ isFutianSweeper = carConfig.getIsFutianSweeper();
+ if (mapVersion != -1) {
+ stopTimer();
+ CupidLogUtils.i(TAG, "工控机版本=" + mapVersion);
+ initAutopilotAbility();
}
}
@@ -138,13 +136,15 @@ public class AutopilotAbilityManager {
}
private void initAutopilotAbility() {
- if (dockerVersion >= 20500) {
+ if (mapVersion >= 20500) {
+ CupidLogUtils.i(TAG, "是否可以启动自动驾驶能力检测使用250版本");
stop230();
if (autopilotAbility250 == null) {
- autopilotAbility250 = new AutopilotAbility250();
+ autopilotAbility250 = new AutopilotAbility250(mapVersion);
autopilotAbility250.start();
}
} else {
+ CupidLogUtils.i(TAG, "是否可以启动自动驾驶能力检测使用230版本");
stop250();
if (autopilotAbility230 == null) {
autopilotAbility230 = new AutopilotAbility230();
@@ -185,8 +185,8 @@ public class AutopilotAbilityManager {
startTimer.schedule(new TimerTask() {
@Override
public void run() {
- if (dockerVersion == -1 && AdasManager.getInstance().getIpcConnectionStatus() == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
- dockerVersion = 20300;
+ if (mapVersion == -1 && AdasManager.getInstance().getIpcConnectionStatus() == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
+ mapVersion = 20300;
initAutopilotAbility();
}
}
@@ -200,7 +200,8 @@ public class AutopilotAbilityManager {
stop230();
stop250();
handler = null;
- dockerVersion = -1;
+ mapVersion = -1;
+ isFutianSweeper = false;
}
}