Commit Graph

1294 Commits

Author SHA1 Message Date
Peter Barker 67bf00c1c3 GCS_MAVLink: ensure payload space before sending message ack
Also add comment about how we shouldn't be sending this message at all.
2019-08-13 16:48:17 +10:00
Peter Barker bb542ca39a GCS_MAVLink: queue AUTOPILOT_VERSION for sending instead of direct-send
Also allows the message to be requested for streaming or with
REQUEST_MESSAGE

We weren't checking for buffer space before sending this out, so it was
a possible source of corruption.
2019-08-13 16:29:45 +10:00
Peter Barker 57528b94cf GCS_MAVLink: allow complete() call on subclasses to fail
Also terminate uploads if any error occurs fetching items
2019-08-07 12:07:59 +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 4e95832433 GCS_MAVLink: send mission acks for bad MISSION_ITEM requests 2019-08-06 13:58:44 +10:00
Peter Barker afd623a6fa GCS_MAVLink: use send_message to send mission items
It is less error-prone to use this new send_message function.

In particular, one of the parameters to these functions was using the
wrong constant when sending a mission item message.
2019-08-06 13:58:44 +10:00
Peter Barker 8fc6e16a4a GCS_MAVLink: fill missing seq and type fields in MISSION_ITEM
GCS_MAVLink: fill mission type in return MISSION_ITEM packets

GCS_MAVLink: fill in return sequence number for MISSION_ITEM messages
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 71533c7c5c GCS_MAVLink: correct frame on rally mission items 2019-08-02 09:17:04 +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 979a9fb679 GCS_MAVLink: ensure item being converted is a rally point 2019-08-01 17:44:37 +10:00
Randy Mackay 767408ffe9 GCS_MAVLink: resolve gcs::send_text compiler warning 2019-07-30 09:02:39 +09:00
Peter Barker 5e55aedd20 GCS_MAVLink: add printf-format attribute to send_text methods 2019-07-26 10:54:41 +10:00
Peter Barker 0bbe049477 GCS_MAVLink: assert max length of statustexts we send to the GCS 2019-07-22 23:05:15 -07:00
Andrew Tridgell 58b739db18 GCS_MAVLink: allow non-register device access with devop
useful for i2c devices such as LW20 lidar
2019-07-19 17:05:23 +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
Michael du Breuil b3c6d3d75a GCS_MAVLink: Refactor battery current interface 2019-07-14 00:28:00 -07: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
Peter Barker c8353c1c13 GCS_MAVLink: fill target system and target component in MISSION_ITEM responses 2019-07-09 09:25:06 +10:00
Peter Barker c6533723de GCS_Param: correct sending of parameters of length 16 2019-07-06 18:06:17 +10:00
Peter Barker ebd8170a15 GCS_MAVLink: add missing include for AP_RTC 2019-07-04 13:57:40 +10:00
Peter Barker f31b7b5772 GCS_MAVLink: remove stray undef of undefined macro 2019-07-02 10:02:55 +10:00
Michael du Breuil 18e979fd4f GCS_MAVLink: Include needed AP_Baro.h 2019-06-27 14:56:21 +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 278ac5e6ed GCS_MAVLink: correct deferred body timing debug 2019-06-25 19:59:49 +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
Andrew Tridgell b6dbb8f464 GCS_MAVLink: always show AHRS healthy with EKF type 10
this fixes an issue noticed by Marco with xplane
2019-06-25 00:28:45 +08:00
Peter Barker c11da6a85d GCS_MAVLink: routing example: use GCS_Dummy in place of custom GCS 2019-06-20 11:41:19 +10:00
Peter Barker 0963957b31 GCS_MAVLink: correct GCS_Dummy firmware version 2019-06-18 10:54:01 +10:00
Peter Barker c39a622653 GCS_MAVLink: take sw_version from AP_FWVersion struct 2019-06-18 10:54:01 +10:00
Peter Barker a2c4bfea0c GCS_MAVLink: use send_to_active_channels for parameters 2019-06-18 10:27:56 +10:00
Michael du Breuil be7afe346b GCS_MAVLink: Fix AP_GPS include 2019-06-18 10:02:05 +10:00
Michael du Breuil 8c00102259 GCS_MAVLink: Reduce scoping on AP_BattMonitor include 2019-06-18 10:02:05 +10:00
Peter Barker ae85994c59 GCS_MAVLink: include internal error count as errors4 in SYS_STATUS 2019-06-12 10:05:59 +10:00
Peter Barker f385a4a329 GCS_Common: fix compiler warnings on missing parentheses 2019-06-11 21:50:53 +10:00
Randy Mackay 6ed09d83f3 GCS_MAVLink: send_home_position uses const Location reference 2019-06-11 13:13:22 +09:00
Rajat Singhal bc22aeb4da GCS_Mavlink: Correct format specifier in UART panic message 2019-06-11 13:36:03 +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 4d46c801f2 GCS_MAVLink: panic in SITL if we fail to write to uart 2019-06-06 12:41:48 +10:00
Peter Barker 99c56c1770 GCS_MAVLink: fix MAV.txp log field
This was being promoted to an unsigned.
2019-06-04 09:05:37 +10:00
Peter Barker 75ae6b59b0 GCS_MAVLink: allow Copter to disallow mavlink disarm 2019-05-30 07:37:30 +09:00
Peter Barker e340873d88 GCS_MAVLink: canonicalise on success on commanded-to-arm-when-armed
This means the mavlink return value indicates the current arm status of
the vehicle rather than success/failure of transitioning to the armed or
disarmed state (where trying to arm when armed is considered a failure).

MAVLink is a lossy communication mechanism.  It would not be
unreasonable for a GCS to issue a disarm command multiple times to
increase the chances of the command getting through.
2019-05-30 07:37:30 +09:00
Peter Barker b857d2c1af GCS_MAVLink: handle MAV_CMD_COMPONENT_ARM_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
Andrew Tridgell e2d863498b GCS_MAVLink: clear last msgs when done
this makes MON and WDOG logs clearer
2019-05-17 08:56:06 +10:00
Andrew Tridgell 64c723fd31 GCS_MAVLink: record mavlink msg IDs for watchdog 2019-05-15 15:33:48 +10:00
Andrew Tridgell 3772f58be9 GCS_MAVLink: removed unusued AP_Common/Semaphore.h 2019-05-15 15:33:48 +10:00
Tom Pittenger 1f3c3c853f GCS_MAVLink: move heartbeat sending to gcs instead of by vehicles 2019-05-14 10:54:45 -06:00
Tom Pittenger 4c641c6e2b GCS_MAVLink: comply with mavlink spec to ignore rc_override UINT16_MAX 2019-05-10 15:30:54 -07:00
Jaaaky 971e3af826 GCS_MAVLink: prgama away address-of-packed-member only for g++ >= 9 2019-05-03 01:57:26 +10:00
Peter Barker 9273ac3631 GCS_MAVLink: pragma away address-of-packed-member
g++-9 throws a lot of warnings for taking addresses of packed members.
We can have this warning for our ArduPilot code, but there's way too
many issues within MAVLink to put up with.
2019-05-01 19:36:49 -07:00
Peter Barker a0c80a0b3b GCS_MAVLink: make send_text and send_textv const 2019-05-01 10:18:46 +10:00
Peter Barker e6653f42dd GCS_MAVLink: correct examples with override keyword 2019-04-30 09:29:59 +10:00
Pierre Kancir e3057b40f3 GCS_MAVLINK: remove mavlink send_buf usage 2019-04-23 09:41:00 +10:00
Pierre Kancir cc14885913 GCS_MAVLINK: remove mavlink send_buf usage 2019-04-23 09:41:00 +10:00
Andrew Tridgell 2313970eaf GCS_MAVLink: added method to lockup autopilot
used for watchdog testing
2019-04-22 16:53:35 +10:00
Peter Barker c143ec47da GCS_MAVLink: Bitmask is now a template 2019-04-16 15:12:07 +10:00
Peter Barker efb98437e6 GCS_MAVLink: move setting of compass sys_status bits up 2019-04-16 09:48:23 +10:00
Peter Barker 08cbf18958 GCS_MAVLink: header include fixes for RSSI changes 2019-04-09 09:33:13 +10:00
Pierre Kancir 5a7081b457 GCS_MAVLink: move check_latlng to Location 2019-04-08 12:56:01 -07:00
Andrew Tridgell f998a74adf GCS_MAVLink: don't report SCALED_PRESSURE2 with a non-existant airspeed sensor 2019-04-08 12:52:19 +10:00
Randy Mackay bbd051b246 GCS_MAVLink: send OPTICAL_FLOW messages to optical flow driver 2019-04-08 11:26:59 +09:00
Peter Barker 31daaf9933 GCS_MAVLink: add floating-point-constant designators 2019-04-05 23:04:17 -07:00
Peter Barker 5c4983ffcd GCS_MAVLink: stop converting compass cal floats to ints before saving 2019-04-05 06:09:25 -07: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
Tom Pittenger 8845cc2053 GCS_MAVLink: rename dataflash to logger 2019-03-28 16:40:58 +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 236056ffbd GCS_MAVLink: take 0,0 as meaning set-home-to-current-location
This isn't in spec, but is what Sub used to do, and what other vehicles
also used to do.

We treat 0,0 as "current location" in various other places, so it kind
of makes sense here too.
2019-03-19 19:56:13 +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
Peter Barker 5eb9622105 GCS_MAVLink: correct compilation for ALT_FRAME issue 2019-03-19 12:06:03 +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
Andrew Tridgell 778b88cba2 GCS_MAVLink: disable reboot when armed
this prevents reboot on vehicles that have ARMING_REQUIRE=0, which
applies to some planes, but those vehicles tend to not use MAVLink
reboot anyway.
2019-03-19 10:53:37 +11:00
Peter Barker 3dc2db8d9a GCS_MAVLink: queue parameter request even if we can't fit a reply ATM 2019-03-19 10:37:09 +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 f0200a4d9b GCS_MAVLink: GCS_Common: correct overflows in bandwidth and count calculations 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 27b50f125c GCS_MAVLink: send_set_position_target always sends alt-above-home 2019-03-15 14:51:35 +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
Michael du Breuil f7b34677df GCS_MAVLink: Don't send BATTERY_STATUS for empty instances 2019-03-11 22:42:59 +00: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 138d93702a GCS_MAVLink: use Location to change alt frames 2019-02-26 10:35:39 +11:00
Peter Barker 49493676ea GCS_MAVLink: use MAV_PARAM_TYPE for sending parameter messages
... rather than mavlink_message_type_t
2019-02-26 08:20:25 +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 91c8d0b915 GCS_MAVLink: clarify packetReceive calling handlemessage checks
modules/libcanard/
2019-02-19 13:40:32 +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
Randy Mackay f8e49e5438 GCS_MAVLink: call send_esc_telemetry for AP_ToshibaCAN ESCs 2019-02-18 20:55:47 +09: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 dffc5568fe GCS_MAVLink: remove redundant home validation checks 2019-02-15 08:28:45 +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 be841d5d0a GCS_MAVLink: add sanity check for rally mavlink message handling 2019-02-08 11:47:59 +09: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
Peter Barker c487d120e3 GCS_Common: stop passing mission to Write_EntireMission 2019-01-29 19:07:05 -08:00
Pavlo Kolomiiets 094505a76a GCS_MAVLink: add WHEEL_DISTANCE to ap_message enum 2019-01-28 19:35:18 +09:00
Michael du Breuil 753f360d06 GCS_Common: NACK a failed partial mission write 2019-01-23 00:06:07 -07:00
Peter Barker b19f760628 GCS_MAVLink: don't allow signing key to be set up when armed
Discussion is here:
https://github.com/ArduPilot/ardupilot/issues/10298
2019-01-23 17:39:10 +11:00
Peter Barker e4120c848c GCS_MAVLink: correct payload space check for mission requests 2019-01-22 09:01:57 +11: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 6fc76a32af GLOBAL: use AP::logger() and strip redundant Log_ from methods 2019-01-18 18:08:20 +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 ee13110ad0
GCS_MAVLink: send KDECAN ESC telemetry 2019-01-18 00:57:33 +00:00
Francisco Ferreira f68f83505c
GCS_MAVLink: add preflight CAN command 2019-01-18 00:57:33 +00:00
Andrew Tridgell ea2970bf26 GCS_MAVLink: adjust for new fields in DISTANCE_SENSOR 2019-01-17 08:43:13 +11:00
Peter Barker 8fd8ae660b GCS_MAVLink: send multiple async replies per call to send_queued_param 2019-01-15 10:11:21 +11:00
Peter Barker 99ea5d1a5e GCS_MAVLink: avoid initial rush of params into uart
bandwidth calculation is based on this.
2019-01-15 10:11:21 +11:00
Peter Barker 35f3906424 GCS_MAVLink: do not adjust parameter stream rate on MAV_DATA_STREAM_ALL 2019-01-14 13:27:55 +11:00
Michael du Breuil 27d461348e GCS_MAVLink: Use rally singleton 2019-01-08 10:39:50 +11:00
Andrew Tridgell 42283b2595 GCS_MAVLink: allow param send in delay callback
this is needed for startup sensor error handling
2019-01-04 19:17:31 +11:00
Peter Barker 701d8588cc GCS_MAVlink: correct use of stream_slowdown 2019-01-03 14:57:05 +11:00
Peter Barker 9577cb8b39 GCS_MAVLink: send text messages to notify even if no GCSs connected 2019-01-03 14:56:27 +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 61e048a41b GCS_MAVLink: tidy queued_param_send a little 2018-12-18 21:51:31 +11:00
Peter Barker f8863971a2 GCS_MAVLink: move try_send_message telemetry_delayed call up to caller 2018-12-18 14:25:56 +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 294be787f8 GCS_MAVLink: correct SYSID_ENFORCE for our own mavlink-connected components 2018-12-14 12:44:31 +11:00
Peter Barker 759a8e5553 GCS_MAVLink: move accept_packet to base class 2018-12-14 12:44:31 +11:00
Francisco Ferreira a50a9c65ad GCS_MAVLink: change order in removing message from bucket
A call to find_next_bucket_to_send would change sending_bucket_id so the if would have a wrong meaning
The call also changes the bucket_message_ids_to_send so currently there is no bug, but it can change
2018-12-14 09:17:02 +09:00
Peter Barker dfd0ecd2bd GCS_MAVLink: use mission singleton 2018-12-13 10:52:52 +09:00
Peter Barker cf5dd7cdd7 GCS_MAVLink: emit pressure data for separate airspeed instances 2018-12-12 21:36:01 +11: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 1c6af7d777 GCS_Common: don't attempt to shove timesync message into a full channel 2018-12-10 15:25:10 +11:00
Peter Barker 6e7b9aa727 GCS_MAVLink: remove dead code 2018-12-10 12:52:41 +09:00
Peter Barker 160c29e01f GCS_MAVLink: change number of buckets to 10 2018-12-10 12:52:41 +09:00
Peter Barker 17c82999d0 GCS_MAVLink: use panic() call for what it is good for 2018-12-10 12:52:41 +09:00
Peter Barker a9c5affe8a GCS_MAVLink: be consistent about calling count() or first_set 2018-12-10 12:52:41 +09:00
Peter Barker 8d970c13c0 GCS_MAVLink: avoid considering no_message_to_send equal to -1 2018-12-10 12:52:41 +09:00
Peter Barker 57fee7e8ef GCS_MAVLink: remove redundant check in find_next_bucket_to_send 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 b696986de6 GCS_MAVLink: clarify extra code in do_try_send_message is debug code 2018-12-10 12:52:41 +09:00
Peter Barker f9399a708c GCS_MAVLink: use defined no_message_to_send constant for what it's good for 2018-12-10 12:52:41 +09:00
Peter Barker 0dfe5b64bf GCS_MAVLink: clarify comment on sending requests 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 b6ac20ce32 GCS_MAVLink: use correct type for streamrate values 2018-12-10 12:52:41 +09:00
Peter Barker c70fec305c GCS_MAVLink: avoid squashing close-together intervals into same bucket 2018-12-10 12:52:41 +09:00
Peter Barker e4bc874083 GCS_MAVLink: cap the minimum message interval to 80% of the main loop rate 2018-12-10 12:52:41 +09:00
Peter Barker e08a8d03d2 GCS_MAVLink: initialise last_sent_ms when reusing bucket 2018-12-10 12:52:41 +09:00
Peter Barker 09905bb2f2 GCS_MAVLink: send data for sensors even if no data for other sensors
This is notable when you have a lot of compasses, for example
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
Randy Mackay 70817bb6a7 GCS_Common: optical flow comp fields should include flow 2018-11-28 20:38:58 +09:00
Matt adf78ab8d3 MAVLINK: Forward to private channels if sysid and compid match
If the target system ID and target component ID match a private channel,
it is ok to forward that mavlink traffic.  Any traffic without a
matching sysid or compid will not be forwarded on the channel
2018-11-28 11:33:23 +11:00
Peter Barker 686abb5e61 GCS_MAVLink: warn user via text message of mission upload failure 2018-11-26 14:31:41 -08: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 1eac03a257 GCS_MAVLink: scale parameter send rate according to link bandwidth 2018-10-30 19:31:37 +11: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
chobits ed12c6719d GCS_MAVLink: log vision data pitch/roll/yaw in degree 2018-10-30 11:39:47 +09:00
Peter Barker 96b5be0e7d GCS_MAVLink: account for snprintf now null-terminating strings 2018-10-21 07:54:30 +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
Pierre Kancir 2661ad2ed3 GCS_Common: remove status text for gripper 2018-08-27 14:39:49 +10:00
Dr.-Ing. Amilcar do Carmo Lucas b9df513705 GCS_MAVLink: remove redundant ret = true statements (NFC) 2018-08-26 18:21:45 +10:00
Andrew Tridgell 5988c3258f GCS_MAVLink: use Semaphore.h 2018-08-16 12:40:10 +10:00
Andrew Tridgell a26e534654 GCS_MAVLink: use WITH_SEMAPHORE()
this is a suggestion from Peter, will need some discussion
2018-08-16 12:40:10 +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
Andrew Tridgell 5de49aa5aa GCS_MAVLink: flush parameters on reboot 2018-08-16 12:40:10 +10:00
Michael du Breuil 83d01c8b7d GCS_MAVLink: Use ARRAY_SIZE to avoid a magic value 2018-08-09 11:53:05 +10:00
Michael du Breuil 21dfe02c6e GCS_MAVLink: always send an idea of battery voltage as part of
BATTERY_STATUS
2018-08-07 09:52:45 +10:00
Andrew Tridgell df643d8499 GCS_MAVLink: allow uninstall of alt protocol handler 2018-08-04 19:29:13 +10:00
Peter Barker dbccd6a399 GCS_MAVLink: use rc() method to get rc singleton 2018-08-01 12:11:30 +09:00
Peter Barker d698960728 GCS_MAVLink: correct bad fall-through 2018-07-06 10:43:17 +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 e7b409924c GCS_Common: send 0 rather than 1 in servo zero-rc-outputs 2018-07-03 12:12:25 +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
Peter Barker 73bbe8b84e GCS_MAVLink: send ack before board reboot
Based on https://github.com/ArduPilot/ardupilot/pull/6640
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
Andrew Tridgell a3e44b3249 GCS_MAVLink: fix from review comment
thanks Pierre
2018-06-28 11:35:13 +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
Andrew Tridgell f401dc1a77 GCS_MAVLink: fixed error in SITL for ESC_TELEMETRY 2018-06-21 10:48:02 +10:00
Peter Barker 27cd972331 GCS_MAVLink: add magic number definitions 2018-06-20 11:43:38 +10:00
Andrew Tridgell 5495e98483 GCS_MAVLink: build fixes
needed for new mavlink2 extensions in battery monitor message
2018-06-19 09:36:03 +10:00
Andrew Tridgell 4e4e5a2feb GCS_MAVLink: send ESC telemetry messages 2018-06-19 09:36:03 +10:00
Peter Barker cad7f9d9c0 GCS_MAVLink: tidy waypoint receiving part of update
This is NFC.  The early-return here is confusing, and there were
redundant checks going on.
2018-06-18 19:54:21 +01: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
chobits 0d2b70e607 GCS_MAVLink: fix ATT_POS_MOCAP timestamp handle 2018-06-13 09:43:42 +09: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 69db7b040a GCS_MAVLink: move try_send_message handling of EKF_STATUS_REPORT up 2018-06-01 16:12:45 +01:00
Peter Barker 0baee6f82b GCS_MAVLINK: avoid pushing partial RC_CHANNEL message into uart
In the case we do not send RC_CHANNELS_RAW, we will not check to see if
RC_CHANNELS will fit.  RC_CHANNELS is larger than RC_CHANNELS_RAW, so the
check in the caller is insufficient.
2018-05-30 17:05:13 +01:00
Peter Barker 1aaf7e96af GCS_MAVLink: remove intermediate functions
GCS_MAVLink: remove comm_receive_ch

This is a lot of sanity checking in a static function which has been
called from a place where things are guaranteed

GCS_MAVLink: remove unused comm_is_idle

GCS_MAVLink: remove unused comm_send_ch

GCS_MAVLink: remove unused hal reference

GCS_MAVLink: remove unused #includes
2018-05-29 14:42:02 +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 879f250fac GCS_Common: return airspeed sensor value in vfr_hud_airspeed 2018-05-29 13:00:40 +10:00
Peter Barker d1174bcf70 GCS_MAVLINK: move try_send_message handling of vfr_hud up 2018-05-29 13:00:40 +10:00
Pierre Kancir 053f124492 GCS_MAVLink: fix FALLTHROUGH warning 2018-05-26 09:13:29 +09:00
Randy Mackay 938dc2e47d GCS_MAVLink: resolve compiler warnings correct_offboard_timestamp
applies only to SITL
2018-05-25 14:00:00 +09: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
Dr.-Ing. Amilcar do Carmo Lucas 8427b569b6 GCS_MAVLink: replace /* fall through */ with FALLTHROUGH; 2018-05-25 08:41:07 +09: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
Eugene Shamaev b260a6ca7c GCS_Mavlink: HAL_RCINPUT_WITH_AP_RADIO definition 2018-05-22 08:35:01 +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 da40ebaf70 GCS_MAVLink: use relative altitide from ahrs.get_relative_position_D_home()
This will return a barometer height if the EKF is not available.
2018-05-17 15:48:06 +01: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 c887a5c188 GCS_MAVLink: move try_send_message sending of scaled_pressure up 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
Randy Mackay e04de34014 GCS_MAVLink: add local time to VISP message
Adding both local and remote time is useful for providing support for this message because misaligned clocks lead to our EKF discarding the message
2018-05-10 08:29:30 +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 8d7fadfdfc GCS_MAVLink: set _initialised as last thing 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
Peter Barker eecdcacf3e GCS_MAVLink: move sending of heartbeats up to GCS_MAVLINK 2018-05-07 11:30:13 -06:00
Peter Barker e4b4a746e6 GCS_MAVLink: move try_send_message handling of VIBRATION up
Also, use singleton to get ins
2018-05-07 11:23:28 -06:00
Andrew Tridgell a5fe798e7f GCS_MAVLink: we don't need the conversion helpers 2018-05-07 11:43:23 +10:00
Peter Barker bf124e9333 GCS_MAVLink: make send_parameter_value_all a GCS method rather than static 2018-05-01 09:39:01 +10:00
Randy Mackay e5c0b1814a GCS_MAVLink: remove underscore from method names 2018-04-19 13:38:22 +09:00
Vince Kurtz 2f81747112 GCS_MAVLink: fix VISP logging
log VISP messages for the ATT_POS_MOCAP mavlink message as well
2018-04-19 13:34:49 +09:00
Peter Barker 682679c68d GCS_MAVLink: use AP_ServoRelayEvents singleton 2018-04-18 20:31:55 +09:00
Tom Pittenger 63e42e194f GCS_MAVLink: send correct mission_ack result type
has no effect since the two typedef enums equated to same value
2018-04-18 12:02:43 +09:00
Michael du Breuil 6e9e9dcdfa GCS_MAVlink: Use RC_Channels instead of hal.rcin 2018-04-11 21:47:07 +01:00
Andrew Tridgell fd3037bbb7 GCS_MAVLink: add support for alternative protocol
this allows an alternative to MAVLink to be installed on a GCS
port. This is used for BLHeli passthru support
2018-04-07 09:10:29 +10:00
Randy Mackay 64be134f7b GCS_MAVLink: add VISP logging 2018-04-06 11:13:28 +09:00
Francisco Ferreira ac73fa9681
GCS_MAVLink: fix method shadowing 2018-04-03 16:29:33 +01:00
Peter Barker 4fd2ec1cef GCS_MAVLink: factor vehicle's mavlink send_heartbeat 2018-04-03 13:05:19 +01:00
Peter Barker 1f862e8192 GCS_MAVLink: serial control: avoid nullptr dererences 2018-04-02 23:29:33 +01:00
Peter Barker d2ab76b2c6 GCS_MAVLink: calibrate airspeed sensor if it is present 2018-04-02 23:25:05 +01:00
Peter Barker c6d7f5151a GCS_MAVLink: tidy handling of barometer calibrations 2018-04-02 23:25:05 +01:00
Peter Barker d878690d00 GCS_MAVLink: move common calibration functions up 2018-04-02 23:25:05 +01:00
Peter Barker f6b7ca75e9 GCS_MAVLink: allow Plane to override method so it can set calib. flag 2018-04-02 23:25:05 +01:00
Peter Barker 09d4e36970 GCS_MAVLink: handle preflight calibrations 2018-04-02 23:25:05 +01:00
Peter Barker c3e70e477d GCS_MAVLink: avoid using global chan to uart mapping
This is an instance method, so it has a pointer to its own
uart
2018-04-02 23:04:24 +01:00
Peter Barker 42547d2d6d GCS_MAVLink: allow extra mavlink port for packing vicon messages 2018-04-02 09:23:27 +09:00
Randy Mackay 428682c8e9 GCS_MAVLink: fix handling of global_vision_position_estimate 2018-03-30 18:21:48 +09:00
Peter Barker ac1a00739c GCS_MAVLink: remove msg_snoop functionality
inherit from GCS_MAVLink if you want to see mavlink traffic
2018-03-28 09:28:23 +09:00
Peter Barker 484d97597b GCS_MAVLink: pass mavlink acks into accelcal library if it exists 2018-03-28 09:28:23 +09:00
Michael du Breuil 97fce557f5 GCS_MAVLink: Support AFS changes 2018-03-27 22:12:21 +01:00
Peter Barker a5a36c04d1 GCS_MAVLink: feed vision position data into AHRS 2018-03-27 20:28:49 +09:00
Peter Barker ed5140307a GCS_MAVLink: move handling of visual odometry messages up 2018-03-23 09:28:07 +09:00
Peter Barker 0a08bba437 GCS_MAVLink: eliminate AP_HAL::Print and AP_HAL::Stream 2018-03-23 08:12:38 +11:00
Michael du Breuil 6652dd73e4 GCS_MAVLink: Correct sending SCALED_PRESSURE.press_diff
Closes #6642
2018-03-21 13:36:35 +00:00
Peter Barker bed3f0c344 GCS_MAVLink: move handling of get_home_position up 2018-03-19 10:32:37 +09:00
Peter Barker e9ecc11b00 GCS_MAVLink: use baro singleton 2018-03-08 21:20:05 -08:00
Peter Barker 9d381c26a7 GCS_MAVLink: use AHRS singleton 2018-03-07 12:34:39 +00:00
Dr.-Ing. Amilcar Do Carmo Lucas 03019918cc GCS_MAVLink: NFC adapt to new AP_Battery method name 2018-03-03 17:19:07 +00:00