Commit Graph

53 Commits

Author SHA1 Message Date
Peter Barker e29b6c3036 ArduCopter: create and use a singleton for SRV_Channels
avoid creation of static pointers to objects held within SRV_Channels
2024-11-13 19:47:49 +11:00
Peter Barker 5b69ff6e65 Copter: send RC_CHANNELS in SITL in compassmot loop
When setting an RC value in autotest, we require the change to appear in this message
2024-04-16 19:14:38 +10:00
Peter Barker d198c3e13d Copter: emit system time during compassmot on SITL
the autotest framework heavily relies on system_time being emitted -
because we're not running the main loop during compassmot it gets stuck
if we don't do this
2024-04-16 19:14:38 +10:00
Peter Barker 9c2d68bcd1 Copter: remove enable_motor_output method
this doesn't actually do what it says it does.  I think the functionality to set the motors armed was split out long ago but this little method and its misleading comments remained
2023-03-25 07:57:48 +09:00
Iampete1 ac94ba33ff ArduCopter: params always use set method 2022-08-03 13:43:48 +01:00
murata 08a1ad3c39 Copter: Change from division to multiplication 2022-03-16 18:41:52 +11:00
Peter Barker 709679ed60 Copter: compassmot: use is_positive for float comparison
tridge noted on the DevCall that very, very small numbers could yield
numerical errors during divisions further down
2022-01-05 10:46:14 +11:00
Peter Barker 9f17cd62a2 Copter: avoid division by zero in compass/motor interference calibration 2022-01-04 08:38:25 +09:00
Dr.-Ing. Amilcar do Carmo Lucas 181a5900df Copter: Send ESC telemetry over mavlink while doing compassmot
compassmot can be used to bypass all PID control loops (this avoids forwarding IMU noise to the motors) while stress-testing the ESCs+motors.
So that temperatures can be monitored in real-time during those long tests, send ESC telemetry as well.
2021-10-11 19:03:01 -04:00
Andrew Tridgell 0268506678 Copter: add pad fields for extended COMMAND_ACK 2021-08-19 12:08:54 +10:00
Peter Barker f7b877f4da ArduCopter: use AP::compass().available in place of enabled() 2021-07-30 12:19:42 +10:00
Andy Piper ef18b9f943 ArduCopter: only call init_rc_out() once to avoid losing MOT information 2021-05-12 21:02:42 +10:00
Siddharth Purohit b5cf1ecfe1 Arducopter: Primary Compass is always serial# 0 2020-02-19 13:59:53 +09:00
Peter Barker 1ff07762de Copter: remove report_compass method
This wasn't actually responsible for saving offsets any more.

The data spewed out was rather unlikely to be seen, and will be present
in logs anyway.
2020-01-04 10:46:51 +09:00
Randy Mackay bce5154b2d Copter: compassmot and motor_test set_soft_armed 2019-09-17 11:26:57 +09:00
Michael du Breuil b07d65c1f3 Copter: Refactor battery current monitoring 2019-07-14 00:28:00 -07:00
Peter Barker f3c1791341 Copter: stop passing gcs chan into method which wants an object 2019-06-25 09:45:54 +10:00
Peter Barker fa150bc982 Copter: remove loop-initialisation of output
Use brace initialisation instead.  This is the only loop in here which
loops over the max number of compasses vs the number of compasses.
2019-06-03 12:54:17 +09:00
Andrew Tridgell f55d9140e2 Copter: rename to EXPECT_DELAY_MS() 2019-05-15 15:33:48 +10:00
Andrew Tridgell bc2f5fa33b ArduCopter: use EXPECT_DELAY() macro 2019-05-15 15:33:48 +10:00
Andrew Tridgell f46207499a Copter: prevent reset on compassmot due to watchdog 2019-05-11 05:56:34 +10:00
Peter Barker 2040580ce7 Copter: move enabled parameter into compass library 2019-04-02 10:24:49 +11:00
Randy Mackay 346e9e36db Copter: remove compass accumulate 2018-08-06 11:05:34 +10:00
Randy Mackay f30d999e0b Copter: remove compassmot's compass init and accumulate
when compass mot is started, the main loop has been running so the compass will already have been initialised and have good readings
Also remove unnecessary call to get_primary compass
2018-08-02 12:26:14 +09:00
Randy Mackay 6b50a810f6 Copter: compassmot format fixes 2018-08-02 12:26:14 +09:00
Michael du Breuil 291531e056 Copter: Support new battery failsafes 2018-03-27 22:12:21 +01:00
Peter Barker 9cffa13f7b Copter: correct mav result for compass motor calibration on heli 2018-02-24 00:27:41 +00:00
Andrew Tridgell 23b20307af Copter: use cork/push wrapper 2017-11-21 14:10:54 +11:00
Peter Barker b0c7766197 Copter: continuously reevaluate rc calibration checks
Stop "latching" calibration checks - if an RC radio's calibration
changes after it passes once, these patches allow the rc calibraiton
checks to then fail.
2017-08-21 09:05:31 +09:00
Peter Barker d9b45cc202 Copter: create GCS subclass, use inheritted methods 2017-07-07 16:18:37 +01:00
Randy Mackay a0c5ac1949 Copter: fix compassmot for oneshot ESCs 2017-05-23 13:11:46 +09:00
Peter Barker f49f153da0 Copter: rename gcs[] to gcs_chan[]
Wish to use gcs() to return the gcs singleton
2017-02-13 09:32:01 +11:00
Peter Barker ab13b3beaf Copter: make rc checks verbose on failure 2017-01-20 13:02:53 +09:00
Peter Barker ac980fdd47 Copter: use compass_checks from AP_Arming
User-visible changes:
 - checks will fail if calibration is in progress
 - PX4FMU_V1 will now have COMPASS_OFFSETS_MAX of 600, not 500
 - if the primary compass is not set to be used then compass checks will always pass
2017-01-17 11:45:08 +09:00
Peter Barker bd6ffc025e Copter: start conversion to AP_Arming_Copter 2017-01-17 11:45:08 +09:00
Andrew Tridgell 0f6d0c5ba9 Copter: combined tri, single, coax and multicopter into a single build
this allows copter to be just 2 builds, one for heli, and one for
everything else
2017-01-12 17:39:37 +11:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
murata 7148cc6239 Copter: Return value is changed to Enum Value. 2016-10-05 08:25:15 -03:00
Randy Mackay f28666e7cd Copter: pass throttle for esc calibration in 0 to 1 range 2016-05-24 10:00:25 +09:00
skyscraper 6f200fa923 ArduCopter: Fix up after refactoring RC_Channel class
Further to refactor of RC_Channel class which included
adding get_xx set_xx methods, change reads and writes to the public members
to calls to  get and set functionsss

old public member(int16_t)   get function -> int16_t     set function (int16_t)
(expression where c is an object of type RC_Channel)
c.radio_in                     c.get_radio_in()           c.set_radio_in(v)
c.control_in                   c.get_control_in()         c.set_control_in(v)
c.servo_out                    c.get_servo_out()          c.set_servo_out(v)
c.pwm_out                      c.get_pwm_out()            // use existing
c.radio_out                    c.get_radio_out()          c.set_radio_out(v)
c.radio_max                    c.get_radio_max()          c.set_radio_max(v)
c.radio_min                    c.get_radio_min()          c.set_radio_min(v)
c.radio_trim                   c.get_radio_trim()         c.set_radio_trim(v);

c.min_max_configured() // return true if min and max are configured

Because data members of RC_Channels are now private and so cannot be written directly
 some overloads are provided in the Plane classes to provide the old functionality

new overload Plane::stick_mix_channel(RC_Channel *channel)
which forwards to the previously existing
void stick_mix_channel(RC_Channel *channel, int16_t &servo_out);

new overload Plane::channel_output_mixer(Rc_Channel* , RC_Channel*)const
which forwards to
(uint8_t mixing_type, int16_t & chan1, int16_t & chan2)const;

Rename functions

 RC_Channel_aux::set_radio_trim(Aux_servo_function_t function)
    to RC_Channel_aux::set_trim_to_radio_in_for(Aux_servo_function_t function)

 RC_Channel_aux::set_servo_out(Aux_servo_function_t function, int16_t value)
    to RC_Channel_aux::set_servo_out_for(Aux_servo_function_t function, int16_t value)

 Rationale:

        RC_Channel is a complicated class, which combines
        several functionalities dealing with stick inputs
        in pwm and logical units, logical and actual actuator
        outputs, unit conversion etc, etc
        The intent of this PR is to clarify existing use of
        the class. At the basic level it should now be possible
        to grep all places where private variable is set by
        searching for the set_xx function.

        (The wider purpose is to provide a more generic and
        logically simpler method of output mixing. This is a small step)
2016-05-10 16:21:16 +10:00
Randy Mackay 472f54ce45 Copter: initialise compass_mot interference_pct variable
resolves a compiler warning
2016-04-23 23:06:28 -07:00
Lucas De Marchi 2591261af6 Global: rename min and max macros to uppercase
The problem with using min() and max() is that they conflict with some
C++ headers. Name the macros in uppercase instead. We may go case by
case later converting them to be typesafe.

Changes generated with:

	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)max(/\1MAX(/g'
	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)min(/\1MIN(/g'
2015-12-01 16:28:09 -02:00
Luis Vale Gonçalves 3199829d45 Copter: revisions to text strings sent to GCS 2015-11-27 16:16:58 +09:00
Caio Marcelo de Oliveira Filho c7acc46d09 Copter: use millis/micros/panic functions 2015-11-20 12:26:31 +09:00
lvale 549695181c Copter: revised and uniformization of severity messages 2015-11-05 12:20:49 +09:00
Lucas De Marchi 89fc4f4b62 Replace use of send_text_P() with send_text() 2015-10-30 14:35:17 +09:00
Lucas De Marchi 2c38e31c93 Remove use of PSTR
The PSTR is already define as a NOP for all supported platforms. It's
only needed for AVR so here we remove all the uses throughout the
codebase.

This was automated with a simple python script so it also converts
places which spans to multiple lines, removing the matching parentheses.

AVR-specific places were not changed.
2015-10-30 14:35:04 +09:00
Gustavo Jose de Sousa fb5320bb25 ArduCopter: use compass get_{field,offsets}() functions
Both functions are equivalent, so we're going to simply use
get_{field,offsets}() instead of get_{field,offsets}_milligauss().
2015-10-15 19:56:05 +09:00
Staroselskii Georgii 68e0d57998 Copter: make Copter use milligauss
The telemetry and and logging is still in compass units, though. This
way, users won't need to recalibrate their compasses.
2015-09-09 10:38:16 +10:00
squilter 767b4da5b6 Copter: update send text severities 2015-08-25 14:05:25 +09:00