diff --git a/rosys/hardware/battery_control.py b/rosys/hardware/battery_control.py index 74cf18ad..cba8b7ee 100644 --- a/rosys/hardware/battery_control.py +++ b/rosys/hardware/battery_control.py @@ -1,4 +1,5 @@ from .. import rosys +from ..helpers import remove_indentation from .expander import ExpanderHardware from .module import ModuleHardware from .robot_brain import RobotBrain @@ -14,8 +15,16 @@ def __init__(self, robot_brain: RobotBrain, *, ) -> None: self.name = name self.status: bool = False - lizard_code = f'{self.name}_reset = {expander.name + "." if expander else ""}Output({reset_pin})\n' - lizard_code += f'{self.name}_status = {expander.name + "." if expander else ""}Input({status_pin})\n' + lizard_code = remove_indentation(f''' + {self.name}_reset = {expander.name + "." if expander else ""}Output({reset_pin}) + {self.name}_status = {expander.name + "." if expander else ""}Input({status_pin}) + ''') + if expander: + lizard_code += remove_indentation(f''' + # TODO: remove when lizard issue 66 is fixed. + {self.name}_status.level = 0 + {self.name}_status.active = false + ''') core_message_fields = [f'{self.name}_status.level'] super().__init__(robot_brain=robot_brain, lizard_code=lizard_code, core_message_fields=core_message_fields) diff --git a/rosys/hardware/bumper.py b/rosys/hardware/bumper.py index ed352293..5630d383 100644 --- a/rosys/hardware/bumper.py +++ b/rosys/hardware/bumper.py @@ -1,6 +1,7 @@ import abc from ..event import Event +from ..helpers import remove_indentation from .estop import EStop from .expander import ExpanderHardware from .module import Module, ModuleHardware, ModuleSimulation @@ -34,8 +35,15 @@ def __init__(self, robot_brain: RobotBrain, *, estop: EStop | None = None) -> None: self.name = name self.pins = pins - lizard_code = '\n'.join(f'{name}_{pin} = {expander.name + "." if expander else ""}Input({number})' - for pin, number in pins.items()) + lizard_code = '' + for pin, number in pins.items(): + lizard_code += f'{name}_{pin} = {expander.name + "." if expander else ""}Input({number})\n' + if expander: + lizard_code += remove_indentation(f''' + # TODO: remove when lizard issue 66 is fixed. + {name}_{pin}.level = 0 + {name}_{pin}.active = false + ''') core_message_fields = [f'{name}_{pin}.level' for pin in pins] super().__init__(robot_brain=robot_brain, lizard_code=lizard_code,