def METHOD_NAME(self, joy: Joy):
    """
    Consists of several procedures that reference parameters that are retrieved from the "Joy" object in
    order to determine the state of the controller or whether it is a timeout phase.
    Args:
        joy (Joy): The Joy message.
    """
    if self.last_joy is None:
        self.last_joy = joy
        return
    if joy.axes == self.last_joy.axes and joy.buttons == self.last_joy.buttons:
        # No change in state
        # The controller times out after 15 minutes
        if (
            rospy.Time.now() - self.last_joy.header.stamp > rospy.Duration(15 * 60)
            and self.active
        ):
            rospy.logwarn("Controller Timed out. Hold start to resume.")
            self.reset()
    else:
        joy.header.stamp = (
            rospy.Time.now()
        )  # In the sim, stamps weren't working right
        self.last_joy = joy