[6.5.0]融合红绿灯
This commit is contained in:
@@ -39,8 +39,8 @@ fun TrafficLightStatus.convert(): TrafficLightEnum {
|
||||
}
|
||||
}
|
||||
|
||||
fun FusionTrafficLightOuterClass.FusionTrafficLight.convert(): TrafficLightEnum {
|
||||
return when (this.state) {
|
||||
fun convert(state: FusionTrafficLightOuterClass.FusionLightState): TrafficLightEnum {
|
||||
return when (state) {
|
||||
FusionTrafficLightOuterClass.FusionLightState.STATE_GREEN_FUSION -> TrafficLightEnum.GREEN
|
||||
FusionTrafficLightOuterClass.FusionLightState.STATE_YELLOW_FUSION -> TrafficLightEnum.YELLOW
|
||||
FusionTrafficLightOuterClass.FusionLightState.STATE_RED_FUSION -> TrafficLightEnum.RED
|
||||
@@ -78,6 +78,10 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
@Volatile
|
||||
private var hasAutopilotPerception: Boolean = false
|
||||
|
||||
//是否有融合带有下一和下二灯态的红绿灯数据
|
||||
@Volatile
|
||||
private var hasFusionLightStatus: Boolean = false
|
||||
|
||||
//红绿灯定时器,超时未更新隐藏红绿灯
|
||||
@Volatile
|
||||
private var lightCountDownTimer: CountDownTimer? = null
|
||||
@@ -125,19 +129,29 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
if (!hasAutopilotPerception) {
|
||||
hasAutopilotPerception = true
|
||||
}
|
||||
if (HmiBuildConfig.isShowCarSourceTrafficLightView) {
|
||||
var lightRemain = light.duration.toInt()
|
||||
val source = when (trafficLights.source) {
|
||||
1 -> DataSourceType.TELEMATIC_UNION_V2I
|
||||
2 -> DataSourceType.TELEMATIC_UNION_V2N
|
||||
else -> {
|
||||
lightRemain = 0
|
||||
DataSourceType.TELEMATIC
|
||||
if(light.nextState == null || light.nextState == FusionTrafficLightOuterClass.FusionLightState.STATE_OFF_FUSION
|
||||
|| light.nextTwoState == null || light.nextTwoState == FusionTrafficLightOuterClass.FusionLightState.STATE_OFF_FUSION){
|
||||
if (HmiBuildConfig.isShowCarSourceTrafficLightView) {
|
||||
var lightRemain = light.duration.toInt()
|
||||
val source = when (trafficLights.source) {
|
||||
1 -> DataSourceType.TELEMATIC_UNION_V2I
|
||||
2 -> DataSourceType.TELEMATIC_UNION_V2N
|
||||
else -> {
|
||||
lightRemain = 0
|
||||
DataSourceType.TELEMATIC
|
||||
}
|
||||
}
|
||||
onTrafficLightPlusSource(convert(light.state), lightRemain, source)
|
||||
} else {
|
||||
onTrafficLightPlusSource(convert(light.state), 0, DataSourceType.TELEMATIC)
|
||||
}
|
||||
onTrafficLightPlusSource(light.convert(), lightRemain, source)
|
||||
} else {
|
||||
onTrafficLightPlusSource(light.convert(), 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
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -248,6 +262,34 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
CallerTrafficLightListenerManager.disableTrafficLight()
|
||||
}
|
||||
|
||||
/**
|
||||
* 融合V2N红绿灯数据,带有下一下二灯态
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_SOCKET_TRAFFIC_LIGHT,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = ChainConstant.CHAIN_CODE_ADAS_TRAFFIC_LIGHT,
|
||||
paramIndexes = [0, 1, 2,3,4,5,6,7]
|
||||
)
|
||||
override fun onFusionTrafficLight(
|
||||
currentState: TrafficLightEnum, currentDuration: Int,
|
||||
nextState: TrafficLightEnum, nextDuration: Int,
|
||||
nextTwoState: TrafficLightEnum, nextTwoDuration: Int,
|
||||
lightSource: DataSourceType
|
||||
) {
|
||||
super.onFusionTrafficLight(currentState, currentDuration, nextState, nextDuration,
|
||||
nextTwoState, nextTwoDuration, lightSource)
|
||||
if (filterTelematicUnion(lightSource)) {
|
||||
return
|
||||
}
|
||||
hasObuLightStatus = false
|
||||
hasAutopilotPerception = false
|
||||
hasAiLightStatus = false
|
||||
hasFusionLightStatus = true
|
||||
CallerTrafficLightListenerManager.showFusionTrafficLight(currentState, currentDuration, nextState, nextDuration,
|
||||
nextTwoState, nextTwoDuration, lightSource)
|
||||
}
|
||||
|
||||
/**
|
||||
* OBU红绿灯数据
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user