Source code for compas_rrc.watch


from compas_fab.backends.ros.messages import ROSmsg

from compas_rrc.common import ExecutionLevel
from compas_rrc.common import FeedbackLevel

INSTRUCTION_PREFIX = 'r_RRC_'

__all__ = [
    'ReadWatch',
    'StartWatch',
    'StopWatch',
]


[docs]class ReadWatch(ROSmsg): """Read Watch is a call that requests the value of the watch in the robot code. Examples -------- .. code-block:: python # Read watch watch_time = abb.send_and_wait(rrc.ReadWatch()) # Unit [s] RAPID Instruction: ``ClkRead`` .. include:: ../abb-reference.rst """
[docs] def __init__(self): """Create a new instance of the instruction.""" self.instruction = INSTRUCTION_PREFIX + 'ReadWatch' self.feedback_level = FeedbackLevel.DONE self.exec_level = ExecutionLevel.ROBOT self.string_values = [] self.float_values = []
[docs] def parse_feedback(self, result): """Parses the result as a :obj:`float` (seconds). Return ------ :obj:`float` Current value of the watch in seconds. """ # read input value result = round(result['float_values'][0], 3) return result
[docs]class StartWatch(ROSmsg): """Start Watch is a call that starts the watch in the robot code. Examples -------- .. code-block:: python # Start watch done = abb.send_and_wait(rrc.StartWatch()) RAPID Instruction: ``ClkStart`` .. include:: ../abb-reference.rst """
[docs] def __init__(self, feedback_level=FeedbackLevel.NONE): """Create a new instance of the instruction. Parameters ---------- feedback_level : :obj:`int` Defines the feedback level requested from the robot. Defaults to :attr:`FeedbackLevel.NONE`. """ self.instruction = INSTRUCTION_PREFIX + 'StartWatch' self.feedback_level = feedback_level self.exec_level = ExecutionLevel.ROBOT self.string_values = [] self.float_values = []
[docs]class StopWatch(ROSmsg): """Stop Watch is a call that stops the watch in the robot code. Examples -------- .. code-block:: python # Stop watch done = abb.send_and_wait(rrc.StopWatch()) RAPID Instruction: ``ClkStop`` .. include:: ../abb-reference.rst """
[docs] def __init__(self, feedback_level=FeedbackLevel.NONE): """Create a new instance of the instruction. Parameters ---------- feedback_level : :obj:`int` Defines the feedback level requested from the robot. Defaults to :attr:`FeedbackLevel.NONE`. """ self.instruction = INSTRUCTION_PREFIX + 'StopWatch' self.feedback_level = feedback_level self.exec_level = ExecutionLevel.ROBOT self.string_values = [] self.float_values = []