[6.1.0] fix bug of traffic light and v2n biz , plus change the range cross

This commit is contained in:
zhongchao
2023-09-25 12:01:08 +08:00
parent 80a99a27fb
commit 3f4d7caf3e
8 changed files with 43 additions and 25 deletions

View File

@@ -118,7 +118,7 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
"$M_V2X$TAG",
"路口经度为:${trafficLightResult.lon},纬度为:${trafficLightResult.lat};车的经度为:${it.longitude},纬度为:${it.latitude};两点距离为:${distance}"
)
val remainTime = trafficLightStatus.remain
val remainTime = trafficLightStatus.time()
val arriveTime = distance / speed
CallerLogger.d(
"$M_V2X$TAG",
@@ -235,7 +235,7 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType),
speed
)
if (content.isNullOrEmpty() || tts.isNullOrEmpty()) {
if (content.isEmpty() || tts.isEmpty()) {
Log.d("MsgBox-RedLightWarManaG", "alertContent或ttsContent为空!")
}
CallerMsgBoxManager.saveMsgBox(
@@ -263,8 +263,8 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
CallerChassisLocationGCJ02ListenerManager.removeListener(TAG)
}
override fun onChassisLocationGCJ02(gnssInfo: MogoLocation?) {
gnssInfo?.let {
override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {
mogoLocation?.let {
mLocation = it
}
}

View File

@@ -41,9 +41,7 @@ class MogoTrafficLightManager : IMoGoChassisLocationGCJ02Listener,
private var roadIDResult: RoadIDResult? = null
@Volatile
private var trafficLightResult: TrafficLightResult? = null
@Volatile
private var mCross: Boolean = false
private var inRange: Boolean = false
@Volatile
private var firstLoopCrossRoad: Boolean = true //开启循环请求路口
@@ -125,7 +123,9 @@ class MogoTrafficLightManager : IMoGoChassisLocationGCJ02Listener,
override fun onRoadChange(cross: Boolean) {
super.onRoadChange(cross)
mCross = cross
if(!cross){
outOfCrossRange()
}
}
private fun checkOutOfRange() {
@@ -133,24 +133,34 @@ class MogoTrafficLightManager : IMoGoChassisLocationGCJ02Listener,
roadIDResult?.let {
// 检测是否开过路口,开过路口则停止读灯。并重置 trafficLightResult 值为 null
if (trafficLightResult != null && it.isInRange(loc.latitude, loc.longitude)) {
if(inRange){
return
}
inRange = true
// CallerLogger.d(M_V2X + TAG, "进入路口")
CallerLogger.d(M_V2X + TAG, "进入路口")
CallerTrafficLightListenerManager.invokeEnterCrossRoad(true)
return
}
if (inRange || !mCross) {
// CallerLogger.d(M_V2X + TAG, "离开路口")
CallerTrafficLightListenerManager.invokeEnterCrossRoad(false)
inRange = false
trafficLightResult = null
firstLoopCrossRoad = true
mThreadHandler?.sendEmptyMessage(MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT)
CallerTrafficLightListenerManager.resetTrafficLightStatus()
if (inRange) {
outOfCrossRange()
}
}
}
}
private fun outOfCrossRange(){
CallerLogger.d(M_V2X + TAG, "离开路口 , inRange:$inRange")
if(!inRange){
return
}
CallerTrafficLightListenerManager.invokeEnterCrossRoad(false)
inRange = false
trafficLightResult = null
firstLoopCrossRoad = true
mThreadHandler?.sendEmptyMessage(MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT)
CallerTrafficLightListenerManager.resetTrafficLightStatus()
}
fun getRoadResult(): RoadIDResult? {
return roadIDResult
}

View File

@@ -123,6 +123,7 @@ class AiRoadMarker {
}
}
@Synchronized
private fun realMark(
marker: Marker,
wrapper: MarkerWrapper,
@@ -212,6 +213,7 @@ class AiRoadMarker {
aiMakers.remove(id)
}
MarkerRemoveManager.addMarker(wrapper)
countDown.set(0)
}
private fun removeLine() {

View File

@@ -11,6 +11,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
import com.mogo.eagle.core.data.biz.trafficlight.currentRoadTrafficLight
import com.mogo.eagle.core.data.biz.trafficlight.isGreen
import com.mogo.eagle.core.data.biz.trafficlight.time
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_VIP
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.V2N
import com.mogo.eagle.core.data.enums.CommunicationType
@@ -34,6 +35,7 @@ import com.mogo.eagle.function.biz.v2x.trafficlight.core.MogoTrafficLightManager
import com.mogo.eagle.function.biz.v2x.v2n.utils.V2XEventAnalyticsManager
import com.mogo.eagle.function.biz.v2x.vip.network.VipNetWorkModel
import com.zhjt.service_biz.BizConfig
import kotlin.math.abs
class VipCarManager : IMogoOnMessageListener<VipMessage>, IMoGoTrafficLightListener,
Handler.Callback {
@@ -133,7 +135,7 @@ class VipCarManager : IMogoOnMessageListener<VipMessage>, IMoGoTrafficLightListe
if (!turnLight) {
// 首次判断,变灯
turnLight = true
val controlTime = if (currentResult!!.isGreen()) 45 - currentResult.remain else 45
val controlTime = if (currentResult!!.isGreen()) 45 - abs(currentResult.time()) else 45
turnLight(controlTime)
}