def METHOD_NAME(self, data: bytes, can_id: int) -> None:
    """
    Serves as the data handler for the device. Handles :class:`KillMessage`,
    :class:`ThrustPacket`, and :class:`HeartbeatMessage` types.
    """
    assert can_id in (THRUST_SEND_ID, KILL_SEND_ID)
    if data[0] == KillMessage.IDENTIFIER:
        packet = KillMessage.from_bytes(data)
        assert packet.is_command
        assert packet.is_hard or packet.is_soft
        if packet.is_hard:
            self.hard_kill_mobo = packet.is_asserted
        elif packet.is_soft:
            self.soft_kill_mobo = packet.is_asserted
        self.send_updates()
    elif data[0] == ThrustPacket.IDENTIFIER:
        packet = ThrustPacket.from_bytes(data)
    elif data[0] == HeartbeatMessage.IDENTIFIER:
        packet = HeartbeatMessage.from_bytes(data)
        self._last_heartbeat = rospy.Time.now()
    else:
        assert False, "No recognized identifier"