diff --git a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java index e6e392f6eb..aa1875fcf7 100644 --- a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java +++ b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java @@ -181,7 +181,7 @@ public class SmallMapDirectionView @Override public void onLocationChanged(@Nullable MogoLocation location) { -// Logger.d(TAG, "onCarLocationChanged2 :" + location.getLatitude()+":"+location.getLongitude()); + Logger.d(TAG, "onCarLocationChanged2 :" + location.getLatitude()+":"+location.getLongitude()); LatLng currentLatLng = new LatLng(location.getLatitude(), location.getLongitude()); //更新车辆位置 if (mCarMarker != null) { @@ -217,10 +217,10 @@ public class SmallMapDirectionView clearPolyline(); mCoordinatesLatLng.clear(); } - cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).build(); + cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).build(); } else { //设置希望展示的地图缩放级别 - cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).zoom(zoomLevel).build(); + cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build(); // mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLatLng, zoomLevel)); } mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 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 ecd0f849f0..fafd9c6d4e 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 @@ -20,7 +20,10 @@ import kotlin.math.floor class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener { private var vip: Boolean = false - private var isFirst = false + // 是否第一次进入道路100m处 + private var isFirst = true + // 是否已进入到路口(停止线处) + private var isEnter = false companion object { @@ -32,8 +35,8 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener { } override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) { - Logger.d(TAG, "处理路口交通数据。isFirst为:${isFirst}") - if (isFirst) { + Logger.d(TAG, "处理路口交通数据:是否是第一次处理:${isFirst}是否进入路口:${isEnter}") + if (isFirst && !isEnter) { getCurrentRoadTrafficLight(trafficLightResult)?.let { handleRedLightWarning(it, trafficLightResult.flashYellow) } @@ -41,9 +44,12 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener { } } - override fun onEnterCrossRoad() { - Logger.d(TAG, "进入路口") - isFirst = true + override fun onEnterCrossRoad(enter: Boolean) { + Logger.d(TAG, "回调是否进入路口:$enter") + isEnter = enter + if (enter) { + isFirst = true + } } override fun onVipSet(status: Boolean) { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightProvider.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightProvider.kt index 9f606b63f0..75e8dc18e8 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightProvider.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightProvider.kt @@ -7,7 +7,6 @@ import com.mogo.eagle.core.data.trafficlight.TrafficLightDetail import com.mogo.eagle.core.function.api.trafficlight.ITrafficLightProvider import com.mogo.eagle.core.function.v2x.trafficlight.TrafficLightConst.Companion.MODULE_NAME import com.mogo.eagle.core.function.v2x.trafficlight.core.MogoTrafficLightManager -import com.mogo.utils.logger.Logger @Route(path = MogoServicePaths.PATH_TRAFFIC_LIGHT) class TrafficLightProvider : ITrafficLightProvider { @@ -31,10 +30,18 @@ class TrafficLightProvider : ITrafficLightProvider { lightId: Int, crossingNo: String, heading: Double, + controlTime: Int, onSuccess: (() -> Unit), onError: ((String) -> Unit) ) { - return MogoTrafficLightManager.INSTANCE.turnLightToGreen(lightId, crossingNo,heading,onSuccess, onError) + return MogoTrafficLightManager.INSTANCE.turnLightToGreen( + lightId, + crossingNo, + heading, + controlTime, + onSuccess, + onError + ) } override fun onDestroy() { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt index 6a9478228f..49ddedb289 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt @@ -121,12 +121,13 @@ class MogoTrafficLightManager : IMogoCarLocationChangedListener2 { // 检测是否开过路口,开过路口则停止读灯。并重置 trafficLightResult 值为 null if (trafficLightResult != null && it.isInRange(loc.latitude, loc.longitude)) { inRange = true - Logger.d("arrowtest", "进入路口") - CallTrafficLightListenerManager.invokeEnterCrossRoad() + Logger.d(TAG, "进入路口") + CallTrafficLightListenerManager.invokeEnterCrossRoad(true) return } if (inRange) { - Logger.d("arrowtest", "离开路口") + Logger.d(TAG, "离开路口") + CallTrafficLightListenerManager.invokeEnterCrossRoad(false) inRange = false trafficLightResult = null mThreadHandler?.sendEmptyMessage(MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT) @@ -148,10 +149,18 @@ class MogoTrafficLightManager : IMogoCarLocationChangedListener2 { lightId: Int, crossingNo: String, heading: Double, + controlTime: Int, onSuccess: (() -> Unit), onError: ((String) -> Unit) ) { - trafficLightNetWorkModel.turnLightToGreen(lightId, crossingNo, heading, onSuccess, onError) + trafficLightNetWorkModel.turnLightToGreen( + lightId, + crossingNo, + heading, + controlTime, + onSuccess, + onError + ) } override fun onCarLocationChanged(latLng: MogoLatLng?) { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightNetWorkModel.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightNetWorkModel.kt index 1d028167f8..efdb3ea89f 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightNetWorkModel.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightNetWorkModel.kt @@ -107,13 +107,14 @@ class TrafficLightNetWorkModel { lightId: Int, crossingNo: String, heading: Double, + controlTime: Int, onSuccess: (() -> Unit), onError: ((String) -> Unit) ) { request> { val map = hashMapOf() start { - val trafficLightRequestData = ChangeLightRequestData(lightId, crossingNo, heading) + val trafficLightRequestData = ChangeLightRequestData(lightId, crossingNo, heading, controlTime) map["sn"] = MoGoAiCloudClientConfig.getInstance().sn map["data"] = Gson().toJson(trafficLightRequestData) } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt index c9301f9fe0..bf93846658 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt @@ -7,9 +7,7 @@ import android.os.Looper import android.os.Message import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.map.MogoLatLng -import com.mogo.eagle.core.data.trafficlight.TrafficLightResult -import com.mogo.eagle.core.data.trafficlight.currentRoadTrafficLight -import com.mogo.eagle.core.data.trafficlight.turnRedAtOnce +import com.mogo.eagle.core.data.trafficlight.* import com.mogo.eagle.core.data.v2x.VipMessage import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.trafficlight.IMoGoTrafficLightListener @@ -114,8 +112,9 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe if (!turnLightFirst) { // 首次判断,变灯 turnLightFirst = true - Logger.d(TAG, "触发变灯") - turnLight() + val controlTime = if (currentResult!!.isGreen()) 45 - currentResult.remain else 45 + Logger.d(TAG, "触发变灯 , controlTime : $controlTime") + turnLight(controlTime) } lastResult?.let { //如果上次结果和本次灯态结果变化比较大,则已变灯,控制HMI展示弹窗 @@ -159,7 +158,7 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe private fun cancelVip() { vip = false - if(handler.hasMessages(MSG_WHAT_VIP_CANCEL)){ + if (handler.hasMessages(MSG_WHAT_VIP_CANCEL)) { handler.removeMessages(MSG_WHAT_VIP_CANCEL) } CallerHmiManager.vipIdentification(false) @@ -203,12 +202,12 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe }) } - private fun turnLight() { + private fun turnLight(controlTime: Int) { result?.let { MogoTrafficLightManager.INSTANCE.turnLightToGreen( it.lightId, it.crossId, - mLocation!!.bearing.toDouble(), { + mLocation!!.bearing.toDouble(), controlTime, { Logger.d(TAG, "变灯请求成功") }, { errorMsg -> Logger.e(TAG, "变灯请求失败 msg : $errorMsg") diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/ChangeLightRequestData.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/ChangeLightRequestData.kt index ddac2bda46..0f6c4ded21 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/ChangeLightRequestData.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/ChangeLightRequestData.kt @@ -4,6 +4,6 @@ class ChangeLightRequestData( val lightId: Int, //红绿灯ID val crossingNo: String, //路口ID val heading: Double, //行车航向角 - val action: String? = "" //保留字段,暂时没用 + val time: Int //控灯时间 ) { } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/IMoGoTrafficLightListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/IMoGoTrafficLightListener.kt index 04707d64f3..54eff7224e 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/IMoGoTrafficLightListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/IMoGoTrafficLightListener.kt @@ -12,7 +12,7 @@ interface IMoGoTrafficLightListener { /** * 车辆进入路口回调 */ - fun onEnterCrossRoad(){ + fun onEnterCrossRoad(enter:Boolean){ } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/ITrafficLightProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/ITrafficLightProvider.kt index 90f34dd3f8..eb5bf57ad3 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/ITrafficLightProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/ITrafficLightProvider.kt @@ -20,6 +20,7 @@ interface ITrafficLightProvider : IMoGoFunctionServerProvider { lightId: Int, crossingNo: String, heading: Double, + controlTime:Int, onSuccess: (() -> Unit), onError: ((String) -> Unit) ) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightListenerManager.kt index 7fda1a4fe9..c4e3d7e795 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightListenerManager.kt @@ -116,10 +116,10 @@ object CallTrafficLightListenerManager { } } - fun invokeEnterCrossRoad(){ + fun invokeEnterCrossRoad(enter: Boolean) { M_TRAFFIC_LIGHT_LISTENER.forEach { val listener = it.value - listener.onEnterCrossRoad() + listener.onEnterCrossRoad(enter) } } diff --git a/gradle.properties b/gradle.properties index e37c881249..e946e68b90 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=V2.0.0.9 +MAP_SDK_VERSION=2.0.0.11 # websocket WEBSOCKET_VERSION=1.1.7 ## 产品库必备配置,产品库自动对versionCode和versionName版本进行升级 diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/MogoRouteOverlayManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/MogoRouteOverlayManager.java index e865ccee17..0403a802d6 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/MogoRouteOverlayManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/MogoRouteOverlayManager.java @@ -87,7 +87,12 @@ public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2 if (trajectoryInfos == null || trajectoryInfos.size() == 0) { return; } - Log.e(TAG, "trajectoryInfos:" + trajectoryInfos.size()); + ADASTrajectoryInfo adasTrajectoryInfo = trajectoryInfos.get(0); + double lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat(); + double lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(); + + Log.d(TAG, "trajectoryInfos:" + adasTrajectoryInfo.getLat()+":"+adasTrajectoryInfo.getLon()); + Log.d(TAG, "location:" + lat+":"+lon); List mogoLatLngs = new ArrayList<>(); for (ADASTrajectoryInfo a : trajectoryInfos) { mogoLatLngs.add(new MogoLatLng(a.getLat(), a.getLon()));