def METHOD_NAME(self) -> bool:
    """
    Attempt to read a packet from the board. If the packet has an appropriate device
    handler, then the packet is passed to the ``on_data`` method of that handler.
    Returns:
        bool: The success in reading a packet.
    """
    try:
        packet = self.board.METHOD_NAME()
    except (SerialException, USB2CANException) as e:
        rospy.logerr(f"Error reading packet: {e}")
        return False
    if packet is None:
        return False
    if packet.device in self.handles:
        self.handles[packet.device].on_data(packet.data)
    else:
        rospy.logwarn(
            f"Message received for device {packet.device}, but no handle registered",
        )
    return True