Commit Graph

36864 Commits

Author SHA1 Message Date
Thomas Watson f406c62449 AP_DroneCAN: DNA_Server: move node info update operation to db
Must be locked for the whole operation due to the occupied check and
addition read-modify-write.
2024-08-13 09:58:44 +10:00
Thomas Watson e79437d04a AP_DroneCAN: DNA_Server: move init operation into db
Must be locked for the whole operation due to the get/add
read-modify-write.
2024-08-13 09:58:44 +10:00
Thomas Watson 01e285c681 AP_DroneCAN: DNA_Server: move database tasks to db class
The server should not have raw read/write access to the database so the
database needs to take over the tasks.
2024-08-13 09:58:44 +10:00
Thomas Watson a9774d2334 AP_DroneCAN: DNA_Server: move storage read/write to its own class
There is (currently) only one storage area that is used by all servers,
so it needs to be managed by its own class shared among them.

The occupied mask is also moved as it reflects the storage contents and
so can't be stored by each server.
2024-08-13 09:58:44 +10:00
Iampete1 f6da3ce764 AC_AutoTune: add support for testing tune via aux function 2024-08-13 08:57:44 +09:00
Iampete1 94d3e2673a AC_AutoTune: Multi and Heli: only load tuned gains if a axis has completed successfully 2024-08-13 08:57:44 +09:00
Iampete1 9da6f321a0 RC_Channel: add autotune switch 2024-08-13 08:57:44 +09:00
Peter Barker c3b6127b1b AP_ExternalAHRS: correct VectorNAV handling of error term 2024-08-13 08:38:21 +10:00
Peter Barker f389549d5d AP_InertialSensor: correct warnings on static_assert requiring a message 2024-08-13 08:38:00 +10:00
Peter Barker ce03fd3ed9 AC_AutoTune: remove unused variable from heli autotune 2024-08-12 13:30:26 -04:00
Peter Barker 748fe538ea AP_Winch: correct compilation when backends compiled out 2024-08-12 18:28:27 +10:00
Peter Barker 27a7a21805 AP_Compass: correct compilation when logging disabled 2024-08-12 18:28:07 +10:00
Peter Barker 610ba486ad AP_MSP: cut more code out based on defines 2024-08-12 18:07:21 +10:00
Peter Barker 5c3aa91721 AP_RCTelemetry: add missing gate for AP_VIDEOTX_ENABLED
possible nullptr issue?
2024-08-12 17:52:04 +10:00
Peter Barker 92dd71203e AP_VideoTX: correct include to use config.h
need to avoid random headers in these config files!
2024-08-12 17:52:04 +10:00
Peter Barker 53e9fe0805 AP_Mount: correct compilation with HAL_MOUNT_SET_CAMERA_SOURCE_ENABLED off 2024-08-12 17:50:59 +10:00
Tom Pittenger a014bcb5bd AP_RPM: Allow more instances 2024-08-10 22:37:03 +10:00
mikefenghao ff30224079 AP_HAL_ChibiOS:added new hardware PixPilot-V6PRO 2024-08-10 11:06:33 +10:00
Peter Barker e75903d6fa AP_Baro: replace gcs().send_text with GCS_SEND_TEXT 2024-08-09 14:53:55 -07:00
Peter Barker 127e634589 GCS_MAVLink: add and use Battery backend internal-use-only flag
sometimes the information from a backend is very useful for logging, but not via telemetry.

Add an option bit to signify this
2024-08-08 09:12:08 +10:00
Peter Barker 8ee09c299e AP_BattMonitor: add and use Battery backend internal-use-only flag
sometimes the information from a backend is very useful for logging, but not via telemetry.

Add an option bit to signify this
2024-08-08 09:12:08 +10:00
Iampete1 34549cf0cb AP_ESC_Telem: add logging of power percentage 2024-08-07 11:23:35 +01:00
Iampete1 8ec3d0f0a9 AP_DroneCAN: populate ESC power percentage 2024-08-07 11:23:35 +01:00
Andy Piper a974f3fd42 AP_Motors: add access to per-motor thrust values 2024-08-07 18:45:50 +10:00
Andy Piper fd19c3f401 AP_Vehicle: support per-motor throttle based notches 2024-08-07 18:45:50 +10:00
Peter Barker e23e58fc17 SITL: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 4dac24796d GCS_MAVLink: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker c0b905f6e6 AR_Motors: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 7c1d37f374 AP_VisualOdom: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker bfd97bf0cd AP_Soaring: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker fd418ca59d AP_RangeFinder: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker cee45a2fc2 AP_Radio: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 96b5fa6e93 AP_Proximity: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 496bbde384 AP_Mount: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 78afaebe55 AP_Logger: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 52d5b4e684 AP_LandingGear: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 9a1aece9ab AP_HAL_ESP32: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 23b7e0f64d AP_HAL_ChibiOS: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker f7767d7fd0 AP_Generator: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 4d24e7bbf0 AP_Follow: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker fa4e90a3bb AP_Compass: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker ffb2a32144 AP_Camera: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 4565eed5ad AP_BoardConfig: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker f5e55b9a12 AP_Beacon: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker d205e2e5cf AP_BattMonitor: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker ec5eb88217 AP_Baro: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker edf42f799c AP_AdvancedFailsafe: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker 5db0eecb99 AC_Fence: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Peter Barker bf09835509 AC_AutoTune: use GCS_SEND_TEXT rather than gcs().send_text
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-07 18:33:16 +10:00
Andy Piper b6717e541a AP_MSP: use highest ESC temp rather than motor temp 2024-08-07 18:10:56 +10:00
Andy Piper f6984024c3 AP_ESC_Telem: use highest ESC temp rather than motor temp 2024-08-07 18:10:56 +10:00
Andy Piper 102f483623 AP_OSD: use highest ESC temp rather than motor temp 2024-08-07 18:10:56 +10:00
Andy Piper 189cc9d549 AP_HAL_ChibiOS: correctly uninvert RX/TX on F4 with inverter support 2024-08-07 17:34:34 +10:00
Andy Piper c8989837bc AP_HAL_ChibiOS: KakuteF4-Wing 2024-08-07 17:34:34 +10:00
Andy Piper 30ce705765 AP_HAL_ChibiOS: fix TMotor H743 with BMI270 2024-08-07 17:30:44 +10:00
Bob Long 078a86ad96 AP_Camera: fix altitude units in CAMERA_FOV_STATUS 2024-08-07 17:08:49 +10:00
Peter Barker b6426516b8 AP_HAL_SITL: work around bug in dash
dash doesn't search the path for scripts, so allow user to specify path to ArduPilot scripts
2024-08-07 17:03:52 +10:00
George Zogopoulos 1f01f75036 AP_NavEKF3: Corrected logged units 2024-08-07 17:02:28 +10:00
Nicole Ashley 126d54bc93 AP_Vehicle: Initialise i-BUS telemetry when enabled 2024-08-07 14:01:44 +10:00
Nicole Ashley e2c7b489a1 AP_OSD: Add i-BUS telemetry serial protocol value 2024-08-07 14:01:44 +10:00
Nicole Ashley 6f42acc01f AP_SerialManager: Add serial protocol for i-BUS telemetry 2024-08-07 14:01:44 +10:00
Nicole Ashley 8040e7c502 AP_IBus_Telem: Initial implementation
Allows telemetry data to be sent to receivers that support the
i-BUS protocol (FlySky and Turnigy).
2024-08-07 14:01:44 +10:00
Peter Barker 70b23733ac AR_Motors: make AP_Motors::PWMType enum class
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-06 18:15:35 +10:00
Peter Barker 70a1bc7606 AP_Motors: make AP_Motors::PWMType enum class
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-06 18:15:35 +10:00
Peter Barker a211b66472 AP_BLHeli: make AP_Motors::PWMType enum class
Co-authored-by: muramura <ma2maru@gmail.com>
2024-08-06 18:15:35 +10:00
Leonard Hall a4a9113cde AC_Autotune: Fix bug introduced in #27370 2024-08-06 17:45:04 +10:00
George Zogopoulos 9df4796b70 AP_Scripting: Typo fixes 2024-08-06 14:03:27 +10:00
Peter Barker bc80358e9b AP_Camera: rely on AHRS for position, not GPS
our location may not be coming from a GPS
2024-08-06 12:11:30 +10:00
Peter Barker b65a5a904c AP_SerialManager: tweak error message 2024-08-06 11:36:33 +10:00
Pradeep CK 0e53eb74df AP_ESC_Telem: addition of ESC extended status message
- Conditional compilation definition : AP_EXTENDED_ESC_TELEM_ENABLE
 - ESCX log structure
 - Update functionalities for ESCX status message
 - ESCX DroneCAN callback
2024-08-06 10:57:36 +10:00
Pradeep CK c7216c05b8 AP_DroneCAN: addition of ESC extended status message
- Conditional compilation definition : AP_EXTENDED_ESC_TELEM_ENABLE
 - ESCX log structure
 - Update functionalities for ESCX status message
 - ESCX DroneCAN callback
2024-08-06 10:57:36 +10:00
Peter Barker 516c2a853f hwdef: add named Pixhack-v3 board
allows for building this on the custom build server
2024-08-06 10:29:05 +10:00
Iampete1 c271771a1e AP_ICEngine: stop engine in E-Stop 2024-08-06 09:56:44 +10:00
Peter Barker cbdbbf436c AP_SerialManager: add warning iffrsky already configured 2024-08-06 09:46:56 +10:00
Peter Barker 6151b84c86 AP_LTM_Telem: disable LTM telemetry by default
we have a custom build server if this is required
2024-08-06 09:30:49 +10:00
Peter Barker cb57beaf8f AP_Hott_Telem: disable Hott telemetry by default
we now have a custom build server
2024-08-06 09:30:49 +10:00
YI-BOYANG 559a6e8f65 AP_HAL_ChibiOS: hwdef for GEPRCF745BTHD 2024-08-06 09:12:23 +10:00
Thomas Watson a164abaafb AP_Scripting: add REPL applet
Implements a reasonably comfortable REPL accessible over serial entirely
as a loadable script.

Also accessible over MAVLink using QGroundControl's MAVLink Console and
the new mavport module.
2024-08-06 09:08:04 +10:00
Thomas Watson 87d2b017aa AP_Scripting: add mavport module
Abstracts the MAVLink SERIAL_CONTROL message to be usable as a Lua port,
in particular the DEV_SHELL device supported by QGroundControl's MAVLink
Console.
2024-08-06 09:08:04 +10:00
Thomas Watson 5ec3313c31 AP_HAL: remove never-overridden get_shell_stream function
The only caller is now gone and nobody ever overrode it to do return
more than nullptr.
2024-08-06 09:08:04 +10:00
Thomas Watson abae008250 GCS_MAVLink: remove vestigial SERIAL_CONTROL_DEV_SHELL support
The HAL always returns nullptr so the function always returns, which is
handled already by the default.
2024-08-06 09:08:04 +10:00
Peter Barker 923b5185c6 AP_HAL_ChibiOS: rename OFFBOARD_GUIDED to AP_PLANE_OFFBOARD_GUIDED_SLEW_ENABLED
and remove comparison vs ENABLED
2024-08-05 10:20:14 +10:00
Peter Barker ba2bec07fa AP_HAL_ChibiOS: add env option to omit hwdef.dat from romfs 2024-08-05 10:20:14 +10:00
Andrew Tridgell 9543eecf23 HAL_ChibiOS: fixed AP_FILESYSTEM_ROMFS_ENABLED for peripherals with defaults.parm
now that defaults are in ROMFS we must enable
AP_FILESYSTEM_ROMFS_ENABLED
2024-08-04 17:36:31 +10:00
Andrew Tridgell 7bdb8d770d SRV_Channel: added AM32 to the SERVO_DSHOT_ESC param docs
setting 3 works well with AM32
2024-08-04 07:31:22 +10:00
Andrew Tridgell d48f9ef12c AP_Scripting: added example copter_deploy.lua 2024-08-03 14:29:51 +10:00
Andrew Tridgell ebad1631d7 AP_Scripting: added arm_force() and baro get_altitude_difference() 2024-08-03 14:29:51 +10:00
Andrew Tridgell 6a1d09959b AP_Arming: added arm_force() for scripting 2024-08-03 14:29:51 +10:00
EternAlmox 2ad7177a39 AP_HAL_ChibiOS: added MFT-SEMA100 2024-08-02 18:40:59 +10:00
Peter Barker bc1c305629 AP_HAL: default SITL and Linux to have 4MB of "flash" 2024-08-02 16:29:57 +10:00
Peter Barker 894b99fce5 AP_HAL: remove unused HAL_MINIMIZE_FEATURES define 2024-08-02 16:29:57 +10:00
Peter Barker 9049aeaff6 GCS_MAVLink: accept mavlink standard force arm/disarm value for forced arming
the mavlink standard specifies just one value to do either arm or disarm.  Conform to that standard
2024-08-02 16:29:13 +10:00
DisCoLabIITK e929cc21b1 AP_CustomControl: Update README.md
Adding step for changes that need to be done in the AC_CustomControl_config.h file to prevent error while compilation.
2024-08-01 10:23:14 +10:00
Pierre Kancir d9eabcf411 AP_Vehicle: fix compile when AP_EXTERNAL_CONTROL_ENABLED disabled 2024-08-01 10:00:07 +10:00
Henry Wurzburg e4fc9b0b58 AC_Fence:Add AUTOENABLE deprecation warning
Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>
2024-08-01 09:39:41 +10:00
Peter Barker 90ee339806 AC_PID: rename pid setters to include set_ in the names 2024-07-31 18:43:42 +10:00
Peter Barker 7f4074a22c AC_AutoTune: rename pid setters to include set_ in the names 2024-07-31 18:43:42 +10:00
Peter Barker fae3b39b15 AC_AttitudeControl: rename pid setters to include set_ in the names 2024-07-31 18:43:42 +10:00
Iampete1 21ad679b61 AP_HAL_ChibiOS: GPIO: read: support virtual read of IOMCU pins 2024-07-31 18:13:01 +10:00
Iampete1 60d579dc88 AP_HAL_ChibiOS: GPIO: Check IOMCU after local pins for speed 2024-07-31 18:13:01 +10:00
Iampete1 624ab00c3e AP_HAL_ChibiOS: RCOut banner: check for GPIO on IOMCU 2024-07-31 18:13:01 +10:00
Iampete1 98c5eff7f0 AP_IOMCU: add GPIO mask getter and GPIO virtual read 2024-07-31 18:13:01 +10:00
Andy Piper b9bde4c488 AP_HAL_ChibiOS: add servo outputs as motors to FoxeerF405v2 2024-07-31 17:27:44 +10:00
Henry Wurzburg 847b8eab25 HWDEF:fix CUAV-7-Nano default batt monitor 2024-07-31 17:13:09 +10:00
Henry Wurzburg 9b041be8a1 AC_Fence: correct prearm message 2024-07-31 17:01:07 +10:00
Eric Katzfey 9ef76de0c9 AP_HAL_QURT: Added support for dual mavlink streams 2024-07-31 10:00:35 +10:00
Peter Barker d7caf1e6b5 AP_Math: remove method operator
remove the metho operator from the class.

This means this will no longer work:

Quaternion q{0,1,2,3};
q(5,6,7,8);

.... that used to set the quaternion componets, but is an odd / atypical syntax to use
2024-07-31 08:54:37 +10:00
Peter Barker cac2c63e72 AC_PID: remove method operator
remove the metho operator from the class.

This means this will no longer work:

Quaternion q{0,1,2,3};
q(5,6,7,8);

.... that used to set the quaternion componets, but is an odd / atypical syntax to use
2024-07-31 08:54:37 +10:00
Hayden Donald 52ba8e8513 AP_Scripting: Change serial depends HAL_GCS to AP_SERIALMANAGER
Serial bindings were dependant on HAL_GCS_ENABLED but this is not ideal, it should be dependant on AP_SERIALMANAGER_ENABLED so that serial can function without GCS
2024-07-31 08:27:34 +10:00
“Jane_ZeroOne” d43dd5227a AP_HAL_ChibiOS: add ZeroOneX6 2024-07-30 20:07:31 +10:00
Iampete1 26c51a8002 AP_TemperatureSensor: add logging option to only log sensors with no source 2024-07-30 11:07:17 +10:00
Iampete1 600d9eb7a8 AP_BattMonitor: Sum: report average temperature 2024-07-30 11:00:49 +10:00
Iampete1 45647718cb AP_BattMonitor: ESC: integrate consumed mah if not provided by ESC 2024-07-30 10:59:17 +10:00
Thomas Watson dc4d1bacdd AP_Scripting: adjust string metatable setup to fix sandbox integrity
In Lua, strings are the only type that come with a default metatable.
The metatable must be shared by all string objects, and it is set to be
the `string` library table each time that library is opened. In
Ardupilot's scripting engine, the last script to load then has access to
the string metatable as the library is opened fresh for each script, as
its `string` library will have been set to the metatable.

Therefore, if two scripts are loaded, A first and B second, and script B
executes e.g. `string.byte = "haha"`, then `string.byte()` and
`s:byte()` for script B are broken. Because the metatable is shared,
this also breaks `s:byte()` for script A, which violates the integrity
of the sandbox.

Fix the issue by disabling the metatable setup functionality when the
string libary is opened, then manually opening an additional copy of the
library (which won't be given to any script) and setting it as the
string metatable during intialization.

This will break any script that modifies the string metatable for
constructive purposes, but such a script could have been broken if it
weren't the only script running anyway.
2024-07-30 10:54:00 +10:00
Peter Barker 95281e5c17 hwdef: turn monior thread back on on some boards
most of these boards probably don't need it, but to make a PR no-binary-output...
2024-07-30 10:52:36 +10:00
Peter Barker 90b2a2acaa hwdef: change HAL_NO_MONITOR_THREAD out for HAL_MONITOR_THREAD_ENABLED
... and use a default value for peripherals
2024-07-30 10:52:36 +10:00
Thomas Watson 3a834e83c7 AP_Scripting: reference script environment directly
Referencing the original function to run is of questionable value and
the only user uses it to grab the script environent from the upvalues.

Instead, use a reference to the script environment table directly.
2024-07-30 10:33:56 +10:00
Thomas Watson 15255a36e4 AP_Scripting: reference function to run separately
Some bits of the code in the require machinery use the `lua_ref` to
access the script environment. However, this can change after the script
is rescheduled and it returns an arbitrary function to run next.

Resolve this by introducing `run_ref` which is specifically a reference
to the function to run next. `lua_ref` is preserved for the script
lifetime.
2024-07-30 10:33:56 +10:00
Thomas Watson da006d427d AP_Scripting: add test for require() after rescheduling
It can end up broken due to incorrect assumptions about the executed
function's upvalues, which might change after rescheduling.
2024-07-30 10:33:56 +10:00
Peter Barker be377da6a4 GCS_MAVLink: add build option to not send RC_CHANNELS_RAW
we keep this around in case we break old OSD setups
2024-07-30 10:29:58 +10:00
Peter Barker 6f5ea5a5e9 RC_Channel: rework duplicate-rc-options check to use a Bitmask
just for the memory saving.

Co-authored-by: muramura <ma2maru@gmail.com>
2024-07-30 10:28:42 +10:00
Peter Barker 93704c573c SITL: add documentation for SIM_ENGINE_FAIL and SIM_ENGINE_MUL 2024-07-30 09:21:26 +09:00
Peter Barker 9397ece55a AC_AutoTune: make axis-type enum-class
Co-authored-by: Andrew Tridgell <andrew@tridgell.net>
2024-07-30 10:20:26 +10:00
Peter Barker f3766b831a AP_HAL_ChibiOS: make include file mistakes nicer to interpret 2024-07-30 09:57:01 +10:00
Thomas Watson 6acfc98cf4 AP_Scripting: factor out ap_object checker
Reduces flash usage.

Saves ~160B.
2024-07-30 09:55:25 +10:00
Thomas Watson 212256731f AP_Scripting: improve object allocation efficiency
Make new_X return the new object instead of having to grab it to
configure it.

Saves ~1.3K.
2024-07-30 09:55:25 +10:00
Thomas Watson 3e05cd9729 AP_Scripting: factor out field access argument error
Saves ~830B.
2024-07-30 09:55:25 +10:00
Thomas Watson 575ed6224f AP_Scripting: improve binding index function efficiency
Move the string checks into the load functions to avoid duplicating it
for each binding.

Also sync up the return types to avoid an unnecessary conversion.

Saves ~1.5K.
2024-07-30 09:55:25 +10:00
Thomas Watson e66d2a1495 AP_Scripting: remove redundant memsets
Matches current generator behavior.
2024-07-30 09:55:25 +10:00
Thomas Watson 837b17e82e AP_Scripting: more intelligently manage Lua stack
The Lua stack is guaranteed to have at least LUA_MINSTACK (default 20)
slots upon entry to C. Check to see if we might need more than that
minimum and only in that case call the function to check and resize the
stack. In virtually all cases the check can then be optimized away.

Additionally remove the redundant "Out of stack" message. Lua already
says "stack overflow" and a null message is valid.

Saves ~330B.
2024-07-30 09:55:25 +10:00
Thomas Watson 7212e35fb0 AP_Scripting: slightly improve codegen
Get singleton pointer closer to where it is used.

Saves ~170B.
2024-07-30 09:55:25 +10:00
Thomas Watson 60a9f1722c AP_DroneCAN: DNA_Server: unify bitmask handling
Put documentation with each bitmask and use the object directly. Node ID
range checks can be removed as the bitmask itself checks and we don't
expect to trip them.

Substantially cleans up the code.
2024-07-30 09:49:43 +10:00
Thomas Watson 56593574a9 AP_DroneCAN: DNA_Server: miscellaneous cleanup 2024-07-30 09:49:43 +10:00
Thomas Watson 5e0bb99dbb AP_DroneCAN: DNA_Server: fix handling of empty entry
Replaces the check for a CRC of 0 with a check that the hwid is 0.
Substantially reduces 1/256 chance that a particular node ID couldn't be
stored.
2024-07-30 09:49:43 +10:00
Thomas Watson 9aeab7b424 AP_DroneCAN: DNA_Server: use 0 as unknown ID
Slightly reduces flash usage and probably is clearer.
2024-07-30 09:49:43 +10:00
Thomas Watson 8d57533f1c AP_DroneCAN: DNA_Server: fix cases involving use of invalid node IDs 2024-07-30 09:49:43 +10:00
Thomas Watson a9317b1a07 AP_DroneCAN: correct and validate allowed NODE range
Node IDs >= 128 don't exist, and IDs 126 and 127 are "reserved for
network maintenance tools" according to the spec.
2024-07-30 09:49:43 +10:00
Thomas Watson 485a9387b1 AP_DroneCAN: DNA_Server: clean up storage failure handling
The StorageManager read_block/write_block methods only return failure if
an out of bounds access is performed. Assert statically that this does
not happen.

Also remove the now-impossible failed to add node state.
2024-07-30 09:49:43 +10:00
Thomas Watson cd8519321b AP_DroneCAN: DNA_Server: search for valid nodes after magic check
Ensures the occupation mask doesn't get populated with junk if the magic
is not valid.
2024-07-30 09:49:43 +10:00
Thomas Watson c1f59186fa AP_DroneCAN: DNA_Server: make reset method private 2024-07-30 09:49:43 +10:00
Ian Burwell 6b4e11090c AP_Scripting: Add BQ40Z shutdown example
This example intercepts PREFLIGHT_REBOOT_SHUTDOWN COMMAND_LONG's and if
param1==2, it shuts down the BQ40Z smart battery BMS. Otherwise it
passes through the COMMAND_LONG as a COMMAND_INT (this required updating
the gcs:run_command_int to return a MAV_RESULT rather than a bool).
2024-07-30 09:40:10 +10:00
Ian Burwell 9d34fa2a5e AP_Scripting: Add I2C transfer bindings
This adds bindings for an I2CDevice's transfer() function, an example,
and removes the nil return hint from the get_device() docs as it never
actually returns nil.
2024-07-30 09:40:10 +10:00
Iampete1 838fbc2b3b AP_Param: Fix `ENABLE_DEBUG` enabled error with no embedded param 2024-07-30 08:51:09 +10:00
Bob Long 64fc60ce32 AP_HAL_SITL: initialize rcout safety state
This allows BRD_SAFETY_DEFLT=1 to work correctly for SITL.
2024-07-30 08:44:31 +10:00
BLash d7ecf5fbc5 AP_ExternalAHRS_VectorNav: Consolidate EAH3 definition to single method
Resolve SITL failures due to multiply defined logger message by pulling the call to a single method
2024-07-29 15:52:29 +10:00
BLash 1d1bb5724e AP_ExternalAHRS_VectorNav: Address review comments
Remove unnecessary header
Switch parameters to default initialization
Change pointer casting to prevent a const_cast, and remove doubled sync byte when echoing ASCII messages
Fix Valgrind report by preventing use of nmea_printf on buffers which may not be null-terminated
2024-07-29 15:52:29 +10:00
BLash 50980ee03e AP_ExternalAHRS_VectorNav: Update SIM to match new message definitions
Redefine messages to 3 INS packets, and send as appropriate
Resolve SITL failures due to too-long logger message headers
2024-07-29 15:52:29 +10:00
BLash d4ca5fe868 AP_ExternalAHRS_VectorNav: Split IMU and EKF message
In AHRS Mode, split the single message to an IMU packet and an AHRS packet; in EKF Mode, split the two messages into an IMU message, an EKF packet, and a GNSS packet.
Simplify message header definition to consolidate and eliminate the need for static asserts
Update healthy logic and use to represent new packet structure
Replace EAH3 message with messages per-packet
Add Ypr as configured output in the EKF message
2024-07-29 15:52:29 +10:00
George Zogopoulos e227187e72 AP_TECS: Converted parameter TKOFF_MODE to TKOFF_OPTIONS 2024-07-29 15:50:32 +10:00
George Zogopoulos b163e13964 AP_TECS: Fixes to reset state
These concern the TAKEOFF flight stage and address #27147.

* Logging metadata fixes
* Disabled continuous TECS reset during takeoff
* Fixed bug in reached_speed_takeoff calculation
* Limited SPDWEIGHT=2 to only first part of takeoff climb
* _post_TO_hgt_offset set to constant
* Takeoff I-gain now defaults to 0 and is used
* Use at least TRIM_THROTTLE during the climb
* Updated description of TECS_TKOFF_IGAIN with new behaviour
* Forced max throttle while below TKOFF_LVL_ALT
* Added throttle constraints in no-airspeed mode

Additionally, set_min_throttle() has been created, that allows one to
set the minimum TECS throttle for the next update_pitch_throttle() loop.
Additionally, the throttle limits system has been reworked. TECS will
receive external throttle limits from Plane and will always take them
into account and respect them.
2024-07-29 15:50:32 +10:00