int Sensors::parameters_update() { /* read the parameter values into _parameters */ int ret = update_parameters(_parameter_handles, _parameters); if (ret) { return ret; } _rc_update.update_rc_functions(); _voted_sensors_update.parameters_update(); /* update barometer qnh setting */ DevHandle h_baro; DevMgr::getHandle(BARO0_DEVICE_PATH, h_baro); #if !defined(__PX4_QURT) && !defined(__PX4_POSIX_RPI) && !defined(__PX4_POSIX_BEBOP) && !defined(__PX4_POSIX_OCPOC) // TODO: this needs fixing for QURT and Raspberry Pi if (!h_baro.isValid()) { if (!_hil_enabled) { // in HIL we don't have a baro PX4_ERR("no barometer found on %s (%d)", BARO0_DEVICE_PATH, h_baro.getError()); ret = PX4_ERROR; } } else { int baroret = h_baro.ioctl(BAROIOCSMSLPRESSURE, (unsigned long)(_parameters.baro_qnh * 100)); if (baroret) { PX4_ERR("qnh for baro could not be set"); ret = PX4_ERROR; } } #endif return ret; }