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 85d1e6b3ba..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 @@ -149,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