lseek must return the current file position. Previously, the littlefs
version always returned 0, which broke terrain I/O as it checks that the
position returned is the one it seeked to. Fix to return the current
position, which is correctly returned from littlefs.
This problem was originally and incorrectly diagnosed as an issue with
littlefs seeking past the end of the file, but this functionality works
fine and fixing the incorrect return completely fixes terrain.
Terrain functionality was verified using `TERRAIN_DEBUG` on
KakuteH7Mini-Nand running sim on HW. Terrain data is correctly
downloaded from the GCS and loaded from the filesystem after reboot.
../../libraries/GCS_MAVLink/GCS_Common.cpp: In member function 'void GCS_MAVLINK::send_highres_imu()':
../../libraries/GCS_MAVLink/GCS_Common.cpp:2184:27: error: unused variable 'HIGHRES_IMU_UPDATED_XMAG' [-Werror=unused-variable]
2184 | static const uint16_t HIGHRES_IMU_UPDATED_XMAG = 0x40;
| ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
cc1plus: all warnings being treated as errors
don't cache connection result and return appropriate error if connection fails.
don't wait 1s to send first serial passthrough message
retry failed cmd_DeviceInitFlash as per betaflight
ensure the bootinfo structure is large enough
having a really slow RTL speed should not cause stopping-distance problems, but it does. The vehicle goes off track as the PSC can't achieve the stopping distance demanded
In file included from ../../libraries/AP_HAL_SITL/RCInput.cpp:6:
../../libraries/AP_HAL_SITL/RCInput.h:22:17: warning: private field '_sitlState' is not used [-Wunused-private-field]
22 | SITL_State *_sitlState;
| ^
../../libraries/AP_HAL_SITL/RCInput.h:23:10: warning: private field 'using_rc_protocol' is not used [-Wunused-private-field]
23 | bool using_rc_protocol;
| ^
../../libraries/AP_Airspeed/AP_Airspeed_AUAV.h:68:11: warning: private field 'pressure_abs_L' is not used [-Wunused-private-field]
68 | float pressure_abs_L;
Fixes an issue where omni motors (BrushedWithRelay/BrushedBiplor)
are not configured correctly due to initialization order. setup_omni()
must execute first so that _motors_num is set correctly when
setup_pwm_type() uses it to determine which motors are in use.
This condition must be exactly the same as the one in ChibiOS as whether
we use full duplex or not causes different bus traffic.
This probably needs refactoring, the semantics are confusing and subtle,
though the use of the same driver between I2C and SPI devices must be
accounted for.