def METHOD_NAME(self, key, value, timestamp):
    self.round_trip_base_end = timestamp
    self.device_time_base = float(value)
    self.round_trip_base_time = self.round_trip_base_end - self.round_trip_base_start
    self.log("Device base time {}".format(value))
    measurement_stretch = (self.round_trip_base_time * self.time_measurement_multiplier) + 5
    if measurement_stretch > self.max_measurement_time:
        self.log("Time required {} to determine device timer is too high due to transport delay, skipping".format(measurement_stretch))
    else:
        self.log("sleeping for {} to measure drift accurately".format(measurement_stretch))
        time.sleep(measurement_stretch)
    self.round_trip_final_start = time.time()
    self.send_kv("final_time", 0)