Commit Graph

320 Commits

Author SHA1 Message Date
Peter Barker d18dee178d AP_Mount: remove pointless includes 2019-02-19 09:16:26 +11:00
Tom Pittenger 4e9d026448 AP_Mount: remove HAL_CPU_CLASS_150 check, 150 is already a minimum requirement 2019-02-17 13:00:13 -08:00
Tom Pittenger 3bbd80a5de AP_Mount: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
Matt e7dcee0dd8 AP_Mount: Solo gimbal params use HAVE_PAYLOAD_SPACE
Adds the HAVE_PAYLOAD_SPACE check to the solo gimbal's driver.
2019-01-22 12:46:49 +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 2f3237143f AP_Mount: adjust for Location_Class and Location unification 2019-01-16 11:45:29 +11:00
Peter Barker 828317860a AP_Mount: adjust for location flags being moved out of union 2019-01-16 11:45:29 +11:00
Michael du Breuil 4b642f8895 AP_Mount: Remove unneeded AP_Buffer include 2018-12-31 11:41:43 +09:00
Pierre Kancir f1aa4f3f87 AP_Mount: pass vector by const reference 2018-12-22 08:31:32 +09:00
Randy Mackay 9767c74311 AP_Mount: angle_input uses norm_input 2018-12-06 08:00:18 +09:00
Randy Mackay 5046c7fb91 AP_Mount: fix gimbal move to extreme before TX turned on 2018-12-06 08:00:18 +09:00
Andrew Tridgell f6d564599e AP_Mount: mark gimbal channel as private 2018-11-24 11:00:37 +11:00
Andrew Tridgell 8f709b7a34 AP_Mount: fixed build warning 2018-11-11 07:08:59 +11:00
Peter Barker be53782ef1 AP_Mount: add override keyword where required 2018-11-08 11:30:12 +11:00
Peter Barker 0afc9bf724 AP_Mount: SoloGimbal: avoid calling safe_sqrtf 2018-11-05 16:24:29 +11:00
Peter Barker 126065e95c AP_Mount: trim out dead getDebug method 2018-11-05 16:24:29 +11:00
Peter Barker 8641dcbc31 AP_Mount: SoloGimbal: stop taking reference to AHRS 2018-11-05 11:41:31 +09:00
murata 998dd7207f AP_Mount: Change from sqrt to safe_sqrt 2018-11-03 15:23:08 +09:00
Michael du Breuil 922d593f3d AP_Mount: Fix strncpy warning 2018-10-30 16:17:03 -07:00
Michael du Breuil dda7c615a8 AP_Mount: Suppress clearing non-trival type warning 2018-10-30 16:17:03 -07:00
Peter Barker 178d26f8e3 AP_Mount: add general function for handling mavlink messages
AP_Mount: const parameters, add overrides, remove bad virtual declarations

AP_Mount: use AHRS singleton

AP_Mount: make status_msg pure-virtual and add override keyword

AP_Mount: handle deprecated mavlink control and configure msgs

AP_Mount: handle MAV_CMD_DO_MOUNT_CONFIGURE

AP_Mount: rename status_msg method to send_mount_status
2018-10-30 17:19:14 +11:00
Peter Barker 4ae6aeed7e AP_Mount: add singleton 2018-10-30 17:19:14 +11:00
Peter Barker c73beffe1b AP_Mount: factor out a rate_input_rad, const various functions 2018-10-30 11:07:53 +11:00
Peter Barker 0142265f67 AP_Mount: make a copy of ID for mavlink_msg_param_set_send
The send function is expecting an array of the full length, so passing i
na null-terminated char* may result in uninitialised data (or
information leak)
2018-10-20 10:17:50 +11:00
Patrick José Pereira 0f42702910 AP_Mount: Remove unused check
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2018-08-27 23:35:34 +01:00
Peter Barker 2489234fcf AP_Mount: use rc() method to get rc singleton 2018-08-01 12:11:30 +09:00
Peter Barker 57bc4d8736 AP_Mount: remove un-needed initialisations
These objects should always be created with new() or statically.
2018-07-23 13:18:37 +09:00
Michael du Breuil 1e7a06ef6b AP_Mount: Remove unused ADC include 2018-07-17 09:29:50 +10:00
Peter Barker 9f556197a0 AP_Mount: use ins singleton 2018-03-16 00:37:35 -07:00
Peter Barker 0652c89844 AP_Mount: use dataflash singleton
Closes #7550
2018-03-15 07:57:50 +09:00
Peter Barker ea75dd2d59 AP_Mount: correct compiler warnings
In file included from ../../libraries/AP_Mount/SoloGimbal.cpp:5:
../../libraries/AP_Mount/SoloGimbal.h:122:11: warning: private field
'_yaw_rate_ff_ef_filt' is not used [-Wunused-private-field]
    float _yaw_rate_ff_ef_filt;
          ^
../../libraries/AP_Mount/SoloGimbal.h:140:23: warning: private field
'_chan' is not used [-Wunused-private-field]
    mavlink_channel_t _chan;
                      ^
2 warnings generated.
2018-03-02 09:26:37 +09:00
Peter Barker fb3cba3867 AP_Mount: use GPS singleton 2017-12-27 00:58:02 +00:00
Andrew Tridgell 3d2c81ff05 AP_Mount: removed create() method for objects
See discussion here:

  https://github.com/ArduPilot/ardupilot/issues/7331

we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach

Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Lucas De Marchi 563f9bfe89 AP_Mount: add static create method 2017-09-26 03:01:21 +01:00
Lucas De Marchi b3d8c0fc08 AP_Mount: use DataFlash_Class::instance()
Instead of requiring DataFlash_Class reference to be passed
on the init() function, get it from the singleton directly.
2017-09-26 03:01:21 +01:00
Dr.-Ing. Amilcar Do Carmo Lucas 823bf217d9 AP_Mount: Use SI units conventions in parameter units
Follow the rules from:
http://physics.nist.gov/cuu/Units/units.html
http://physics.nist.gov/cuu/Units/outside.html
and
http://physics.nist.gov/cuu/Units/checklist.html
one further constrain is that only printable (7bit) ASCII characters are allowed
2017-05-17 18:07:25 +10:00
Pierre Kancir 0be022694a AP_Mount: example fix travis warning
missing function declaration
implicit cast
some style fix
2017-04-13 19:56:16 +01:00
Michael du Breuil 7f11cf3ca6 AP_Mount: Remove solo gimbal from the minimal build support 2017-03-06 11:53:08 +11:00
murata 2d32211c81 AP_Mount: Unify from print or println to printf. 2017-01-27 18:20:22 +11:00
Andrew Tridgell 4173432542 AP_Mount: adapt to new RC_Channel API 2017-01-12 17:39:37 +11:00
Nacho Carnicero bc9facf608 AP_Mount: Fix Alexmos gimbal Mavlink targeting mode 2017-01-05 02:16:32 +00:00
priseborough 6d086e0c31 AP_Mount: remove EKF1 2016-12-19 08:07:10 +11:00
Przemek Lekston 6d65b351cd AP_Mount: allow computation of gps point target in earth fixed frame 2016-12-01 18:42:48 +09:00
murata c808ee2f49 Global: To nullptr from NULL.
RC_Channel: To nullptr from NULL.

AC_Fence: To nullptr from NULL.

AC_Avoidance: To nullptr from NULL.

AC_PrecLand: To nullptr from NULL.

DataFlash: To nullptr from NULL.

SITL: To nullptr from NULL.

GCS_MAVLink: To nullptr from NULL.

DataFlash: To nullptr from NULL.

AP_Compass: To nullptr from NULL.

Global: To nullptr from NULL.

Global: To nullptr from NULL.
2016-11-02 16:04:47 -02: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
Lucas De Marchi ae53920e5b build: don't build examples with old build system
We currently check examples are buildable with waf which doesn't need
the libraries to be specified in a make.inc file.  Having the makefiles
there is misleading since people try to build and realize the build is
broken.
2016-10-11 13:03:08 +11:00
Murilo Belluzzo 077e03678f Global: Adapt Stream class to be used with Ringbuffer 2016-08-03 01:44:02 -03:00
Andrew Tridgell 1f2216982d AP_Mount: fixed typo 2016-07-01 15:35:34 +10:00
Gustavo Jose de Sousa f9cb760691 AP_Mount: use ARRAY_SUBSCRIPT instead of bytes field
That fixed compilation issues and seems more semantically correct. Using array
of length 0 fails compilation because of -Werror=array-bounds in GCC 6.1.
2016-06-23 21:02:05 -03:00
Andrew Tridgell ac8c4d9beb AP_Mount: use zero length flexible arrays in unions 2016-05-25 19:55:49 +10:00
Andrew Tridgell f377787444 AP_Mount: always build with MAVLink2 headers 2016-05-21 15:25:16 +10:00
Andrew Tridgell ec62d8f4ca AP_Mount: use HAVE_PAYLOAD_SPACE() 2016-05-21 15:25:14 +10:00
Andrew Tridgell 0ef5d8995b AP_Mount: support mavlink2 build 2016-05-21 15:25:12 +10:00
Lucas De Marchi 421b9ef54a AP_Mount do not use flexible array in union
We actually don't want a flexible array in this union, but rather a way
to access it byte by byte. This fixes the build for gcc >= 6

In file included from ../../libraries/AP_GPS/AP_GPS_UBLOX.cpp:23:0:
../../libraries/AP_GPS/AP_GPS_UBLOX.h:387:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_Mount/AP_Mount.cpp:9:0:
../../libraries/AP_Mount/AP_Mount_Alexmos.h:291:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.
2016-05-16 13:50:56 -03:00
Ricardo de Almeida Gonzaga fcbed13533 AP_Mount: Fix typos 2016-05-13 19:20:06 -03:00
proficnc 20a569a4d5 AP_Mount: block forwarding of MAVlink by bitmask 2016-05-12 17:44:09 +10:00
dgrat 6d3b491c02 AP_Math: Replace is_equal with a type safe template function
It makes sense to consider also other floating point types.
2016-05-10 11:41:26 -03:00
dgrat 41661f815f AP_Math: Replace the pythagorous* functions with a variadic template
The new function can deal with a variable number of function parameters.
Additionally, I renamed the functions to norm(), because this is the
standard name used in several other projects.
2016-05-10 11:41:26 -03:00
skyscraper 8b9c96814b AP_Mount: Fix up after RC_Channels refactor
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:15 +10:00
Lucas De Marchi 3a771bf0e3 AP_Mount: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Randy Mackay e502e0fc2e SoloGimbal: resolve compiler warning re float comparison 2016-03-01 21:51:43 +09:00
Randy Mackay 438769c8ae SoloGimbal: resolve compiler warning re initialisation order 2016-03-01 21:51:41 +09:00
dgrat 5148e41c1a AP_Math: Cleaned macro definitions
Moved Definitions into a separate header. Replaced PI with M_PI and
removed the M_PI_*_F macros.
2016-02-27 02:51:33 -03:00
Tom Pittenger a9c985bfb3 AP-Mount: compiler warning
ardupilot/libraries/AP_Mount/SoloGimbal_Parameters.cpp:193:107: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
2016-02-17 14:54:31 -08:00
Peter Barker 09525e8568 AP_Mount: remove redundant include dependant on bad #define 2016-01-30 12:48:05 -02:00
Jonathan Challinger 5b834330cb AP_Mount: merge SoloGimbal from solo master 2016-01-23 10:35:40 +09:00
Jonathan Challinger eabede692e AP_SmallEKF: move to AP_Mount/SoloGimbalEKF and merge solo version 2016-01-23 10:35:38 +09:00
Gustavo Jose de Sousa c2e3f05dbf waf: ardupilotwaf: prefix build context methods with ap_
It helps to distinguish between things from waf and things from ardupilotwaf.
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa 3d22490397 waf: examples: use methods from bld instead of ardupilotwaf 2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa d281067bcc waf: make example binaries be placed in 'examples' dir
This commit makes examples' wscripts use ardupilotwaf.example() instead of
ardupilot.program().
2016-01-15 16:46:41 -02:00
Randy Mackay ccd3725f63 AP_Mount_Servo: remove out of date comment 2016-01-04 11:23:41 +09:00
Jonathan Challinger 62701448ca AP_Mount: fix example build 2015-12-29 10:46:35 -08:00
Lucas De Marchi a096703b06 Global: don't link with AP_Progmem
AP_Progmem is not used anymore.
2015-12-27 15:58:12 -02:00
Don Gagne 964d02065a Mount: add missing RebootRequired to param description 2015-12-26 10:06:14 +09:00
Jonathan Challinger 63caca1d3f AP_Mount: reflect renamed function in AP_AHRS 2015-12-18 18:08:37 +11:00
Lucas De Marchi f1de9c25fe AP_Mount: remove unused AP_ADC_AnalogSource 2015-12-03 13:32:43 +11:00
Caio Marcelo de Oliveira Filho 6e7b73610d waf: add waf support 2015-12-03 07:54:30 +11:00
Caio Marcelo de Oliveira Filho 0b2184b818 AP_Mount: use millis/micros/panic functions 2015-11-20 12:32:24 +09:00
Andrew Tridgell 8f4ce7f20b build: removed all nocore.inoflag files
these were APM2 specific
2015-11-16 08:05:17 +11:00
Lucas De Marchi ad094b9073 AP_Mount: remove checks for HAL_BOARD_APM2 and HAL_BOARD_APM1 2015-11-04 12:14:12 +11:00
Lucas De Marchi 5244559010 Minimize AP_Progmem.h includes
Most of AP_Progmem is already gone so we can stop including it in most
of the places. The only places that need it are the ones using
pgm_read_*() APIs.

In some cases the header needed to be added in the .cpp since it was
removed from the .h to reduce scope. In those cases the headers were
also reordered.
2015-10-30 14:35:32 +09:00
Lucas De Marchi 6f4904189b Replace use of println_P() with println() 2015-10-30 14:35:22 +09:00
Lucas De Marchi 831d8acca5 Remove use of PROGMEM
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:

    git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
    git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'

The 2 commands were done so we don't leave behind spurious spaces.

AVR-specific places were not changed.
2015-10-30 14:35:16 +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
Jonathan Challinger c762865d66 AP_Mount: use configured function to determine if MNT_TYPE has been configured 2015-10-26 11:15:54 +11:00
Caio Marcelo de Oliveira Filho 42a111f5df AP_Mount: remove unnecessary board include from example 2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho ec52df991c build: compile only the HAL files needed by the board
Instead of requiring every program to specify the HAL related modules,
let the build system do it (in practice everything we compiled depended
on HAL anyway). This allow including only the necessary files in the
compilation.
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho 2e464a53c2 AP_HAL: make code not depend on concrete HAL implementations
The switching between different AP_HAL was happening by giving different
definitions of AP_HAL_BOARD_DRIVER, and the programs would use it to
instantiate.

A program or library code would have to explicitly include (and depend)
on the concrete implementation of the HAL, even when using it only via
interface.

The proposed change move this dependency to be link time. There is a
AP_HAL::get_HAL() function that is used by the client code. Each
implementation of HAL provides its own definition of this function,
returning the appropriate concrete instance.

Since this replaces the job of AP_HAL_BOARD_DRIVER, the definition was
removed.

The static variables for PX4 and VRBRAIN were named differently to avoid
shadowing the extern symbol 'hal'.
2015-10-21 09:16:07 +11:00
Randy Mackay 3d7ec3704d Mount: add param descriptions to allow RC9 ~ RC12 inputs to be used to control gimbal 2015-09-29 16:41:51 +09:00
Randy Mackay fa0aa6f5c9 Mount: remove support for do-mount-configure as command long
Also fix bug in do-mount-control so that do-mount-control can switch mount into retract mode

Also removes ability to set which axis are stabilized through
ardupilotmega mount_configure message
2015-09-06 16:01:18 +09:00
squilter cc58ec917c Mount: add support for do_mount_control via command_long 2015-09-06 16:01:12 +09:00
fillycheezstake 39dae7a156 Mount: fix for STORM32 serial ver 78e and higher
This fixes the structs to be compatible with the changes OlliW made to
the gimbal firmware.
http://www.olliw.eu/storm32bgc-wiki/Serial_Communication
2015-08-25 13:45:33 +09:00
Lucas De Marchi 2011c4d988 AP_HAL_Mount: standardize inclusion of libaries headers
Do the missing header changes due to changing the code before the pr
getting accepted.
2015-08-18 17:12:52 +10:00
Gustavo Jose de Sousa 8011579c5a AP_Mount: standardize inclusion of libaries headers
This commit changes the way libraries headers are included in source files:

 - If the header is in the same directory the source belongs to, so the
 notation '#include ""' is used with the path relative to the directory
 containing the source.

 - If the header is outside the directory containing the source, then we use
 the notation '#include <>' with the path relative to libraries folder.

Some of the advantages of such approach:

 - Only one search path for libraries headers.

 - OSs like Windows may have a better lookup time.
2015-08-11 16:38:20 +10:00
Randy Mackay b13921a7aa Mount_SToRM32: find gimbal channel on startup 2015-07-25 10:53:05 +09:00
Randy Mackay cc0ab26f5d Mount: fix init of mode
Mode was being set from MNT_DEFTL_MODE parameter before that parameter's
value had been initialised from eeprom
2015-07-16 14:14:01 +09:00
Randy Mackay 1d732ddf62 Mount: param desc rename from MAVLink to 3DR Solo 2015-07-07 13:29:24 +09:00
Grant Morphett 84ac8abc42 AP_Mount: Fixed a bug with wrapping of panning angles. 2015-06-22 09:32:26 +09:00
Randy Mackay 0b6323d5ed Mount: default MNT_TYPE to servo gimbal if rc outputs defined 2015-06-10 16:47:08 +09:00