diff --git a/canopen/profiles/p402.py b/canopen/profiles/p402.py index faa5f25e..2c17149a 100644 --- a/canopen/profiles/p402.py +++ b/canopen/profiles/p402.py @@ -320,16 +320,18 @@ def is_homed(self, restore_op_mode=False): self.op_mode = previous_op_mode return homingstatus in ('TARGET REACHED', 'ATTAINED') - def homing(self, timeout=TIMEOUT_HOMING_DEFAULT): + def homing(self, timeout=TIMEOUT_HOMING_DEFAULT, restore_op_mode=False): """Execute the configured Homing method on the node. :param int timeout: Timeout value (default: 30). + :param bool restore_op_mode: + Switch back to the previous operation mode after homing (default: no). :return: If the homing was complete with success. :rtype: bool """ - if timeout is None: - timeout = self.TIMEOUT_HOMING_DEFAULT - previus_op_mode = self.op_mode + if restore_op_mode: + previous_op_mode = self.op_mode + self.state = 'SWITCHED ON' self.op_mode = 'HOMING' # The homing process will initialize at operation enabled self.state = 'OPERATION ENABLED' @@ -355,7 +357,8 @@ def homing(self, timeout=TIMEOUT_HOMING_DEFAULT): except RuntimeError as e: logger.info(str(e)) finally: - self.op_mode = previus_op_mode + if restore_op_mode: + self.op_mode = previous_op_mode return False @property