[6.5.0]红绿灯逻辑调整

This commit is contained in:
xuxinchao
2024-07-03 18:12:01 +08:00
parent fee278b2ba
commit 2a7bc40667
11 changed files with 234 additions and 138 deletions

View File

@@ -105,6 +105,12 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
"${SceneConstant.M_D_C}${TAG}",
"onAutopilotPerceptionTrafficLight ---- hasObuLightStatus = $hasObuLightStatus ----hasAiLightStatus = $hasAiLightStatus , trafficLights : ${trafficLights?:"null"}"
)
Log.i(TAG,"source="+trafficLights?.source)
if(trafficLights?.source == 2){
hasObuLightStatus = false
hasAiLightStatus = false
hasFusionLightStatus = true
}
if (!hasObuLightStatus) {
if (!hasAiLightStatus) {
trafficLights?.let {
@@ -130,6 +136,7 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
if (!hasAutopilotPerception) {
hasAutopilotPerception = true
}
if(light.nextState == null || light.nextState == FusionTrafficLightOuterClass.FusionLightState.STATE_OFF_FUSION
|| light.nextTwoState == null || light.nextTwoState == FusionTrafficLightOuterClass.FusionLightState.STATE_OFF_FUSION){
if (HmiBuildConfig.isShowCarSourceTrafficLightView) {
@@ -147,17 +154,25 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
onTrafficLightPlusSource(convert(light.state), 0, DataSourceType.TELEMATIC)
}
}else{
//有下一和下二灯态则为融合V2N红绿灯数据
onFusionTrafficLight(convert(light.state),light.duration.toInt(),
convert(light.nextState),light.nextDuration.toInt(),
convert(light.nextTwoState),light.nextTwoDuration.toInt(),
DataSourceType.TELEMATIC_UNION_V2N
)
//当前灯态倒计时小于5S时展示额外的提示框
if(light.duration < 5){
onTrafficLightPrompt(convert(light.state),light.duration.toInt())
Log.i(TAG,"current state="+light.state+" current duration="+light.duration+
" nextState="+light.nextState+" nextDuration="+light.nextDuration+
" nextTwoState="+light.nextTwoState+" nextTwoDuration="+light.nextTwoDuration)
if(convert(light.state) == TrafficLightEnum.BLACK){
//隐藏当前红绿灯以及额外提示框
CallerTrafficLightListenerManager.disableTrafficLight()
}else{
//有下一和下二灯态则为融合V2N红绿灯数据
onFusionTrafficLight(convert(light.state),light.duration.toInt(),
convert(light.nextState),light.nextDuration.toInt(),
convert(light.nextTwoState),light.nextTwoDuration.toInt(),
DataSourceType.TELEMATIC_UNION_V2N
)
//当前灯态倒计时小于5S时展示额外的提示框
if(light.duration < 5){
onTrafficLightPrompt(convert(light.state),light.duration,convert(light.nextState),light.nextDuration,
convert(light.nextTwoState),light.nextTwoDuration)
}
}
//TODO 提示框的消失逻辑
}
}
}
@@ -277,10 +292,11 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
linkCode = ChainConstant.CHAIN_SOURCE_ADAS,
nodeAliasCode = ChainConstant.CHAIN_CODE_ADAS_TRAFFIC_LIGHT,
paramIndexes = [0, 1])
override fun onTrafficLightPrompt(currentState: TrafficLightEnum, currentDuration: Int) {
super.onTrafficLightPrompt(currentState, currentDuration)
Log.i("xuxinchao","融合V2N红绿灯额外提示框提醒 Dis")
CallerTrafficLightListenerManager.onShowTrafficLightPrompt(currentState, currentDuration)
override fun onTrafficLightPrompt(currentState: TrafficLightEnum, currentDuration: Float,
nextState: TrafficLightEnum, nextDuration: Float,
nextTwoState: TrafficLightEnum, nextTwoDuration: Float) {
super.onTrafficLightPrompt(currentState, currentDuration,nextState, nextDuration, nextTwoState, nextTwoDuration)
CallerTrafficLightListenerManager.onShowTrafficLightPrompt(currentState, currentDuration,nextState, nextDuration, nextTwoState, nextTwoDuration)
}
/**