getProfileDuration method

int getProfileDuration()

Returns the total measurement duration im ms.

Implementation

int getProfileDuration() {
  var cycles = oversampMulti2int(_sensorSettings.oversamplingTemperature);
  cycles += oversampMulti2int(_sensorSettings.oversamplingPressure);
  cycles += oversampMulti2int(_sensorSettings.oversamplingHumidity);

  /// Temperature, pressure and humidity measurement duration calculated in
  /// microseconds [us]
  var duration = cycles * 1963;
  duration +=
      (477 * 4); // Temperature, pressure and humidity switching duration
  duration += (477 * 5); // Gas measurement duration
  duration += 500; // Get it to the closest whole number
  duration ~/= 1000; // Convert to millisecond [ms]

  duration += 1; // Wake up duration of 1ms

  // Get the gas duration only when gas measurements are enabled
  if (_gasSettings.gasMeasurementsEnabled) {
    // The remaining time should be used for heating
    duration += _gasSettings.heaterDuration;
  }
  return duration;
}