Commit Graph

454 Commits

Author SHA1 Message Date
Andrew Tridgell 0deef76875 GCS_MAVLink: use HAL_MEM_CLASS for status sizes 2019-10-01 09:29:55 +10:00
Peter Barker 6d0c5da84a GCS_MAVLink: allow upload of fence using mission item protocol
GCS_MAVLink: add support for fence inclusion circles

GCS_MAVLink: factor out a transfer_is_complete; start commenting properly
2019-09-28 07:58:48 +09:00
Peter Barker 2f60b230cd GCS_MAVLink: use singleton to get AP_AdvancedFailsafe pointer 2019-09-17 09:13:43 +10:00
Peter Barker 8fc55b9678 GCS_MAVLink: remove comm_get_available
available returns an unsigned integer, so this was just weird
2019-09-10 15:45:27 +10:00
Peter Barker df5921a87c GCS_MAVLink: gate AP_DEVO_Telem behind !HAL_MINIMIZE_FEATURES 2019-09-04 17:47:33 +10:00
Michael du Breuil a74f00d045 GCS_MAVLink: Remove single use method 2019-09-03 14:35:17 +10:00
Peter Barker 5d9b332bcb GCS_MAVLink: log exectuted COMMAND_LONG and COMMAND_INT packets 2019-08-27 09:32:00 +10:00
Andrew Tridgell cfc37f2089 GCS_MAVLink: log corrected timestamp for vision data
this allows for debugging of link lag issues
2019-08-26 12:27:31 +10:00
Peter Barker 052e721622 GCS_MAVLink: tweak timings debug messages 2019-08-24 15:33:50 +10:00
Peter Barker 4f9d1ada33 GCS_MAVLink: deny setting MIS_TOTAL parameter
Closes #11413

GCS_MAVLink: conform to parameter protocol requirements while ignoring sets

GCS_MAVLink: use internal-use-only param bit
2019-08-22 09:23:56 +10:00
Peter Barker 03c439f9ab GCS_MAVLink: make update_sensor_status_flags private 2019-08-17 17:45:03 +10:00
Peter Barker 74670a77be GCS_MAVLink: avoid allocating a GCS_MAVLINK per mavlink channel 2019-08-14 18:25:43 +10:00
Peter Barker 4b012ab62b GCS_MAVLink: deny upload of non-MISSION items if not doing mavlink2 2019-08-06 13:58:44 +10:00
Peter Barker cf0b7cf016 GCS_MAVLink: pass link object in place of channel to compass cal
Also eliminate intermediate function as just adding noise
2019-08-05 09:23:10 +10:00
Peter Barker 880e96448b GCS_MAVLink: tighten type on mavlink_coordinate_frame_to_location_alt_frame 2019-08-01 17:45:30 +10:00
Peter Barker 5e55aedd20 GCS_MAVLink: add printf-format attribute to send_text methods 2019-07-26 10:54:41 +10:00
Peter Barker 93ca243987 GCS_MAVLink: rearrange mission item handling code
This splits the missionitemprotocol handling entirely into separate
header files and separate compilation units.
2019-07-18 10:48:57 +09:00
Peter Barker 210c2070a1 GCS_MAVLink: remove include of AP_Param.h in GCS_MAVLink.h
This will help break include loops.
2019-07-17 18:05:29 +10:00
Pierre Kancir b1506ca652 GCS_MAVLink: pass mavlink_message_t by const reference 2019-07-16 20:51:42 +10:00
Peter Barker 459680e7c8 GCS_MAVLink: make Avoidance responsible for sending collision message 2019-07-16 09:52:54 +10:00
Peter Barker c0993509f7 GCS_MAVLink: declare GCS_MAVLINK as a class as it hasn't been defined yet 2019-07-16 09:29:48 +10:00
Peter Barker 6cb8fcc466 GCS_MAVLink: move use of AP_AHRS_NAVEKF_AVAILABLE into cpp file
This is defined in AP_AHRS which we only get transitively in the header
2019-07-09 22:32:57 +10:00
Peter Barker 1ebbe45fe1 GCS_MAVLink: split sending of RC_CHANNELS and RC_CHANNELS_RAW
Before this patch is applied we may never send the second message
because there's not room for it in the buffer and we can't return
failure-to-send (always interpreted as "retry") as we're in a void function.

Further, if you are on a mavlink2 connection we will not send out the
RC_CHANNELS_RAW message, depriving the user of any RC_CHANNELS messages.

This patch does have the drawback of doing more work on a mavlink1
connection - it has to fetch the data twice.  On the other hand, it also
allows the GCS to set the message rates independently for both
RC_CHANNELS and RC_CHANNELS_RAW so one or the other can be squelched.
That could be handy for reducing bandwidth if you know you're not using
more than 8 input channels.
2019-07-09 13:08:45 +10:00
Michael du Breuil f955a4e4d5 GCS_MAVLink: Don't retain a FrSky instance if we aren't using it
Saves 96 bytes of RAM
2019-06-26 11:59:41 +10:00
Peter Barker feddaabc42 GCS_MAVLink: handle out-of-time to send messages in parent class 2019-06-25 10:29:40 +10:00
Andrew Tridgell f28df4dff1 GCS_MAVLink: support MAV_CMD_BATTERY_RESET command 2019-06-25 09:56:25 +10:00
Peter Barker a55c40949b GCS_MAVLink: remove pointless protocol parameter to setup_uart 2019-06-25 09:47:08 +10:00
Peter Barker ca449cd979 GCS_MAVLink: stop pointlessly passing serial manager around 2019-06-25 09:47:08 +10:00
Peter Barker 45fab82345 GCS_MAVLink: eliminate redundant static pointer to serialmanager 2019-06-25 09:47:08 +10:00
Michael du Breuil 8c00102259 GCS_MAVLink: Reduce scoping on AP_BattMonitor include 2019-06-18 10:02:05 +10:00
Peter Barker a025794bae GCS_MAVLink: correct is_streaming check and update of is-streaming mask 2019-06-11 09:26:10 +10:00
Peter Barker 264a757095 GCS_MAVLink: add send_to_active_channels method 2019-06-06 12:41:48 +10:00
Peter Barker 75ae6b59b0 GCS_MAVLink: allow Copter to disallow mavlink disarm 2019-05-30 07:37:30 +09:00
Peter Barker 1b90643751 GCS_MAVLink: report more internal errors in SYS_STATUS 2019-05-23 07:29:29 +10:00
Peter Barker d0105c8fa7 GCS_MAVLink: factor mission handling, use for Rally
GCS_MAVLink: allow all mission types to be cleared

GCS_MAVLink: remove unused parameters from handle-mission-count
2019-05-22 08:53:45 +10:00
Peter Barker a0c80a0b3b GCS_MAVLink: make send_text and send_textv const 2019-05-01 10:18:46 +10:00
Peter Barker c143ec47da GCS_MAVLink: Bitmask is now a template 2019-04-16 15:12:07 +10:00
Randy Mackay bbd051b246 GCS_MAVLink: send OPTICAL_FLOW messages to optical flow driver 2019-04-08 11:26:59 +09:00
Michael du Breuil 8cafbe394f GCS_MAVLink: Fix includes 2019-04-05 20:12:53 +11:00
Rajat Singhal b7a40f2bfe GCS_Mavlink: Add function for sending POSITION_TARGET_LOCAL_NED message 2019-03-29 09:11:14 +11:00
Peter Barker 30a66d9f13 GCS_MAVLink: implement a convenience manual_override method 2019-03-27 22:33:47 -07:00
Randy Mackay b496af411e GCS_MAVLink: fix typo 2019-03-28 13:54:19 +09:00
Peter Barker 778bff966c GCS_MAVLink: stop passing dataflash into handle_radio_status
It can use the singleton instead
2019-03-27 10:38:39 +11:00
Peter Barker 0ef26a6950 GCS_MAVLink: add support for request_message 2019-03-26 16:20:50 +11:00
Peter Barker 2796beac8d GCS_MAVLink: move various sensor status flag updates up 2019-03-26 11:03:21 +11:00
Peter Barker b3203601f3 GCS_MAVLink: send internal errors as bitmask in sys_status 2019-03-21 21:34:33 +11:00
Peter Barker 95745f0d31 GCS_MAVLink: move command-long DO_SET_HOME up 2019-03-19 19:56:13 +11:00
Peter Barker bc2080cea2 GCS_MAVLink: move devo telemetry handling to GCS 2019-03-19 14:39:14 +11:00
Peter Barker 3100c8edad GCS_MAVLink: GCS can report simple/supersimple input modes 2019-03-19 14:39:14 +11:00
Peter Barker cf264a7d5e GCS_MAVLink: move vehicle_initialised to be on GCS not GCS_MAVLink 2019-03-19 14:39:14 +11:00
Peter Barker b12d20d86c GCS_MAVLink: add support for frame_string 2019-03-19 14:39:14 +11:00
Peter Barker ab1c42696c GCS_MAVLink: move FRsky telemetry up into common GCS telemetry class 2019-03-19 14:39:14 +11:00
Michael du Breuil 75caad52c0 GCS_MAVLink: Always check the return value on get_velocity_NED 2019-03-19 11:42:54 +11:00
Peter Barker 4eba6d4fe2 GCS_MAVLink: exempt requested parameters from buffer space reservation
Fixes a problem where we reserve space to send replies but then do not
bypass the reserved-space checks when sending them.
2019-03-19 10:37:09 +11:00
Peter Barker 716b0fdc88 GCS_MAVLink: use enum class for AltFrame enumeration 2019-03-19 10:31:18 +11:00
Peter Barker bb1ae30594 GCS_MAVLink: move sending of RPM message up 2019-03-16 10:33:01 +09:00
Randy Mackay 066a443e5f GCS_MAVLink: add send_set_position_target_global_int
this supports sending the position target to an offboard navigation controller
2019-03-15 14:51:35 +09:00
Peter Barker 34e09a55be GCS_MAVLink: support send_extended_sys_state 2019-03-12 09:16:13 +09:00
Peter Barker 74702b8688 GCS_MAVLink: make sending of send_pid_tuning up 2019-03-05 10:41:56 +11:00
IamPete1 20d79207d8 GCS_MAVLink: make send_global_position_int virtual 2019-03-01 20:57:54 +11:00
Peter Barker ace5192852 GCS_MAVLink: retry sending home/origin if it fails
Also grants us the ability to stream these messages
2019-02-26 14:01:41 +11:00
Peter Barker 9f27e91f33 GCS_MAVLink: add simple stats to dataflash 2019-02-26 11:23:57 +11:00
Peter Barker 8de4ee7348 GCS_MAVLink: move update_sensor_status_flags into GCS subclasses 2019-02-19 14:09:59 +11:00
Peter Barker cb33f290a7 GCS_MAVLink: move sensor flags to be a GCS thing rather than a GCS_MAVLINK thing
These are a per-vehicle thing, not a per-mavlink-backend thing.
2019-02-19 14:09:59 +11:00
Peter Barker bfb3f0d62e GCS_MAVLink: make capabilities comes from subclass, not HAL 2019-02-19 13:14:52 +11:00
Peter Barker de615ee11d GCS_MAVLink: move try_send_message of nav_controller_output up 2019-02-19 10:08:00 +11:00
Peter Barker 4a0887b807 GCS_MAVLink: measure stream slowdown in ms
This costs us a couple of extra bytes of RAM and gains us not doing a
whole heap of multiplies
2019-02-16 13:45:47 +11:00
Peter Barker 63427629e1 GCS_MAVLink: use visual odometry singleton 2019-02-15 16:56:13 +11:00
Peter Barker d8847a6192 GCS_MAVLink: move handling of command-int MAV_CMD_DO_SET_HOME up 2019-02-13 09:42:26 +11:00
Peter Barker 64b4e69e34 GCS_MAVLink: break out an altitude enumeration mapping function 2019-02-12 09:07:50 +09:00
Tom Pittenger 9f0e895c37 GCS_MAVLink: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
Peter Barker 0ef7c6af59 GCS_MAVLink: move handling of fence point manipulation up 2019-02-08 11:47:59 +09:00
Peter Barker 8d45a8ff53 GCS_MAVLink: move handling of MAV_CMD_DO_SET_FENCE_ENABLED up 2019-02-08 11:47:59 +09:00
Peter Barker ae68b58678 GCS_MAVLink: move handling of RC overrides up
Based on commit 8db5e5308731b6916d5da58a650cef015b887180 by dposea
2019-02-05 13:59:21 +11:00
Peter Barker 120f0822ae GCS_MAVLink: move sending of sys_status message up 2019-02-05 11:07:39 +11:00
Peter Barker f1907679e7 GCS_MAVLink: move sending of fence_status message up 2019-01-31 13:44:29 +09:00
Peter Barker 8b74ab32a3 GCS_MAVLink: support get_message_interval 2019-01-30 13:56:55 +09:00
Pavlo Kolomiiets 094505a76a GCS_MAVLink: add WHEEL_DISTANCE to ap_message enum 2019-01-28 19:35:18 +09:00
Peter Barker 8e19e805c6 GCS_Common: clarify enumeration item name MSG_NEXT_WAYPOINT 2019-01-22 09:01:57 +11:00
Peter Barker da1ded7cb9 GCS_MAVLink: rename queued_waypoint_send to queued_mission_request_send 2019-01-22 09:01:57 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Peter Barker 33baae80b1 GCS_MAVLink: remove PX4-specific code that disables overrides on reboot 2019-01-18 17:32:02 +11:00
Francisco Ferreira f68f83505c
GCS_MAVLink: add preflight CAN command 2019-01-18 00:57:33 +00:00
Peter Barker 8fd8ae660b GCS_MAVLink: send multiple async replies per call to send_queued_param 2019-01-15 10:11:21 +11:00
Michael du Breuil 27d461348e GCS_MAVLink: Use rally singleton 2019-01-08 10:39:50 +11:00
Andrew Tridgell c99dd5f9e8 GCS_MAVLink: implement UART pass-thru 2018-12-29 15:58:22 +11:00
Peter Barker aa7844e4a7 GCS_MAVLink: split SIMSTATE, AHRS2 and AHRS3 onto their own ap_message ids 2018-12-19 13:19:23 +11:00
Peter Barker 979e5261d5 GCS_MAVLink: remove unused method 2018-12-19 10:55:38 +09:00
Peter Barker 77be393ad4 GCS_MAVLink: split DISTANCE_SENSOR onto its own ap_message id 2018-12-19 07:24:37 +11:00
Peter Barker 039ade421e GCS_MAVLink: split SYS_STATUS and POWER_STATUS onto separate ap_messages 2018-12-18 14:05:20 +11:00
Peter Barker 759a8e5553 GCS_MAVLink: move accept_packet to base class 2018-12-14 12:44:31 +11:00
Peter Barker dfd0ecd2bd GCS_MAVLink: use mission singleton 2018-12-13 10:52:52 +09:00
Peter Barker cc5ad393e7 GCS_MAVLink: split MSG_SCALED_PRESSURE into three separate messages 2018-12-12 21:36:01 +11:00
Peter Barker eb2ef9fd2d GCS_MAVLink: use dataflash singleton rather than storing pointer 2018-12-11 08:43:47 +09:00
Peter Barker 160c29e01f GCS_MAVLink: change number of buckets to 10 2018-12-10 12:52:41 +09:00
Peter Barker e91ee3e54a GCS_MAVLink: rename confusingly-named method 2018-12-10 12:52:41 +09:00
Peter Barker 54d9e74f17 GCS_MAVLink add description for special messages 2018-12-10 12:52:41 +09:00
Peter Barker 5a0e0e7a87 GCS_MAVLink: rename DEBUG_SEND_MESSAGE_TIMINGS to GCS_DEBUG_SEND_MESSAGE_TIMINGS 2018-12-10 12:52:41 +09:00
Peter Barker c15de72095 GCS_MAVLink: split MSG_RAW_IMU1 into per-IMU ap_messages
Also allows for sending SCALED_IMU for the first IMU rather than RAW_IMU
2018-12-10 12:52:41 +09:00
Peter Barker ef46acda71 GCS_MAVLink: support MAV_CMD_SET_MESSAGE_INTERVAL 2018-12-10 12:52:41 +09:00
Peter Barker f0a95182be GCS_MAVLink: add is_active and is_streaming methods 2018-12-10 12:52:41 +09:00
Peter Barker 75e63db366 GCS_MAVLink: rename MSG_EXTENDED_STATUS2 to MSG_MEMINFO 2018-12-04 18:01:38 +11:00
Peter Barker d5322633ed GCS_MAVLink: rename MSG_RAW_IMU2 and MSG_RAW_IMU3 to reflect what they send 2018-12-04 17:45:32 +11:00
Andrew Tridgell 259723eb26 GCS_MAVLink: use JitterCorrection class 2018-12-04 11:37:38 +11:00
Andrew Tridgell 1e354d53c9 GCS_MAVLink: added private channel mask
this allows a channel to be marked "private". A private channel gets
heartbeats, but doesn't get forwarded packets or broadcast messages

This is used by solo gimbal driver
2018-11-24 11:00:37 +11:00
Peter Barker f4cf4c7fa2 GCS_MAVLink: remove unused variable 2018-11-23 14:25:20 +09:00
Peter Barker 38fdcb02a4 GCS_MAVLINK: move sending of optical flow status up to base class 2018-11-13 10:40:23 +11:00
Peter Barker 3749cfd764 GCS_MAVLink: allow vehicles to override VFR_HUD.alt 2018-11-06 11:26:38 +09:00
Peter Barker 890a62fc51 GCS_MAVLink: move handling of gimbal messages up
GCS_MAVLink: move handling of mav_cmd_do_mount_control up

GCS_MAVLink: move handling of deprecated mount messages up

GCS_MAVLink: move handling of command_do_set_roi up

GCS_MAVLink: move handling of command_do_set_roi up

GCS_MAVLink: handle MAV_CMD_DO_MOUNT_CONFIGURE

GCS_MAVLink: call renamed AP_Mount send_mount_status msg

GCS_MAVLink: add support for MAV_CMD_DO_SET_ROI_LOCATION
2018-10-30 17:19:14 +11:00
Peter Barker 26e7abe6c4 GCS_MAVLink: use camera singleton to get camera rather than callback 2018-08-31 15:48:56 +10:00
Peter Barker d5f6911db7 GCS_MAVLink: use compass singleton instead of subclass callback 2018-08-31 15:48:56 +10:00
Andrew Tridgell 048a52ebc0 GCS_MAVLink: make mavlink send from multiple threads safe
this takes a lock to prevent interleaving of mavlink msgs from
multiple threads
2018-08-16 12:40:10 +10:00
Peter Barker 3710c50c4e GCS_MAVLink: handle MAV_CMD_ACCELCAL_VEHICLE_POS in GCS base class 2018-07-06 09:43:09 +10:00
Peter Barker 4775a67ea0 GCS_Common: handle command_long in GCS base class 2018-07-06 09:43:09 +10:00
Peter Barker 4ad065de99 GCS_MAVLink: handle command_int in base class 2018-07-06 09:43:09 +10:00
Peter Barker f7daf1c676 GCS_MAVLink: rearrange code for clarity 2018-07-03 12:12:25 +10:00
Peter Barker 11df6debd0 GCS_MAVLink: move mavlink reboot code up to base class 2018-07-03 12:12:25 +10:00
Andrew Tridgell 94d8010a16 GCS_MAVLink: expose HUD throttle accessor 2018-07-03 07:29:43 +10:00
Peter Barker 4a8614fbbd GCS_MAVLink: handle MAV_CMD_FLASH_BOOTLOADER 2018-06-28 11:35:13 +10:00
Peter Barker a44c1378f7 GCS_MAVLink: add send_textv functions 2018-06-23 15:33:19 +10:00
Peter Barker 27cd972331 GCS_MAVLink: add magic number definitions 2018-06-20 11:43:38 +10:00
Andrew Tridgell 4e4e5a2feb GCS_MAVLink: send ESC telemetry messages 2018-06-19 09:36:03 +10:00
Peter Barker c333a905df GCS_MAVLink: use AP_FWVersion singleton 2018-06-18 19:10:37 +01:00
Peter Barker 721feaf40f GCS_MAVLink: use AP_RTC
GCS_MAVLINK: Add SYSTEM_TIME handle (Patrick José Pereira)
2018-06-15 08:01:22 +10:00
Peter Barker b0aeec4b6a GCS_MAVLink: move handling of MAV_CMD_DO_GRIPPER up 2018-06-11 19:07:39 +01:00
Michael du Breuil b331ddd49b GCS_MAVLink: Remove some common wrappers, fix excessive FALLTHROUGH 2018-06-05 03:25:42 +01:00
Peter Barker e50a817150 GCS_MAVLink: make VFR_HUD always return height above MSL 2018-06-05 09:38:20 +10:00
Peter Barker d8871078ff GCS_MAVLink: create persist_streamrates() callback to indicate persistence
Removes the catching of the message in each vehicle separately.
2018-05-29 13:08:29 +10:00
Peter Barker d1174bcf70 GCS_MAVLINK: move try_send_message handling of vfr_hud up 2018-05-29 13:00:40 +10:00
Peter Barker f668d0dc57 GCS_MAVLink: enhance TIMESYNC handling
GCS_MAVLink: use de-jittered timestamp for our timesync responses

GCS_MAVLink: periodically send timesync request packets

Currently no use is made of the result of these requests, however,
having the result present in telemetry logs will be useful data.
2018-05-25 11:36:17 +10:00
Peter Barker e9d2be143a GCS_MAVLink: moving sending of sim state up 2018-05-23 18:36:50 +10:00
Peter Barker fe2d8f853b GCS_MAVLink: add type-correctness for stream entries 2018-05-22 11:21:25 +10:00
Peter Barker c5520cd995 GCS_MAVLink: eliminate MSG_LIMITS_STATUS
Only Sub used this, and it used it to send fence status, which we have a
separate ID for
2018-05-22 09:05:14 +09:00
Peter Barker 92927cd848 GCS_MAVLink: move try_send_message of servo-output-raw up 2018-05-21 19:08:08 +01:00
Peter Barker 0ca888d52a GCS_MAVLink: move sending of POSITION_TARGET_GLOBAL_INT up 2018-05-18 20:26:37 +10:00
Peter Barker 4440f7ec4a GCS_MAVLink: move sending of GLOBAL_POSITION_INT up to GCS_MAVLINK 2018-05-17 15:48:06 +01:00
Peter Barker 217fd73100 GCS_MAVLink: remove arguments to send_home and send_ekf_origin 2018-05-17 20:42:36 +10:00
Peter Barker 514bc5c21d GCS_MAVLink: move send_attitude up to GCS_MAVLINK 2018-05-17 18:28:43 +10:00
Peter Barker 695c52be05 GCS_MAVLink: allow sub to override sending of scaled_pressure3 2018-05-17 15:37:14 +10:00
Peter Barker 8cb2b5809f GCS_MAVLink: move try_send_message sending of sensor offsets up 2018-05-17 15:37:14 +10:00
Peter Barker b51ec1d346 GCS_MAVLink: move try_send_message of RAW_IMU up to GCS_MAVLINK 2018-05-17 15:37:14 +10:00
Peter Barker fc1775df75 GCS_MAVLink: handle setting of ekf origin in GCS_MAVLink 2018-05-17 10:13:42 +10:00
Michael du Breuil 1b05a18b84 GCS_MAVLink: Wrap sending named float values 2018-05-17 00:59:45 +01:00
Michael du Breuil 805e9519d1 GCS_MAVLink: Send rangefinder data 2018-05-16 23:21:41 +01:00
Michael du Breuil 03fc653e62 GCS_MAVLink: Don't rely on instance data from rangefinders 2018-05-16 23:21:41 +01:00
Andrew Tridgell f4f62ececa GCS_MAVLink: take account of transport lag in vision timestamps 2018-05-16 18:49:22 +10:00
Andrew Tridgell ab9ef01889 GCS_MAVLink: added function for correcting offboard timestamps 2018-05-15 10:42:52 +09:00
Peter Barker 347ab96bf0 GCS_MAVLink: move sending of battery data up
Also, use singleton to get battery object
2018-05-09 11:40:31 -07:00
Peter Barker 417e9e9aaf GCS_MAVLink: move data stream send up 2018-05-09 16:15:38 +10:00
Peter Barker b76fa57108 GCS_MAVLink: move try_send_message handling of RC_CHANNELS_RAW up 2018-05-08 12:33:32 +01:00