Commit Graph

1279 Commits

Author SHA1 Message Date
Andrew Tridgell e6c5382a28 GCS_MAVLINK: fixed FPE in DO_SET_ROI
this prevents a floating point exception when MissionPlanner sends an
invalid DO_SET_ROI

See https://github.com/ArduPilot/MissionPlanner/issues/2528
2020-12-28 11:53:03 +11:00
Dr.-Ing. Amilcar do Carmo Lucas d76825feeb GCS_MAVLink: adapt to upstream changes in the distance_sensor mavlink message 2020-12-19 19:54:03 +11:00
Andrew Tridgell 6df118e7b4 GCS_MAVLink: convert to using hal.serial() instead of hal.uartX 2020-12-15 10:32:46 +11:00
Dr.-Ing. Amilcar do Carmo Lucas 1d0e7d2974 GCS_MAVLink: Added cells 11...14 voltage information (13 and 14 are 0 for now) 2020-12-11 06:37:32 +11:00
Andrew Tridgell 5e3bf0a703 GCS_MAVLink: implement BRD_OPTIONS bit for setting of internal parameters 2020-12-08 13:22:17 +11:00
Andrew Tridgell 8b5ff1a6de GCS_MAVLink: enable GCS_SEND_TEXT() to send as CAN LogMessage messages 2020-12-04 15:16:21 +11:00
Peter Barker 88895f9b13 GCS_MAVLink: stop using one backend's signing structure for all backends 2020-11-30 14:11:08 +11:00
Gone4Dirt caf1ad28d5 GCS_Common: AP_Generator_Richenpower is now AP_Generator 2020-11-24 12:54:52 +11:00
Peter Barker f0c22244a5 GCS_MAVLink: correct response codes when mode change fails
Was "UNSUPPORTED", which is supposed to mean, "Command is not supported"

Now is either "DENIED" (Command is invalid (is supported but has invalid
parameters)) or "FAILED" (Command is valid, but execution has failed.)

We should probably returned DENIED if we try to change to a mode which
doesn't exist, but that would require another callback on AP_Vehicle.
It would also lead to questions around what a valid mode is - so
QSTABILIZE if quadplane is disabled in Plane, for example.
2020-11-24 10:09:37 +11:00
Hwurzburg 6eca18c08b GCS_MAVLink: add Board option to disable MAVftp in low mem bds/apps 2020-11-17 10:41:59 +11:00
Andrew Tridgell 9c74474196 GCS_MAVLink: setup baudrates for passthru serial ports 2020-11-17 10:26:14 +11:00
Peter Barker 41943f5fda GCS_MAVLink: correct use of uninitialised value in Rally upload 2020-11-11 18:22:58 +11:00
Andy Piper 4d1c660ebc GCS_MAVLink: enable OSD parameters on parameter enablement 2020-11-11 18:13:11 +11:00
Andrew Tridgell 147df12eb8 GCS_MAVLink: allow replay to use GCS_Dummy 2020-11-10 16:15:45 +11:00
Tatsuya Yamaguchi e1126d4fd6 GCS_MAVLink: use micro64 instead of micros for time_usec 2020-10-27 15:37:29 +11:00
Iampete1 73594cb19b GCS_MAVLink: send airspeed temp in scaled_pressure 2020-10-27 11:24:49 +11:00
Peter Barker 74f75dcd31 GCS_MAVLink: fill AUTOPILOT_VERSION.uid2 from get_system_id_unformatted 2020-10-21 18:26:12 +11:00
Peter Barker 7c8df47ac9 GCS_MAVLink: process messages sent to broadcast system
.... even if we've forwarded them to someone else.
2020-10-21 18:22:48 +11:00
Peter Barker d3ba7a8409 GCS_MAVLink: don't learn a route to the broadcast component
Using a component ID of 0 for your source is invalid according to
common.xml

However, some clients do use it.

This stops us learning a route to that client for the broadcast client
for our own system ID.
2020-10-21 18:22:48 +11:00
murata 6304ade668 GCS_MAVLink: Change to leave the lower 16 bits. 2020-10-13 12:06:18 +11:00
Andrew Tridgell e346cd3c80 GCS_MAVLink: fixed use of incorrect millis16() values 2020-10-12 13:48:15 +11:00
Peter Barker 45f7322af6 GCS_MAVLink: avoid catching up on sending messages when sending disrupted
The code here was never meant to maintain an "average" streamrate.  It
was designed so that we would maintain a consistent clock in the face of
minor scheduling anomalies (like an EKF fusion step).

The way this is written, however, makes us spit out a message for each
of the intervals we missed - clearly not intended behaviour.

This was tested by inserting the following code:

 void GCS_MAVLINK::update_send()
 {
+    const uint32_t xnow = AP_HAL::millis();
+    if (xnow > 10000 &&
+        xnow < 20000) {
+        return;
+    }
+
2020-10-12 13:48:15 +11:00
Patrick José Pereira 8701e3626d GCS_MAVLink: Update GCS_Dummy to use new AP_FWVersionDefine header
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-10-07 19:32:12 +11:00
Peter Barker 7cb8cde417 GCS_MAVLink: move orderly rebooting code from GCS into AP_Vehicle
Several places we reboot the vehicle we should probably do several of
the things done in this code - flushing parameters, forcing safety on
etc.
2020-09-29 18:07:59 +10:00
yaapu e7a49dd624 GCS_Mavlink: refactor zero_rc_outputs() out of GCS_Mavlink 2020-09-29 18:07:59 +10:00
Peter Barker 0c88af99da GCS_MAVLink: revert removal of private channel check when forwarding
This reverts 6dc77c97ce

The commit caused a regression on Solo as the gimbal is "nodding",
indicating traffic from the autopilot is getting through to the gimbal.
2020-09-25 09:42:27 +10:00
Andy Piper 5d487be242 GCS_MAVLink: squash enum type error 2020-09-22 09:37:02 +10:00
Andy Piper 8b766efb0a GCS_MAVLink: add support for updating OSD parameters over mavlink 2020-09-09 20:36:42 +10:00
Andrew Tridgell 74686f8dc4 GCS_MAVLink: fixed locking of mavlink in serial control
this fixes takeover of mavlink ports for high serial numbers
2020-09-08 09:01:16 +10:00
Sharvashish Das 80e2dbc9f2 GCS_Common: send_local_position uses offset from origin 2020-09-01 10:27:18 +10:00
Andrew Tridgell 30f9fd9d2a GCS_MAVLink: fixed overrun of text passed to other libraries
this caused corruption in log files, and was passing a
non-nul-terminated string to notify and other libraries
2020-08-28 17:35:17 +10:00
Siddharth Purohit 42f5f986d8 GCS_MAVLink: use AP_CANManager library
also add support for handling enumeration cmd by KDETest
2020-08-19 17:31:09 +10:00
Peter Barker 0e284b95b0 GCS_MAVLink: move battery type enumeration out of parameters object 2020-08-11 13:21:52 +10:00
Michael du Breuil 6dc77c97ce GCS_MAVLink: Remove redundant check for private channels
We can't learn the route for sending to a private channel, so we
shouldn't need to actually check it when iterating the routes.
2020-08-11 09:49:42 +10:00
Randy Mackay 1a3ef62b84 GCS_MAVLink: add virtual send_winch_status 2020-08-07 21:55:07 +09:00
Siddharth Purohit 1a08252504 GCS_MAVLink: add support for bank selection on SPI DEVICE_OPs 2020-08-06 12:41:35 +10:00
elhayra 9b3a574775 GCS_MAVLink: sending UAVCAN MAVlink ESC messages 2020-08-06 09:28:35 +10:00
Andy Piper e91ae19544 GCS_MAVLink: make mount/gimbal configurable on a per-board basis 2020-08-04 09:18:14 +10:00
Dr.-Ing. Amilcar do Carmo Lucas 7067cbdafd GCS_Mavlink: Adapt to upstream mavlink changes to the SCALED_PRESSURE message 2020-07-29 14:34:22 +10:00
Michael du Breuil 6773821b3b GCS_MAVLink: Don't forward MAVLink data on channels marked private, make private channels more private 2020-07-22 07:17:49 +10:00
Andy Piper 05416daef3 GCS_Mavlink: output fast sampling startup messages 2020-07-10 16:45:29 +10:00
Andrew Tridgell 5a18b16f69 GCS_MAVLink: use strncpy_noterm 2020-07-10 13:32:24 +10:00
Andrew Tridgell 9466e7e71e GCS_MAVLink: make correct_offboard_timestamp_usec_to_ms protected
for use by vehicle code
2020-07-10 13:28:38 +10:00
Andrew Tridgell 91aaa7876d GCS_MAVLink: reserve another mavlink channel
for SimShip
2020-07-10 13:28:38 +10:00
Peter Barker 741520d598 GCS_MAVLink: find next bucket to send when sending-ids emptied on msg removal
We need to find the next bucket of messages to send when we've removed
the last message id from the current set of IDs we're sending out - not
just when we've empted the bucket the messages came from in the first
place.

An internal check caught this bug - the
'next_deferred_bucket_message_to_send called on empty bucket' error
2020-07-07 10:49:31 +10:00
Andrew Tridgell 90232fa6c0 GCS_MAVLink: fixed alignment errors in FTP server 2020-07-07 10:23:00 +10:00
Peter Barker e2056f56e3 GCS_MAVLink: support for sending generator message 2020-07-03 08:21:42 +09:00
Randy Mackay 03ea646e50 GCS_MAVLink: send_battery_status uses memcpy for cell voltages
Co-authored-by: WickedShell <Wicked.Shell.Scripts@gmail.com>
2020-06-24 10:19:15 +09:00
Randy Mackay 65aea0e9c1 GCS_MAVLink: send_battery_status sends min of cell 10 11 and 12 2020-06-24 10:19:15 +09:00
Michael du Breuil 7fae084793 GCS_MAVLink: Only send a single battery status per call 2020-06-23 09:18:56 +10:00
Peter Barker e4621e6921 GCS_MAVLink: do not process commands after we have decided to reboot 2020-06-17 11:54:03 +10:00
chobits 991387dbfb GCS_MAVLink: support covariance field in vis pose msg 2020-06-09 13:31:21 +09:00
Peter Barker f158533fe9 GCS_MAVLink: allow private channels to also be active
This will allow for logging of private channels.
2020-06-09 10:37:32 +10:00
Peter Barker 06012cbc56 GCS_MAVLink: cope with RingBuffer rename if empty() to is_empty() 2020-06-09 10:21:48 +10:00
Peter Barker b428f12913 GCS_MAVLink: add and use accessor for last-RADIO_STATUS.remrssi-ms 2020-06-09 10:20:29 +10:00
Peter Barker 07e3f1d48f GCS_MAVLink: add RADIO_STATUS.rssi as an AP_RSSI telemetry source 2020-06-09 10:20:29 +10:00
Peter Barker c1de346150 GCS_MAVLink: avoid copying data twice in ftp transfers 2020-06-07 08:51:09 +10:00
chobits ff6e4c4f9a GCS_MAVLink: support VISION_SPEED_ESTIMATE 2020-06-01 17:51:24 +09:00
Andrew Tridgell fc28cd4fa2 GCS_MAVLink: fixed a ftp duplicate reply
this fixes a bug in burst replies where the duplicate reply may have
the wrong offset. This causes the "paramftp bad type" error
2020-05-14 09:53:42 +10:00
Peter Barker 5100c9fb8c GCS_Common: whitelist AUTOPILOT_VERSION for in_delay_callback sending
GCSs may request this very early on in the boot process, particularly
for SITL.

If we try to send it during a delay callback then we end up dropping it
at the moment - but we'd already sent the ack in response to the
request.
2020-05-11 15:22:38 +10:00
Andrew Tridgell 87c2858bde GCS_MAVLink: give banner on param download with ftp
thanks to Peter for noticing
2020-05-10 15:10:21 +10:00
Andy Piper da166b256d GCS_MAVLink: add messages to Spektrum telemetry if it is enabled 2020-05-05 09:23:15 +10:00
Peter Barker 81454c7a40 GCS_MAVLink: create and use INTERNAL_ERROR macro so we get line numbers 2020-04-30 13:21:36 +10:00
Andrew Tridgell 7571e616de GCS_MAVLink: handle session timeout due to lost packets
and fixed handling of losing last pkt in a burst
2020-04-29 07:36:55 +10:00
Andrew Tridgell 65e790a48c GCS_MAVLink: invalidate param count on set of ENABLE param 2020-04-29 07:36:55 +10:00
Andrew Tridgell 7cd901fa5b GCS_MAVLink: enable ftp without filesystem
allows for @PARAM and @SYS
2020-04-29 07:36:55 +10:00
Andrew Tridgell 6811d79b6f GCS_MAVLink: define GCS_SEND_TEXT() globally
used to avoid linking GCS in AP_Periph
2020-04-29 07:36:55 +10:00
Peter Barker 26b88823f4 GCS_MAVLink: correct out-of-space-to-send call in HAVE_PAYLOAD_SPACE 2020-04-27 15:30:30 +10:00
Peter Barker 8b0b644c11 GCS_MAVLink: correct check for payload space for COMMAND_ACK 2020-04-27 15:30:30 +10:00
Peter Barker 668e0d0e65 GCS_MAVLink: check for empty replies queue first thing in send_ftp_replies
Will save us a little time on average
2020-04-27 15:30:30 +10:00
Randy Mackay 6f8176c71e GCS_MAVLink: remove ahrs3 2020-04-22 14:11:17 +09:00
Peter Barker 8b9281eaa1 GCS_MAVLink: log number of times message not sent due to no space 2020-04-17 22:21:14 +10:00
Peter Barker 41ada7f8f4 GCS_MAVLink: document the payload-space macros 2020-04-17 10:20:49 +10:00
Randy Mackay c39fef6c56 GCS_MAVLink: pass vision-position-estimate reset_counter to AP_VisualOdom handler 2020-04-14 10:28:03 +10:00
Randy Mackay 9769f08fd9 GCS_MAVLink: visual odometry build fixes 2020-04-09 19:41:08 +09:00
Randy Mackay a9c1eb5af4 GCS_MAVLink: fill in sys_status vision position bits 2020-04-09 19:41:08 +09:00
Randy Mackay a1ddd55ea5 GCS_MAVlink: AP_integrate of rename to handle_vision_position_delta_msg 2020-04-09 19:41:08 +09:00
Randy Mackay 728e8b45a9 GCS_MAVLink: use AP_VisualOdom to handle vision-position-estimate messages 2020-04-09 19:41:08 +09:00
Siddharth Purohit b0cbbb4bea GCS_Common: fix unannotated fall-through between switch labels 2020-04-01 17:10:36 +11:00
Andrew Tridgell 21e93dae34 GCS_MAVLink: send only old value for readonly param set
this prevents a condition where the GCS can display the wrong value if
the 2nd PARAM_VALUE is lost

Note that groundstations can tell the set failed due to readonly in
the following ways:

 1) look for the statustext: Param write denied (PARAMNAME)

 2) see that the value came back with the old value, with index of
   65535

 3) can repeat the send, looking for (1) and (2)

Michael has proposed we add a PARAM_VALUE mavlink2 flags
extension. That would be nice, but we should still make this change to
fix the issue with mavlink 1.0
2020-03-31 11:19:58 +11:00
Peter Barker 55d37e5d0e GCS_MAVLink: correct slowing down of waypoint re-requests
These re-requests shouldn't be slowed down by a factor of 20.

This was a left-over from when we did these in terms of 20ms intervals
(50Hz loop rate)
2020-03-31 11:15:04 +11:00
Peter Barker ca7fcc093c GCS_MAVLink: correct return type on get_stream_slowdown_ms
Only used in one place.  On slow links may have caused us to re-request
a waypoint too often.  "Too often" is still >1s intervals.
2020-03-31 11:15:04 +11:00
Peter Barker 0b756547be GCS_MAVLink: add stream_slowdown to MAV message 2020-03-31 11:13:11 +11:00
Peter Barker 7028f1adba GCS_MAVLink: GCS_FTP: remove redundant more_pending variable
This is taken care of by the "break" statements
2020-03-31 10:38:13 +11:00
Peter Barker a09ac895e9 GCS_MAVLink: remove dead assignment
This value is never used
2020-03-31 10:38:13 +11:00
Michael du Breuil 18baf18041 GCS_MAVLink: Remove redundant assignment to the command
This is done internally by the conversion to mission_item_int_t
2020-03-31 10:35:49 +11:00
Randy Mackay ecf5abc1f2 GCS_MAVLink: minor format fix 2020-03-30 20:20:08 +09:00
Andrew Tridgell e7fdf8fad1 GCS_MAVLink: reduced delay between ftp packets 2020-03-28 15:28:03 +11:00
Andrew Tridgell 5c9ae33151 GCS_MAVLink: support variable sized packets in burst read
this allows packet size to be tailored to the transport
2020-03-28 15:28:03 +11:00
Andrew Tridgell 8a84dbc19e GCS_MAVLink: slow down telemetry during ftp 2020-03-28 15:28:03 +11:00
Andrew Tridgell c1d4a5bd35 GCS_MAVLINK: prevent closedir() with nullptr 2020-03-28 15:28:03 +11:00
Andrew Tridgell 28082774b6 GCS_MAVLink: use new DirHandle for directory listings 2020-03-28 15:28:03 +11:00
Peter Barker 97b07d9c84 GCS_MAVLink: add option to get the autopilot to hard-fault itself 2020-03-19 16:03:58 +11:00
Andrew Tridgell 39fc324854 GCS_MAVLink: convert to new get_rpm() API 2020-03-12 08:36:40 +11:00
Andrew Tridgell aaf828c9d4 GCS_MAVLink: consider NO_CHANGE as success for bootloader flash
this prevents GCS users from seeing "update failed"
2020-03-11 16:30:06 +11:00
Peter Barker ebfa910774 GCS_MAVLink: GCS_Dummy: add missing CR to console output of statustexts
send_text and friends don't expect the caller to add the CR; the GCS
will add one.  Since we're jsut emitting to console, add one ourselves.
2020-03-10 19:07:08 +11:00
Rishabh f3e66055e5 GCS_MAVLink: Alert GCS if user tries calibration while vehicle is armed 2020-03-03 11:37:19 +11:00
Peter Barker fbe2e75b9f GCS_MAVLink: divide time allowed to send messages fairly 2020-02-27 08:49:59 +11:00
Peter Barker 727c12c388 GCS_MAVLink: move initialisation of serial and gcs to AP_Vehicle 2020-02-25 11:50:55 +11:00
Peter Barker e2c9f6a8a1 GCS_MAVLink: add flags to MAV dataflash log
holds various pieces of simple information about a link
2020-02-25 10:59:22 +11:00