navd: handle key present with none value (#29025)

pull/29028/head
Adeeb Shihadeh 2 years ago committed by GitHub
parent 18cf253c62
commit 60d570349f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      selfdrive/navd/helpers.py

@ -131,6 +131,10 @@ def maxspeed_to_ms(maxspeed: Dict[str, Union[str, float]]) -> float:
return SPEED_CONVERSIONS[unit] * speed return SPEED_CONVERSIONS[unit] * speed
def field_valid(dat: dict, field: str) -> bool:
return field in dat and dat[field] is not None
def parse_banner_instructions(instruction: Any, banners: Any, distance_to_maneuver: float = 0.0) -> None: def parse_banner_instructions(instruction: Any, banners: Any, distance_to_maneuver: float = 0.0) -> None:
if not len(banners): if not len(banners):
return return
@ -147,19 +151,19 @@ def parse_banner_instructions(instruction: Any, banners: Any, distance_to_maneuv
# Primary # Primary
p = current_banner['primary'] p = current_banner['primary']
if 'text' in p: if field_valid(p, 'text'):
instruction.maneuverPrimaryText = p['text'] instruction.maneuverPrimaryText = p['text']
if 'type' in p: if field_valid(p, 'type'):
instruction.maneuverType = p['type'] instruction.maneuverType = p['type']
if 'modifier' in p: if field_valid(p, 'modifier'):
instruction.maneuverModifier = p['modifier'] instruction.maneuverModifier = p['modifier']
# Secondary # Secondary
if 'secondary' in current_banner: if field_valid(current_banner, 'secondary'):
instruction.maneuverSecondaryText = current_banner['secondary']['text'] instruction.maneuverSecondaryText = current_banner['secondary']['text']
# Lane lines # Lane lines
if 'sub' in current_banner: if field_valid(current_banner, 'sub'):
lanes = [] lanes = []
for component in current_banner['sub']['components']: for component in current_banner['sub']['components']:
if component['type'] != 'lane': if component['type'] != 'lane':
@ -170,7 +174,7 @@ def parse_banner_instructions(instruction: Any, banners: Any, distance_to_maneuv
'directions': [string_to_direction(d) for d in component['directions']], 'directions': [string_to_direction(d) for d in component['directions']],
} }
if 'active_direction' in component: if field_valid(component, 'active_direction'):
lane['activeDirection'] = string_to_direction(component['active_direction']) lane['activeDirection'] = string_to_direction(component['active_direction'])
lanes.append(lane) lanes.append(lane)

Loading…
Cancel
Save