示例#1
0
void
DeviceBlackboard::SetQNH(fixed qnh)
{
  ScopeLock protect(mutexBlackboard);

  AllDevicesPutQNH(AtmosphericPressure(qnh), Calculated());
}
示例#2
0
static bool
QNHProcessTimer()
{
  bool modified = false;

  ComputerSettings &settings_computer =
    CommonInterface::SetComputerSettings();
  const NMEAInfo &basic = CommonInterface::Basic();
  const DerivedInfo &calculated = CommonInterface::Calculated();

  if (basic.settings.qnh_available.Modified(settings_computer.pressure_available)) {
    settings_computer.pressure = basic.settings.qnh;
    settings_computer.pressure_available = basic.settings.qnh_available;
    modified = true;
  }

  if (calculated.pressure_available.Modified(settings_computer.pressure_available)) {
    settings_computer.pressure = calculated.pressure;
    settings_computer.pressure_available = calculated.pressure_available;

    MessageOperationEnvironment env;
    AllDevicesPutQNH(settings_computer.pressure, env);

    modified = true;
  }

  return modified;
}
示例#3
0
/**
 * Collect QNH updates from external devices and AutoQNH.
 */
static void
QNHProcessTimer()
{
  ComputerSettings &settings_computer =
    CommonInterface::SetComputerSettings();
  const NMEAInfo &basic = CommonInterface::Basic();
  const DerivedInfo &calculated = CommonInterface::Calculated();

  if (basic.settings.qnh_available.Modified(settings_computer.pressure_available)) {
    settings_computer.pressure = basic.settings.qnh;
    settings_computer.pressure_available = basic.settings.qnh_available;
  }

  if (calculated.pressure_available.Modified(settings_computer.pressure_available)) {
    settings_computer.pressure = calculated.pressure;
    settings_computer.pressure_available = calculated.pressure_available;

    AllDevicesPutQNH(settings_computer.pressure);
  }
}
示例#4
0
void
DeviceBlackboard::SetQNH(AtmosphericPressure qnh, OperationEnvironment &env)
{
  AllDevicesPutQNH(qnh, env);
}
示例#5
0
void
DeviceBlackboard::SetQNH(fixed qnh)
{
  AllDevicesPutQNH(AtmosphericPressure(qnh));
}