Commit Graph

561 Commits

Author SHA1 Message Date
Peter Barker 527f3d5728 GCS_MAVLink: add infrastructure to handle command longs as command ints 2023-07-12 18:51:07 +10:00
Andrew Tridgell 7fa0de37c3 GCS_MAVLink: added mutex deadlock test code 2023-06-27 10:11:46 +10:00
Peter Barker e3c4d9fd23 GCS_MAVLink: allocate mavlink status and send buffers dynamically
This makes ArduPilot responsible for supplying buffers to the mavlink layer, rather than that layer allocating them based on MAVLINK_COMM_NUM_BUFFERS.

We will want to rename MAVLINK_COMM_NUM_BUFFERS to AP_GCS_MAX_BACKENDS at some stage.
2023-06-21 17:50:31 +10:00
Andrew Tridgell fc904011fb GCS_MAVLink: moved MAV_CMD_AIRFRAME_CONFIGURATION from copter 2023-06-21 17:38:28 +10:00
Andrew Tridgell 1ab278d127 GCS_MAVLink: support EXTERNAL_POSITION_ESTIMATE command_int 2023-06-06 15:19:12 +10:00
Peter Barker 92942137fa GCS_MAVLink: remove use of AP_Mount.h from headers 2023-05-29 09:08:55 +10:00
davidsastresas e4428f538d GCS_MAVLink: support gimbal_manager_status and do_gimbal_manager_configure
Co-authored-by: Randy Mackay <rmackay9@yahoo.com>
2023-05-17 12:38:49 +10:00
Peter Barker d46d2189ec GCS_MAVLink: replace HAVE_FILESYSTEM_SUPPORT with backend defines 2023-05-17 09:40:39 +10:00
Peter Barker feaed97601 GCS_MAVLink: deprecate handling of MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES
AUTOPILOT_VERSION - the message this returns - can be requested with MAV_CMD_REQUEST_MESSAGE
2023-04-26 20:34:42 +10:00
Peter Barker d0b96d4cd9 GCS_MAVLink: deprecate handling of AUTOPILOT_VERSION_REQUEST
This can be done equivalently with MAV_CMD_REQUEST_MESSAGE
2023-04-26 20:34:42 +10:00
Randy Mackay bdb3618de7 GCS_MAVLink: support requests for gimbal-manager-information 2023-04-25 15:07:35 +10:00
Michael du Breuil a9d696752d GCS_MAVLink: Factor accel cal work out to INS library 2023-04-21 21:33:16 +10:00
Peter Barker 15ec9f6f82 GCS_MAVLink: allow Copter to emit MISSION_STATE_PAUSED when paused in auto 2023-04-21 09:49:55 +10:00
Peter Barker 510ed4cf2f GCS_MAVLink: add support for more MISSION_CURRENT fields
- a state so someone can see if the mission is complete
 - total number of waypoints
2023-04-21 09:49:55 +10:00
Peter Barker 068443718e GCS_MAVLink: deprecate use of MISSION_SET_CURRENT message
The mavlink command MAV_CMD_DO_SET_MISSION_CURRENT has been in place since January 2019 and is superior to this.
2023-04-18 10:24:26 +10:00
Tom Pittenger a443fd97a6 GCS_MAVLink: remove preflight_can
It was only using CANTester to test KDECAN enumeration which was removed
2023-04-17 11:52:52 +10:00
Peter Barker f8c2ceced7 GCS_MAVLink: add support for MAV_CMD_DO_SET_ROI_NONE 2023-03-07 08:06:01 +09:00
Peter Barker adb364cd98 GCS_MAVLink: have GCS_MAVLINK::send_message(id, buffer) check size 2023-02-25 17:41:44 +11:00
Peter Barker 035f49c248 GCS_MAVLink: add method to get link (not just channel number) for mavtype and compid 2023-02-24 09:21:09 +11:00
Stephen Dade a39a933cbd GCS_Mavlink: Move high_latency_link_enabled to GCS 2023-02-21 22:32:32 +11:00
Peter Barker 8b38cc671a GCS_MAVLink: add in-progress to formatsdcard process 2023-02-21 17:07:41 +11:00
Peter Barker 11ec22900b GCS_MAVLink: add support for mavlink in-progress message 2023-02-21 17:07:41 +11:00
Peter Barker 8259f3f870 GCS_MAVLink: add and use AP_ADVANCEDFAILSAFE_ENABLED 2023-02-08 19:00:13 +11:00
Peter Barker 80b781634d GCS_MAVLink: tidy check of valid channel in get_vfr_hud_throttle
do a nullptr check rather than checking against num_gcs
2023-02-07 10:07:39 +11:00
Peter Barker 14d1a075db GCS_MAVLink: remove internal error from chan(), correct bounds check
It's been argued that callers should always be checking for nullptr anyway.  This is the method which is best qualified to work out whether the channel actually corresponds to a link, so it makes sense for the check to be here
2023-02-07 10:07:39 +11:00
Peter Barker c871aaefb7 GCS_MAVLink: avoid using struct Location
clang reports this could be a problem when compiling under some EABIs.  Remove it from most places as it is just noise, replace with class where we want to avoid including Location.h
2023-02-04 22:51:54 +11:00
Peter Barker 263216669d GCS_MAVLink: add warning about providing full-sized buffer to send_parameter_value 2023-02-02 11:42:29 +11:00
Peter Barker 1224cde392 GCS_MAVLink: add documentation for logged MAV stats Flags 2023-01-25 19:50:34 +11:00
Andrew Tridgell 57ee3a4e02 GCS_MAVLink: send FTP replies directly from the FTP thread
this saves over 700 bytes of memory while also making ftp faster
2023-01-08 15:11:32 +11:00
Andrew Tridgell b80dca38ff GCS_MAVLINK: added check_payload_size() method
this saves flash by moving common code to cpp
2023-01-06 22:50:42 +11:00
Peter Barker 70a5d8be76 GCS_MAVLink: remove unnecessary include of OpticalFlow header in GCS.h
introduces unnecessary dependencies
2022-12-15 21:07:31 +11:00
Peter Barker 4e61de7083 GCS_MAVLink: code-generate chan-fetching methods
A recent PR had to change every single one of these methods, which was kind of unfortunate.

So generate the methods using a #define so the duplication happens at preprocessor-time.
2022-12-15 08:31:54 +11:00
Peter Barker 3bd62c0e68 GCS_MAVLink: factor out handle_manual_control_axes 2022-11-23 19:33:46 +11:00
Peter Barker 850d47752f GCS_MAVLink: allow FRSky to be compiled out 2022-11-15 18:44:45 +11:00
Peter Barker 06d90b1a1e GCS_MAVLink: include cleanups 2022-11-08 09:49:19 +11:00
Peter Barker 65a92a481a GCS_MAVLink: tidy AP_SerialManager.h includes 2022-11-08 09:49:19 +11:00
Peter Barker 4f0d301edb GCS_MAVLink: move defaulting of HAL_HIGH_LATENCY2_ENABLED to minimize_features.inc 2022-10-25 10:10:44 +11:00
Andrew Tridgell 0858eb0dba GCS_MAVLink: send HYGROMETER_SENSOR message if data available 2022-10-19 13:17:30 +11:00
Peter Barker f75f68c2f1 GCS_MAVLink: add AP_MAVLINK_BATTERY2_ENABLED define
on by default but can be turned off in next stable
2022-10-18 11:12:49 +11:00
Peter Barker 6c3f9f9778 GCS_MAVLink: fix set-default-rate of a message we don't send by default
this fixes a problem where a GCS must know that a message isn't sent by default if they want to set it back to its default rate
2022-10-18 10:11:00 +11:00
Peter Barker 0f359c6a4e GCS_MAVLink: remove individual static members for fence, mission and rally 2022-10-04 11:17:35 +11:00
Peter Barker 3b3497eba0 GCS_MAVLink: move definition of HAL_GCS_ENABLED to GCS_config.h 2022-09-27 09:26:45 +10:00
Peter Barker 805b2921ed GCS_MAVLink: fold AP_Filesystem_Available.h into AP_Filesystem_config.h 2022-09-15 10:53:02 +10:00
Peter Barker c8a1fff8ae GCS_MAVLink: populate sysid/compid in reboot ACK 2022-09-14 20:16:38 +10:00
olliw42 c034f8a099 GCS_MAVLink: add find_by_mavtype_and_compid 2022-09-12 08:44:38 +09:00
Michael du Breuil 5282dba42a GCS_MAVLink: Rate limit blocking accel calibrations
This allows us to drop any queued commands that may have arrived while
we were calibrating. Rather then entering a second and unexpected
calibration.
2022-09-09 08:52:14 +10:00
Michael du Breuil ff94ef1c60 GCS_MAVLink: Check for mission space before sending items 2022-09-07 17:52:23 +10:00
Randy Mackay c8996c04e1 GCS_MAVLink: replace send-mount-status with send-gimbal-device-attitude-status 2022-08-15 20:29:25 -04:00
Roel Schiphorst 3bd792295c GCS_MAVLINK: add OpenDroneID messages 2022-08-09 14:37:08 +10:00
Iampete1 31bc6d9ec4 GCS_MAVLink: change AC_FENCE to AP_FENCE_ENABLED 2022-07-27 19:04:56 +10:00
Iampete1 5fa29eb01a GCS_MAVLink: fix complation without fence 2022-07-27 19:04:56 +10:00
Peter Barker cbd591f2ba GCS_MAVLink: save some bytes by removing empty methods based on #ifs 2022-07-22 13:49:51 +10:00
Peter Barker ba2b7b8014 GCS_MAVLink: remove mavlink-specific methods from AP_SerialManager 2022-07-13 18:32:35 +10:00
Peter Barker 38119e17c7 GCS_MAVLink: correct gcs_out_of_space_to_send methodname
the "_count" is incorrect given the method which this calles on the link object
2022-07-12 11:10:53 +10:00
Peter Barker 5f095304cf GCS_MAVLink: add AP_LTM_TELEM_ENABLED 2022-06-28 20:19:41 +10:00
Randy Mackay f83b4cdb40 GCS_MAVLink: support sending AUTOPILOT_STATE_FOR_GIMBAL_DEVICE 2022-06-15 09:07:14 +09:00
Randy Mackay 3ac5ad8e33 GCS_MAVLink: remove unused send_gimbal_report 2022-06-07 09:27:47 +10:00
Stephen Dade 1344a0f41a GCS_MAVLink: Add support for High Latency MAVLink protocol 2022-03-03 14:56:15 +11:00
Peter Barker 7638cbf001 GCS_MAVLink: include cleanups 2022-03-01 11:21:33 +11:00
Andrew Tridgell ba502b462f GCS_MAVLINK: support CAN_FRAME and MAV_CMD_CAN_FORWARD 2022-02-12 16:36:05 +11:00
Peter Barker 29a469432e GCS_MAVLink: send deprecated message warning for MAVLINK_MSG_ID_SET_HOME_POSITION 2022-02-10 12:13:43 +11:00
Peter Barker dffec9325e GCS_MAVLink: create and use location_from_command_t 2022-02-09 09:15:11 +11:00
Peter Barker e9358ff491 GCS_MAVLink: provide default implemenation of handle_change_alt_request
The TODO items to actually implement these are almost 6 years old.
Since then these methods have been burning space.

This doesn't even make sense for several vehicles, so a default
implementation which does nothing seems OK.
2022-02-08 10:59:13 +11:00
Joshua Henderson f3cac9e1aa GCS_MAVLink: add send_attitude_target 2022-02-07 08:24:35 +09:00
Josh Henderson 1200f25e05 GCS_MAVLINK: move high_latency_air_temperature up 2022-01-19 18:21:32 +11:00
Peter Barker 948e00a072 GCS_MAVLink: make send_system_time const
needed when sending from const functions
2022-01-06 09:14:33 +11:00
Peter Barker d2693e4276 GCS_MAVLink: create and use AP_OPTICALFLOW_ENABLED
Including a define for each backend.
2021-12-29 18:12:03 +11:00
Andrew Tridgell 20dd667fdc GCS_MAVLink: support ODOMETRY message for VIO
used by VOXL
2021-12-27 12:32:41 +11:00
Shiv Tyagi 339a07b8d3 AP_Devo_Telem: compile out devo telemetry
Devo telemetry is one of the most rarely used features (almost never used since added) we should compile it out from our code
2021-12-01 19:16:44 +11:00
m c729fc7796 AP_Mission: Decode MAV_CMD_DO_PAUSE_CONTINUE commands 2021-11-25 08:18:27 +09:00
nicholas-inocencio 9ca681c76d GCS_MAVLink: integrate new ADSB Ping200X/MissionPlanner new mavlink config and status commands 2021-10-26 16:53:00 -07:00
Tom Pittenger 12192f60e3 GCS_MAVLink: move ADSB mavlink handling from vehicles to common library 2021-10-14 19:55:27 -07:00
Peter Barker 07aa00f2b4 GCS_MAVLink: tidy sending of high-latency message 2021-10-05 10:20:44 +11:00
Peter Barker 3f37a21aaf GCS_MAVLink: set message intervals from config files 2021-09-30 10:31:03 +10:00
Shiv Tyagi 5f94986af1 GCS_Common : Mavlink wrap when battery percentage is above 100
When calculated battery percentage is above 100 we wrap it to INT8_MAX
2021-09-28 09:54:55 +10:00
Peter Barker 9f6b9c7519 GCS_MAVLink: move from HAL_NO_GCS to HAL_GCS_ENABLED 2021-09-22 21:37:00 +10:00
Andrew Tridgell ae615de4ce GCS_MAVLink: added logging of NAMED_VALUE_FLOAT
this is useful when running sensors on a companion computer and
wanting values logged in main ArduPilot log.
2021-09-01 17:52:48 +10:00
olliw42 bacfe82c66 GCS_MAVLINK: add receiver_rssi() method, and use it 2021-08-26 09:44:59 +10:00
Andrew Tridgell 5c3056e50d GCS_MAVLink: added MCU_STATUS message 2021-08-25 07:11:31 +10:00
Randy Mackay 2fba31332b GCS_MAVLink: support MAV_CMD_SET_EKF_SOURCE_SET command
this allows external systems to set the active EKF source set
2021-08-19 12:11:08 +10:00
Peter Barker a91d30369e GCS_MAVLink: stop sending SENSOR_OFFSETS
Only works for first compass instance.

We have all of these in parameters anyway.
2021-08-18 18:06:24 +10:00
Peter Barker 784c56f6d0 GCS_MVALink: remove virtual from send_simstate
No longer overridden by anyone
2021-08-10 09:48:34 +10:00
bugobliterator 3d03979b16 GCS_MAVLink: add support for mavlink out on AP_Periph 2021-07-26 13:45:43 +10:00
Stephen Dade 035f65fe03 GCS_MAVLink: Add support for HIGH_LATENCY2 messages 2021-07-07 17:10:05 +10:00
Randy Mackay 3900a4f14a GCS_MAVLink: send water depth and temp 2021-06-30 12:05:09 +09:00
Peter Barker 84603e2c85 GCS_MAVLink: add support for MAV_CMD_RUN_PREARM_CHECKS 2021-06-21 09:41:17 +10:00
Peter Barker a23999d0f0 GCS_MAVLink: remove HIL support 2021-06-15 09:47:31 +10:00
Peter Barker c43965f32e GCS_MAVLink: correct decimation of SENSOR_STATUS message
static infers shared between all backends
2021-06-15 07:07:39 +10:00
Andrew Tridgell 96577b47f0 GCS_MAVLink: removed perf counters 2021-06-07 14:29:27 +10:00
Peter Barker 09f4961a63 GCS_MAVLink: increase statustext queue size to 7 on low-mem boards
... and SITL....

Copter currently spits out so many messages on a banner-send (e.g what
we do when parameters are fetched) that it puses the first sent message
straight out of the queue before it gets a chance to be sent from the
queue.
2021-05-27 12:39:04 +10:00
Andrew Tridgell 8444a3310d GCS_MAVLink: added handle_command_landing_target()
used to allow vehicle handling of time corrected LANDING_TARGET msgs
2021-04-13 17:30:19 +10:00
Peter Barker 9471d8069c GCS_MAVLink: move handling of last-seen-SYSID_MYGCS up to GCS base class 2021-04-07 17:54:21 +10:00
Peter Barker 1a2b960b0d GCS_MAVLink: prune old statustexts from queue 2021-04-06 09:10:43 +10:00
Peter Barker 4027ed6070 GCS_MAVLink: make servicing statustext more efficient
We should only need to do a single PAYLOAD_SIZE check for each mavlink
backend now.

 - stop iterating over all channels, only do instantiated mavlink
backends
 - if we don't have space for a statustext on a channel, break
immediately and don't do remaining texts
 - resposibility is now on the GCS_MAVLINK backend for sending texts
   - that's a timing change

 - only iterate over entries actually in the queue rather than maximum
queue size
   - it's likely to be the full length anyway as we don't expire things
from the queue and most setups will have full channels
2021-04-06 09:10:43 +10:00
Peter Barker 2d61ded1f3 GCS_MAVLink: add option to execute auxillary functions via mavlink 2021-03-31 11:36:09 +11:00
Peter Barker 5123b05b2b GCS_MAVLink: add support for ATTITUDE_QUATERNION 2021-03-13 09:44:12 +11:00
Peter Barker e3de88d1d4 GCS_MAVLink: handle MAV_CMD_DO_SET_MISSION_CURRENT 2021-03-04 11:59:33 +11:00
Peter Barker cfe9dc32d1 GCS_MAVLink: only send distance_sensor messages if valid data seen
In the case you only have a forward-pointing LIDAR we'd send messages
for each of the other orientations from proximty's horizontal-distances
array, chewing up bandwidth and processing time.
2021-02-23 10:02:47 +09:00
Peter Barker 1afa0a7ff2 GCS_MAVLink: remove unused member
and a bogus comment
2021-02-20 21:48:25 +11:00
Peter Barker eefcc92f24 GCS_MAVLink: take MAV_CMD_DO_SPRAYER as a mavlink command 2021-02-16 22:36:43 +11:00