diff --git a/build.gradle b/build.gradle
index f18c4f8215..44a45c7dcf 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,7 +32,7 @@ buildscript {
classpath "com.bytedance.android.byteX:base-plugin:0.3.0"
classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}"
classpath 'com.volcengine:apm_insight_plugin:1.4.1'
- classpath 'com.mogo.cloud:thread_opt:5.0.5'
+ classpath 'com.mogo.thread.opt:plg:1.0.1'
classpath 'com.mogo.cloud:systrace:1.0.1'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt
index 102955c0fb..4937a9ff93 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt
@@ -3,13 +3,16 @@ package com.mogo.eagle.core.function.hmi.ui.pnc
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
+import androidx.appcompat.content.res.AppCompatResources
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.data.autopilot.pnc.PncActionsHelper
import com.mogo.eagle.core.data.trafficlight.TrafficLightResult
import com.mogo.eagle.core.data.trafficlight.currentRoadTrafficLight
import com.mogo.eagle.core.data.trafficlight.isRed
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener
+import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_RUNNING
import com.mogo.eagle.core.function.api.trafficlight.IMoGoTrafficLightListener
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningActionsListenerManager
import com.mogo.eagle.core.function.call.trafficlight.CallerTrafficLightListenerManager
import com.mogo.eagle.core.function.hmi.R
@@ -52,7 +55,8 @@ class PncActionsView @JvmOverloads constructor(
var actions: String? = null
planningActionMsg.actionMsg?.let {
- actions = PncActionsHelper.getAction(it.drivingState.number, it.drivingAction.number)
+ actions =
+ PncActionsHelper.getAction(it.drivingState.number, it.drivingAction.number)
//如果是存在云端红绿灯数据条件下,设置云端数据
if (PncActionsHelper.isWaitingTrafficlight(
@@ -68,7 +72,11 @@ class PncActionsView @JvmOverloads constructor(
}
}
// update view
- actions?.let {
+ if (actions.isNullOrEmpty() || getAutoPilotStatusInfo().state != STATUS_AUTOPILOT_RUNNING) {
+ this.background = null
+ tvHmiPncActions.text = ""
+ } else {
+ this.background = AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg)
tvHmiPncActions.text = actions
}
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java
index cc2d7aa78d..dd21592b78 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java
@@ -1,5 +1,7 @@
package com.mogo.eagle.core.function.hmi.ui.widget;
+import static com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING;
+
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
@@ -15,7 +17,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotVehicleStateListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager;
+import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningActionsListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager;
import com.mogo.eagle.core.function.hmi.R;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
@@ -24,6 +26,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import org.jetbrains.annotations.NotNull;
import chassis.Chassis;
+import mogo.telematics.pad.MessagePad;
/**
* @author Jing
@@ -60,7 +63,7 @@ public class TrafficDataView extends ConstraintLayout {
accTextView.setText("- " + accStr);
}
int state = CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState();
- if (state < 2) {
+ if (state < STATUS_AUTOPILOT_RUNNING) {
if (mBrake > 0) {
brakeStatus.setImageResource(R.drawable.traffic_data_brake);
} else if (mThrottle >= 0 && mBrake == 0) {
@@ -99,11 +102,7 @@ public class TrafficDataView extends ConstraintLayout {
super.onAttachedToWindow();
handler.sendEmptyMessageDelayed(MSG_SEND_UPDATE, 1000L);
CallerAutopilotVehicleStateListenerManager.INSTANCE.addListener(TAG, mIMoGoAutopilotVehicleStateListener);
- CallerAutopilotCarStatusListenerManager.INSTANCE.addListener(TAG, gnssInfo -> {
- if (gnssInfo != null) {
- acceleration = gnssInfo.getAcceleration();
- }
- });
+ CallerAutopilotPlanningActionsListenerManager.INSTANCE.addListener(TAG, planningActionMsg -> acceleration = planningActionMsg.getDestinationAcc());
}
private void initView(@NonNull Context context) {
@@ -119,7 +118,7 @@ public class TrafficDataView extends ConstraintLayout {
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
CallerAutopilotVehicleStateListenerManager.INSTANCE.removeListener(TAG);
- CallerAutopilotCarStatusListenerManager.INSTANCE.removeListener(TAG);
+ CallerAutopilotPlanningActionsListenerManager.INSTANCE.removeListener(TAG);
}
private final IMoGoAutopilotVehicleStateListener mIMoGoAutopilotVehicleStateListener = new IMoGoAutopilotVehicleStateListener() {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pnc_actions_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pnc_actions_bg.png
new file mode 100644
index 0000000000..7d8e46f213
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pnc_actions_bg.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml
index 8a6d81b954..da8b0411b0 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml
@@ -184,7 +184,7 @@
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml
index 1c49ca55d1..5d3a7ab8cb 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml
@@ -2,14 +2,17 @@
+ android:layout_height="@dimen/dp_100">
18px
30px
36px
+ 34px
38px
42px
45px
46px
+ 48px
50px
52px
54px
56px
62px
+ 68px
70px
- 80px
+ 72px
+ 75px
80px
+ 96px
100px
+ 110px
140px
150px
180px
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyFactory.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyFactory.kt
index 997daa80ad..99959f1f4d 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyFactory.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyFactory.kt
@@ -2,9 +2,7 @@ package com.mogo.eagle.core.function.map.identify
import android.os.Handler
import android.os.Message
-import android.util.Log
import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler
import mogo.telematics.pad.MessagePad
import mogo.telematics.pad.MessagePad.TrackedObject
@@ -37,29 +35,31 @@ object IdentifyFactory : Identify {
object : Handler(WorkThreadHandler.newInstance("IdentifyFactoryDrawer").looper) {
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
- if(!FunctionBuildConfig.isBeautyMode){
- if(identify is IdentifyBeautifyDataDrawer){
+ if (!FunctionBuildConfig.isBeautyMode) {
+ // 非感知美化优化模式,清除旧数据,使用 DriverIdentify originDataDrawer 原始数据绘制
+ if (identify is IdentifyBeautifyDataDrawer) {
identify!!.clearOldMarker()
identify = DriverIdentify.originDataDrawer
}
- }else{
- if(identify is IdentifyOriginDataDrawer){
+ } else {
+ // 感知优化模式,清除旧数据,使用 UserIdentify beautifyDataDrawer 优化数据
+ if (identify is IdentifyOriginDataDrawer) {
identify!!.clearOldMarker()
- identify = UserIdentify.beautifyDataDrawer
+ identify = UserIdentify.beautifyDataDrawer
}
}
- when(msg.what){
+ when (msg.what) {
MSG_DATA_TRACK -> {
- if(msg.obj is List<*>){
+ if (msg.obj is List<*>) {
identify!!.renderAdasRecognizedResult(msg.obj as List?)
}
}
MSG_DATA_WARNING -> {
- if(msg.obj is List<*>){
+ if (msg.obj is List<*>) {
identify!!.renderPlanningWarningObj(msg.obj as List?)
}
}
- MSG_DATA_CLEAR ->{
+ MSG_DATA_CLEAR -> {
identify!!.clearOldMarker()
}
}
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java
index 8217248dec..135de98e90 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Point;
+import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.map.marker.AMapInfoWindowAdapter;
import com.mogo.map.marker.AMapMarkerWrapper;
@@ -114,13 +115,13 @@ public class AMapWrapper implements IMogoMap {
markerOptionsArrayList.add(markerOptions);
}
});
- MarkerHelper.INSTANCE.updateBatchMarkerPositon(markerOptionsArrayList, false, 8.0f, 1, 100, 1);
+ MarkerHelper.INSTANCE.updateBatchMarkerPositon(markerOptionsArrayList, false, FunctionBuildConfig.isBeautyMode ? 8.0f : 0f, 1, 100, 1);
}
@Override
public String addPreVehicleModel(int type, int modelRes) {
try {
- return MarkerHelper.INSTANCE.addPreVehicleModel(type, modelRes);
+ return MarkerHelper.INSTANCE.addPreVehicleModel(type, modelRes);
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java
index edbc9c3057..65d9e0dbaf 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java
@@ -99,7 +99,6 @@ public class RouteOverlayDrawer {
int total;
try {
pps.clear();
- long drawStart = SystemClock.elapsedRealtime();
List routes = this.routeList;
if (routes == null || (total = routes.size()) < 2) {
isExcept = true;
@@ -136,7 +135,6 @@ public class RouteOverlayDrawer {
}
double lon = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon();
double lat = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat();
- int removeCount = 0;
if (points.size() > 0) {
MogoLatLng top = null;
while (points.size() != 0) {
@@ -151,7 +149,6 @@ public class RouteOverlayDrawer {
lat = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat();
long angle = isPointOnCarFront(lon, lat, bearing, first.lon, first.lat);
if (angle >= 90) {
- removeCount++;
RouteStrategy.INSTANCE.remove(first.acc);
pools.release(first);
points.poll();
@@ -203,10 +200,8 @@ public class RouteOverlayDrawer {
} else {
isExcept = true;
}
- long drawEnd = SystemClock.elapsedRealtime();
- Logger.d(M_OLD_ROUTE + TAG, "drawTrajectoryList cost : " + (drawEnd - drawStart) + "ms and isExcept:" + isExcept + "::removeCount:" + removeCount + "::total:" + total);
} catch (Throwable t) {
- Logger.d(M_OLD_ROUTE + TAG, "drawTrajectoryList error (isExcept: "+isExcept+") : " + t);
+ t.printStackTrace();
} finally {
if (isExcept) {
setVisible(false);
@@ -224,16 +219,7 @@ public class RouteOverlayDrawer {
}
private long isPointOnCarFront(double car_lon, double car_lat, double car_head, double lon, double lat) {
- long start = SystemClock.elapsedRealtime();
- try {
- // 计算车辆与点之间的夹角
- long diffAngle = DrivingDirectionUtils.getDegreeOfCar2Poi2(
- car_lon, car_lat, lon, lat, car_head);
- CallerLogger.INSTANCE.d(M_OLD_ROUTE + TAG, "isPointOnCarFront: angle->" + diffAngle);
- return diffAngle;
- } finally {
- CallerLogger.INSTANCE.d(M_OLD_ROUTE + TAG, "isPointOnCarFront cost:" + (SystemClock.elapsedRealtime() - start) + "ms");
- }
+ return DrivingDirectionUtils.getDegreeOfCar2Poi2(car_lon, car_lat, lon, lat, car_head);
}
}