diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/redlightwarning/RedLightWarningManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/redlightwarning/RedLightWarningManager.kt index a512f5a423..1f267f14df 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/redlightwarning/RedLightWarningManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/redlightwarning/RedLightWarningManager.kt @@ -111,13 +111,13 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener, when { trafficLightStatus.isRed() -> { Logger.d(TAG, "=====当前为红灯=====") - // 到达路口时红灯还没走完(由于多个数据有偏差,红灯预警延长1s,绿灯提示延长2s,多报出错不如少报且准) + // 到达路口时红灯还没走完(由于多个数据有偏差,红灯预警延长1s,绿灯提示延长3s,多报出错不如少报且准) if (arriveTime <= remainTime + 1) { redLightWarning() - } else if (arriveTime > remainTime + trafficLightResult.flashYellow + 2) {// 到达时红、黄灯都走完 + } else if (arriveTime > remainTime + trafficLightResult.flashYellow + 3) {// 到达时红、黄灯都走完 // 单位Km/h,当前为红灯,推荐速度越慢越容易绿灯通过,且要满足[10,50] val originRemainSpeed = - floor(distance / (remainTime + trafficLightResult.flashYellow) * 3.6).toInt() + floor(distance / (remainTime + trafficLightResult.flashYellow + 3) * 3.6).toInt() when { originRemainSpeed > 50 -> greenLightWarning("10到50") originRemainSpeed in 10..50 -> greenLightWarning("10到$originRemainSpeed") @@ -126,12 +126,12 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener, } trafficLightStatus.isYellow() -> { Logger.d(TAG, "=====当前为黄灯=====") - // 到达路口时黄灯还没走完(由于多个数据有偏差,红灯预警延长1s,绿灯提示延长2s,多报出错不如少报且准) + // 到达路口时黄灯还没走完(由于多个数据有偏差,红灯预警延长1s,绿灯提示延长3s,多报出错不如少报且准) if (arriveTime <= remainTime + 1) { redLightWarning() - } else if (arriveTime > remainTime + 2) { + } else if (arriveTime > remainTime + 3) { // 单位Km/h,当前为黄灯,推荐速度越慢越容易绿灯通过,且要满足[10,50] - val originRemainSpeed = floor(distance / remainTime * 3.6).toInt() + val originRemainSpeed = floor(distance / (remainTime + 3) * 3.6).toInt() when { originRemainSpeed > 50 -> greenLightWarning("10到50") originRemainSpeed in 10..50 -> greenLightWarning("10到$originRemainSpeed") @@ -143,9 +143,9 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener, // 到达路口时绿灯已经走完(由于多个数据有偏差,多报出错不如少报且准,绿灯时间减少一点) if (arriveTime >= remainTime - 1) { redLightWarning() - } else if (arriveTime < remainTime - 2) { + } else if (arriveTime < remainTime - 3) { // 单位Km/h,当前为绿灯,推荐速度越快越容易绿灯通过,且要满足[10,50] - val originRemainSpeed = ceil(distance / remainTime * 3.6).toInt() + val originRemainSpeed = ceil(distance / (remainTime - 3) * 3.6).toInt() when { originRemainSpeed < 10 -> greenLightWarning("10到50") originRemainSpeed in 10..50 -> greenLightWarning("${originRemainSpeed}到50") diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java index 9144ac50b5..56879ae613 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java @@ -40,11 +40,8 @@ public class SpeedLimitDataManager implements IMogoCarLocationChangedListener2 { UiThreadHandler.post(new Runnable() { @Override public void run() { - int speed = (int) (mLocation.getSpeed() * 3.6f); - if (speed > 0 && speedLimmit > 0){ + if (speedLimmit > 0){ CallerHmiManager.INSTANCE.showLimitingVelocity(speedLimmit); - }else { - CallerHmiManager.INSTANCE.disableLimitingVelocity(); } } }); diff --git a/core/mogo-core-res/src/main/res/raw/jiantou.nt3d b/core/mogo-core-res/src/main/res/raw/jiantou.nt3d new file mode 100644 index 0000000000..86a3be0653 Binary files /dev/null and b/core/mogo-core-res/src/main/res/raw/jiantou.nt3d differ diff --git a/gradle.properties b/gradle.properties index a1169833b6..8d0d64dd5f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -80,7 +80,7 @@ MOGO_TRAFFICLIVE_VERSION=1.3.13 MOGO_LOCATION_VERSION=1.3.13 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.0.0.11 +MAP_SDK_VERSION=2.0.0.12 # websocket WEBSOCKET_VERSION=1.1.7 ## 产品库必备配置,产品库自动对versionCode和versionName版本进行升级 diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java index 55fd0e3677..c9ba764b07 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java @@ -216,7 +216,7 @@ public class BaseDrawer { } else if (recognizedType == AdasRecognizedType.classIdStopLine) { return R.raw.stopline; } else if (recognizedType == AdasRecognizedType.classIdWarningArrows) { - return R.raw.stopline; + return R.raw.jiantou; } else if (recognizedType == AdasRecognizedType.classIdUnKnow) { return R.raw.special_vehicle; } else if (recognizedType == AdasRecognizedType.classIdBicycle) { 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 03560d8f22..fbd7a060ad 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 @@ -31,6 +31,7 @@ public class RouteOverlayDrawer { private RouteOverlayDrawer(Context context) { mPolylineOptions = new MogoPolylineOptions(); mPolylineOptions.zIndex(20000f); + mPolylineOptions.setGps(true); // 绘制路径集合 mPolylinePointList = new ArrayList<>(); // 引导线颜色 @@ -115,6 +116,7 @@ public class RouteOverlayDrawer { public void clearMogoRouteOverlay(){ if (mMoGoPolyline != null) { mMoGoPolyline.remove(); + mMoGoPolyline = null; mPolylinePointList.clear(); mPolylineColors.clear(); } @@ -125,19 +127,24 @@ public class RouteOverlayDrawer { } public void drawTrajectoryList(List routeList) { - clearMogoRouteOverlay(); +// clearMogoRouteOverlay(); + mPolylinePointList.clear(); if (routeList != null) { for (MogoLatLng latLng : routeList) { mPolylinePointList.add(latLng); } - mPolylineOptions.setGps(true); - mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#002965ED", mPolylinePointList.size())); - // 替换路径集合 - mPolylineOptions.points(mPolylinePointList); + if (mPolylineColors.isEmpty()){ + mPolylineColors.addAll(ColorUtils.getGradientAlpha("#002965ED", "#FF2965ED", "#002965ED", mPolylinePointList.size())); + } // 线条粗细,渐变,渐变色值 - mPolylineOptions.width(25).useGradient(true).colorValues(mPolylineColors); - // 绘制线 - mMoGoPolyline = mogoOverlayManager.addPolyline(mPolylineOptions); + mPolylineOptions.width(20).useGradient(true).colorValues(mPolylineColors); + if (mMoGoPolyline == null || mMoGoPolyline.isDestroyed()){ + mPolylineOptions.points(mPolylinePointList); + mMoGoPolyline = mogoOverlayManager.addPolyline(mPolylineOptions); + }else { + mMoGoPolyline.setPoints(mPolylinePointList); + } + } } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java index a8cfdbe204..167fe5531e 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java @@ -33,7 +33,7 @@ import static com.mogo.module.v2x.V2XServiceManager.getContext; /** * @author liujing - * @description 前方预警marker打点 绘制安全线和预警线 + * @description 前方预警marker打点 绘制安全线和预警线 衡阳交付-取消划线需求,只渲染识别物红色模型移动过程,代码保留 * @since: 2021/3/30 */ public class V2XWarningMarker implements IV2XMarker{ @@ -86,20 +86,26 @@ public class V2XWarningMarker implements IV2XMarker{ WorkThreadHandler.getInstance().postDelayed(() -> { if (carLocation.lat != 0 && carLocation.lon != 0) { //在自车与停止线直线绘制蓝色预警线 - drawSelfCarLine(carLocation.lon, carLocation.lat, bearing); + //衡阳交付-取消划线需求,只渲染识别物红色模型移动过程 + //drawSelfCarLine(carLocation.lon, carLocation.lat, bearing); } else { } //二轮车和行人的渲染和移动 V2XServiceManager.getMarkerManager().removeMarkers(TYPE_MARKER_CLOUD_WARN_DATA); + /* 衡阳交付-取消划线需求,只渲染识别物红色模型移动过程 //获取停止线前方50m坐标点 MogoLatLng warningLocation = Trigonometric.getNewLocation(middleLocationInStopLine, 50, angleForCarMoveDirection()); //停止线向前方50m绘制红色预警线 drawRedWarningLineFrontOfStopLine(mCloundWarningInfo, middleLocationInStopLine, warningLocation); + + */ V2XWarnDataDrawer.getInstance().renderWarnData(mCloundWarningInfo); + //添加停止线marker - handleStopLine(); + //衡阳交付-取消划线需求,只渲染识别物红色模型移动过程 + //handleStopLine(); }, 0); Log.d(TAG, "显示时间为++" + String.valueOf(showTime) + "识别物类型:" + String.valueOf(mCloundWarningInfo.getType())); @@ -108,6 +114,7 @@ public class V2XWarningMarker implements IV2XMarker{ } else { //无停止线 Log.d(TAG, "无停止线"); WorkThreadHandler.getInstance().postDelayed(() -> { + /* 衡阳交付-取消划线需求,只渲染识别物红色模型移动过程 Log.d(TAG, "无停止线" + mCloundWarningInfo.toString()); //绘制识别物与交汇点连线,并且更新连线数据 drawOtherObjectLine(mCloundWarningInfo); @@ -118,6 +125,7 @@ public class V2XWarningMarker implements IV2XMarker{ } else { Log.d(TAG, "数据为空carLocation == null"); } + */ V2XWarnDataDrawer.getInstance().renderWarnData(mCloundWarningInfo); }, 0); @@ -390,7 +398,8 @@ public class V2XWarningMarker implements IV2XMarker{ if (mCloundWarningInfo != null) { mCloundWarningInfo.setCarLocation(new MogoLatLng(latLng.getLatitude(), latLng.getLongitude())); } - drawSelfCarLine(latLng.getLongitude(), latLng.getLatitude(), latLng.getBearing()); + //衡阳交付-取消划线需求,只渲染识别物红色模型移动过程 + //drawSelfCarLine(latLng.getLongitude(), latLng.getLatitude(), latLng.getBearing()); } Log.d(TAG, "车辆行驶轨迹" + String.valueOf(latLng.getLongitude()) + "," + String.valueOf(latLng.getLatitude())); } diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data_pedestrians.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data_pedestrians.json index 198ddc19d6..9dfcee933d 100644 --- a/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data_pedestrians.json +++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data_pedestrians.json @@ -1,8 +1,8 @@ { "type": 1, - "lat": 26.851993861219782, - "lon": 112.57065318116094, - "distance": 5.89, + "lat": 26.851909, + "lon": 112.571751, + "distance": 40.119, "collisionLat": 26.85198163866211, "collisionLon": 112.57059540184451, "stopLines": [ diff --git a/test/crashreport-bugly/src/main/java/com/mogo/test/crashreport/bugly/BuglyCrashReportProvider.java b/test/crashreport-bugly/src/main/java/com/mogo/test/crashreport/bugly/BuglyCrashReportProvider.java index 2b0b914110..7fcfe41577 100644 --- a/test/crashreport-bugly/src/main/java/com/mogo/test/crashreport/bugly/BuglyCrashReportProvider.java +++ b/test/crashreport-bugly/src/main/java/com/mogo/test/crashreport/bugly/BuglyCrashReportProvider.java @@ -36,7 +36,8 @@ public class BuglyCrashReportProvider implements ITestCrashReportProvider { String processName = getProcessName(android.os.Process.myPid()); CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(context); strategy.setUploadProcess(processName == null || processName.equals(packageName)); - + //该用户本次启动后的异常日志用户ID都将是 sn + CrashReport.setUserId(MoGoAiCloudClientConfig.getInstance().getSn()); String productFlavor = DebugConfig.getProductFlavor(); strategy.setAppChannel(productFlavor); Bugly.init(context, CrashReportConstants.buglyAppID, true, strategy);