Commit Graph

1585 Commits

Author SHA1 Message Date
Andrew Tridgell 62b2fdb8f8 GCS_MAVLink: update to new read_locked() API 2023-07-12 17:06:02 +10:00
Max-001 afc019e1ea EFI: added efi MavLink class 2023-07-11 12:32:19 +10:00
Iampete1 352f721626 GCS_MAVLink: allow scripting to block commands 2023-07-04 10:20:42 +10:00
Andrew Tridgell 7fa0de37c3 GCS_MAVLink: added mutex deadlock test code 2023-06-27 10:11:46 +10:00
Peter Barker a2ecaf737d GCS_MAVLink: correct define around use of ins singleton 2023-06-21 22:28:48 +10:00
Peter Barker ed96bb6dd4 GCS_MAVLink: rely on HAL_LOGGING_ENABLED for sending logs 2023-06-21 22:28:48 +10:00
Peter Barker a6a691cce3 GCS_MAVLink: add and use AP_GPS_ENABLED 2023-06-21 22:28:48 +10:00
Peter Barker 61affcf4e4 GCS_MAVLink: add and use AP_BARO_ENABLED 2023-06-21 22:28:48 +10:00
Peter Barker fc55bf0bc4 GCS_MAVLink: add and use AP_COMPASS_ENABLED 2023-06-21 22:28:48 +10:00
Peter Barker 42e42dc991 GCS_MAVLink: add and use AP_AHRS_ENABLED 2023-06-21 22:28:48 +10:00
Peter Barker 07bf38d7f8 GCS_MAVLink: create and use AP_BATTERY_ENABLED
simply as a way to get HAL_PERIPH_ENABLE_BATTERY out of the main code
2023-06-21 22:28:48 +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
Peter Barker 86d09d9096 GCS_MAVLink: add option to disable relay and servorelay libraries 2023-06-20 09:36:39 +10:00
bugobliterator e30cc65f14 GCS_MAVLink: move sysid_my_gcs to be public 2023-06-17 14:49:22 +10:00
Randy Mackay 02fdb8272f GCS_MAVLink: support camera info and settings 2023-06-16 14:30:46 +10:00
davidsastresas e1e2d68815 GCS_Common: handle CMD_DO_SET_ROI_NONE for command int packets 2023-06-08 21:12:50 +10:00
Peter Barker 312254f761 GCS_MAVLink: correct detection of feature AP_FILESYSTEM_FORMAT_ENABLED 2023-06-08 08:55:26 +10:00
Andrew Tridgell 1ab278d127 GCS_MAVLink: support EXTERNAL_POSITION_ESTIMATE command_int 2023-06-06 15:19:12 +10:00
Peter Barker 4ee58c4496 GCS_MAVLink: remove more compass cal if it is not enabled 2023-05-30 23:05:29 +10:00
Peter Barker 92942137fa GCS_MAVLink: remove use of AP_Mount.h from headers 2023-05-29 09:08:55 +10:00
bugobliterator 9ce37e5f98 GCS_MAVLink: scripting sends mavlink messages directly 2023-05-24 19:03:28 +10:00
Michael du Breuil a934c90e69 GCS_MAVLink: Route MAVLink data to/from scripting 2023-05-24 19:03:28 +10:00
Asif Khan 9ef3241949 GCS_MAVLink: add GIMBAL_MANAGER_SET_PITCHYAW message support 2023-05-24 12:36:37 +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 29d6c51f43 SITL: stop using mavlink channels for packing messages
precedent was set in the mavlink rangefinder; we don't need to re-use SITL buffers for this
2023-05-16 10:17:56 +10:00
Randy Mackay 858a1e8b40 GCS_MAVLink: pass image tracking messages to AP_Camera 2023-05-08 21:26:35 +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 a657c6ea75 GCS_MAVLink: remove CANTester 2023-04-18 11:43:58 +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
Tom Pittenger 5ef4c8dd09 GCS_MAVLink: move AP_KDECAN to a first-class library 2023-04-17 11:52:52 +10:00
Peter Barker db15803017 GCS_MAVLink: send deprecated message received warning at INFO not WARN 2023-04-15 23:14:33 +10:00
Peter Barker af5f702c36 GCS_MAVLink: add and use defines for all Proximity backends 2023-04-13 07:07:18 +10:00
Andrew Tridgell 2119d6bfc9 GCS_MAVLink: rename more variables, types and defines 2023-04-11 10:31:31 +10:00
Nick Exton 8bd127d630 GCS_MAVLink: Use new Mount clear_roi_target() 2023-04-11 09:11:08 +10:00
Andrew Tridgell ee9b6bad7b GCS_MAVLink: rename AP_UAVCAN to AP_DroneCAN 2023-04-08 07:11:23 +10:00
Randy Mackay ae4d1ae0af GCS_MAVLink: pass camera-information messages to AP_Camera 2023-04-06 20:58:22 +10:00
Asif Khan 91935fc404 AP_Mount:Add GIMBAL_MANAGER_SET_ATTITUDE support 2023-04-04 09:48:40 +10:00
Peter Barker a649dff390 GCS_MAVLink: add and use a "bool read(c)" method to AP_HAL
this is much less likely to not work vs the int16_t equivalent
2023-03-22 17:59:11 +11:00
Peter Barker 67bb7417ec GCS_MAVLink: routing: do not process our own packets locally
returning true from this method means we will process the packets locally.

If that message changes the vehicle state that could be bad.
2023-03-22 09:26:19 +11:00
Randy Mackay a3e3e5fd2d GCS_MAVLink: send mav-cmd-set-camera-zoom to AP_Camera
also send focus and image capture
2023-03-16 07:47:01 +09:00
Randy Mackay a8b9b2742d GCS_MAVLink: move camera command handling to AP_Camera 2023-03-16 07:47:01 +09:00
Peter Barker b55664034f GCS_MAVLink: use GCS_MAVLINK& when routing 2023-03-08 19:30:22 +11:00
Peter Barker f8c2ceced7 GCS_MAVLink: add support for MAV_CMD_DO_SET_ROI_NONE 2023-03-07 08:06:01 +09:00
Andrew Tridgell 6770982a98 GCS_MAVLink: support rename in FTP 2023-03-05 09:42:48 +11:00
Tom Pittenger f666d2ecb3 GCS_MAVLink: constrain battery % to 0-100 2023-03-02 18:07:30 +11: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
Tom Pittenger b5bbcffaac GCS_MAVLink: add GCS handling of DO_JUMP_TAG 2023-02-22 05:33:38 -08: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 ccb56e573a GCS_MAVLink: tidy valid-channel check in set_message_interval
rely on chan returning nullptr on invalid channel
2023-02-07 10:07:39 +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 74978ac577 GCS_MAVLink: add nullptr check in gcs_out_of_space_to_send
If a library were to send on a channel for which we have not allocated a GCS_MAVLINK this could lead to a nullptr dereference.  We do some odd things in uAvionix in terms of which channel to send on, so worth a check.
2023-02-07 10:07:39 +11:00
Peter Barker 26d714e9a9 GCS_MAVLink: tidy valid-channel check in install_alternative_protocol
- stop getting link multiple times
 - rely on chan() returning nullptr rather than explicitly checking 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
Stephen Dade 55f31d628a GCS_MAVLink: Ensure serial tunnel avoids nullptr 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
olliw42 d570f67420 GCS_MAVLink: use bw_in_bytes_per-scond()
avoid division by zero in FTP, and correct wrong calculus in Param which made it ineffective
2023-01-31 17:58:04 +11:00
Peter Barker 1224cde392 GCS_MAVLink: add documentation for logged MAV stats Flags 2023-01-25 19:50:34 +11:00
Andrew Tridgell dfdecc52c4 GCS_MAVLink: fixed FTP terminate session error
this caused ftp downloads to intermittently fail. The cause is the FTP
client may ask for a session terminate and then immediately afterwards
a ftp open. The open would fail as the ftp session was considered
active
2023-01-15 21:57:15 +11:00
Randy Mackay 0d18ee71fa GCS_MAVlink: send_autopilot_state_for_gimbal_device sends ef z-axis rate target 2023-01-09 10:34:34 +09:00
Andrew Tridgell f39f4e35c2 GCS_MAVLink: optimise FTP for available bandwidth
when we don't have hardware flow control don't use more than 1/3 of
available bandwidth for ftp outgoing transfers. This makes parameter
download faster on radios without flow control
2023-01-08 15:11:32 +11:00
Andrew Tridgell 41de8286ef GCS_MAVLink: check for alloc failure of ObjectBuffer 2023-01-08 15:11:32 +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 54a4b7a98b GCS_MAVLink: use chibios_hwdef.py to disable fence on AP_Periph 2023-01-06 12:39:06 +11:00
Peter Barker 959b3049c0 GCS_MAVLink: rename HAL_INS_ENABLED to AP_INERTIALSENSOR_ENABLED 2023-01-03 10:28: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 fbeb9aa3fd GCS_MAVLink: allow forcing reboot via mavlink with parameter 2022-12-06 11:20:08 +11:00
Chobits Tai a73e63b457 GCS_Common: refactor try_send_mission_message 2022-12-01 14:02:58 +11:00
chobits 590d2fcf77 GCS_MAVLink: upload fence when auto mode not complied 2022-11-30 15:14:59 +11:00
Peter Barker 33a319aaf3 GCS_MAVLink: do not run all commands received on private channel
Co-authored-by: dawid.kopec.spectalight@gmail.com

returning true from this function means that we should run the command locally.  We really don't want to do that unless the command (or other targetted message) was actually sent at us!
2022-11-29 10:32:02 +11:00
Randy Mackay 906e8aced3 GCS_MAVLink: correct consumption of ODOMETRY velocity 2022-11-28 17:21:23 +11:00
Randy Mackay a5aa25ef91 GCS_MAVLink: minor format fix 2022-11-28 17:21:23 +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 db2736c297 GCS_MAVLink: correct potential uint underflow in stream slowdown 2022-10-27 08:40:21 +11:00
Peter Barker 77abaef092 GCS_MAVLink: use AP_NOTIFY_MAVLINK_LED_CONTROL_SUPPORT_ENABLED 2022-10-26 21:22:39 +11:00
Peter Barker 9ca19c25a9 GCS_MAVLink: process mavlink play_tune in frontend 2022-10-26 21:22:39 +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
Pierre Kancir 64774a2f92 GCS_MAVLink: fix always 0 division.
7/8 into array range bracket will be integral type, therefore 7/8 is reported as always 0.
2022-10-22 11:11:52 +11:00
Peter Barker 725b7b30ae GCS_MAVLink: remove more methods based on HAL_VISUSALODOM_ENABLED
Many of these mthods are calling another method which has no body when HAL_VISUALODOM is false
2022-10-21 15:03:35 +11:00
Peter Barker 342a5a71a9 GCS_MAVLink: move setting of MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW sensors flags up 2022-10-19 21:00:48 +11:00
Andrew Tridgell 3ef1b1031a GCS_MAVLink: prevent segv in ftp
if the user disables ftp by changing BRD_OPTIONS after ftp has started
then we could dereference a nullptr
2022-10-19 19:09:24 +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