Commit Graph

204 Commits

Author SHA1 Message Date
Peter Barker de2cf89b60 AP_Vehicle: initialise scheduler early
So the loop rate gets clamped before we memoise it and the loop period
in AP_Scheduler
2020-02-06 14:41:06 +11:00
Peter Barker a523bb4b68 AP_Vehicle: let AP_Vehicle handle loop() 2020-02-06 14:41:06 +11:00
Peter Barker 07c7a98269 AP_Vehicle: move some common init_ardupilot code up to AP_Vehicle 2020-01-28 11:34:51 +11:00
Peter Barker 1211ea88b5 AP_Vehicle: move setup method up to AP_Vehicle base class 2020-01-28 11:34:51 +11:00
Peter Barker 373b8be7ef AP_Vehicle: move EKF objects into AP_AHRS_NavEKF 2020-01-21 11:53:18 +11:00
Peter Barker 8f550ffdd4 AP_Vehicle: change string to Initialising ArduPilot 2020-01-21 11:37:28 +11:00
Peter Barker 342e502da4 AP_vehicle: let AP_Vehicle base class worry about scheduler delay callback 2020-01-21 11:37:28 +11:00
Andrew Tridgell f6c9c6fd8c AP_Vehicle: setup for Hott telem 2020-01-16 20:36:54 +11:00
Peter Hall 7a620ca95c AP_Vehicle: add flying time and bool 2020-01-14 22:34:37 -07:00
Tatsuya Yamaguchi 1309101a4b AP_Vehicle: allow scripts to get modes 2020-01-14 11:16:29 +11:00
Andrew Tridgell 9d8821f3d7 AP_Vehicle: make init_vehicle() public
and protect against double call.

This is needed for the call from AP_BoardConfig
2019-12-30 13:02:04 +11:00
Andy Piper 3ea05fa78b AP_Vehicle: add common parameter and scheduling management. Add runcam. 2019-12-30 13:02:04 +11:00
Peter Barker b2b5077949 AP_Vehicle: stop passing rangefinder in constructors of NavEKF objects 2019-12-11 08:09:01 +11:00
Peter Barker ebd2b1d544 AP_Vehicle: instantiate the AHRS object 2019-12-02 09:16:22 +11:00
Gone4Dirt 71f7761975 AP_Vehicle: Added mode change reasons for autorotation 2019-11-29 08:06:10 +08:00
Michael du Breuil a44a7f541b AP_Vehicle: Support set_mode 2019-10-25 08:48:22 +08:00
Peter Barker 9fee2a9c06 AP_Vehicle: add singleton 2019-10-15 13:24:20 +11:00
Peter Barker 1ea365d52a AP_Vehicle: move many members up to base class 2019-10-08 11:26:04 +11:00
Andrew Tridgell 88fbbfba09 AP_Vehicle: added AP_Periph vehicle type 2019-08-27 10:29:56 +10:00
Andrew Tridgell ac3da71efd AP_Vehicle: added iofirmware vehicle type 2019-03-15 14:38:57 +11:00
Peter Barker 2cea90eefe AP_Vehicle: remove ancient, misleading Arduino comment 2018-11-23 10:56:17 +11:00
jaxxzer 44c9efad50 AP_Vehicle: Add the ArduSub vehicle type.
This also fixes the issue causing accel calibration to be unresponsive
in gcs.
2017-02-21 11:26:14 +11:00
Michael du Breuil 302e80d72c AP_Vehicle: Move loiter_radius to vehicle 2017-01-30 10:43:54 -08:00
Michael du Breuil ac27241a42 AP_Vehicle: Remove unused flight stages 2017-01-26 13:11:44 -08:00
Tom Pittenger 063f517424 Plane, TECS, AP_Landing: rename stage LAND_ABORT to ABORT_LAND
this will reduce confusion when searching for FLIGHT_LAND_* and you get a bunch of takeoff related hits. It will also make more sense when the landing library fully manages the FLIGHT_LAND stage entirely because it will not mange FLIGHT_LAND_ABORT
2016-12-30 23:50:03 -08:00
Tom Pittenger 8019cedf5b AP_Vehicle,AP_SpdHgtControl,AP_TECS: move enum FlightStages to AP_Vehicle::FixedWing 2016-12-30 23:50:02 -08:00
Tom Pittenger 15ec551990 AP_Vehicle: migrate aparm "LAND_" params from plane to AP_Landing 2016-11-25 19:07:30 -08:00
Tom Pittenger f556f705e6 Plane: move various g params to aparms 2016-11-25 19:07:30 -08:00
Tom Pittenger ce8db1fdba Plane: move struct Rangefinder_State to AP_Vehicle 2016-11-25 19:07:30 -08:00
Tom Pittenger 44037c13a1 Revert "AP_Vehicle: Removed unused airspeed_min and airspeed_max as now part of AP_Airspeed."
This reverts commit bf7ab052c1.
2016-08-07 17:54:24 -07:00
AndersonRayner bf7ab052c1 AP_Vehicle: Removed unused airspeed_min and airspeed_max as now part of AP_Airspeed. 2016-08-04 10:09:04 -07:00
Andrew Tridgell 1f29b51dd6 AP_Vehicle: moved roll_limit_cd into AP_Vehicle
will be used by APM_Control
2016-06-24 11:39:21 +10:00
Lucas De Marchi 80749af698 AP_Vehicle: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Tom Pittenger 96833a0b73 AP_Vehicle: new params for pre-flare 2016-02-09 14:18:02 +11:00
Peter Barker f21774d3e8 AP_Vehicle: define vehicle type APM_BUILD_Replay 2016-01-30 12:52:51 -02:00
Gustavo Jose de Sousa 5eea2683f2 AP_Vehicle: 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:24 +10:00
Andrew Tridgell f24e69f4a0 AP_Vehicle: all vehicles now use functors 2015-06-01 15:18:32 +10:00
Andrew Tridgell 9ed0ee12fb AP_Vehicle: all vehicle types now use functors 2015-06-01 15:06:31 +10:00
Andrew Tridgell 1088e72fda AP_Vehicle: make copter use functors 2015-05-30 15:21:22 +09:00
Andrew Tridgell 83e6181024 AP_Vehicle: removed BUILD_DELEGATES code
no longer needed
2015-05-26 14:34:58 +10:00
Lucas De Marchi 0daeeb9518 ArduPlane: Start using new Functor implementation
It both reduces flash size and move symbols to read-only sections.
The scheduler_tasks table is one known not to be in read-only section before due
to the FastDelegate implementation. Before and after this patch:

	ArduPlane $ size ArduPlane.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 733368	   8252	  67352	 808972	  c580c	ArduPlane.elf.old
	 730632	   8236	  64792	 803660	  c434c	ArduPlane.elf

	ArduPlane $ nm -C ArduPlane.elf.old|grep scheduler_tasks
	0000000000402800 t _GLOBAL__sub_I__ZN5Plane15scheduler_tasksE
	00000000006b54c0 B Plane::scheduler_tasks

	ArduPlane $ nm -C ArduPlane.elf|grep scheduler_tasks
	0000000000490900 R Plane::scheduler_tasks

As can be seen above, now the scheduler_tasks symbol is in a read-only data
section and in all of them we decreased the total size.

For APM2 we have a little increase in the text size size.

	ArduPlane $ size ArduPlane.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 241940	    942	   4447	 247329	  3c621	ArduPlane.elf.old
	 242222	    942	   4431	 247595	  3c72b	ArduPlane.elf

	ArduPlane $ nm -C ArduPlane.elf.old|grep scheduler_tasks
	00001f8f T Plane::scheduler_tasks

	ArduPlane $ nm -C ArduPlane.elf|grep scheduler_tasks
	00001f8f T Plane::scheduler_tasks
2015-05-26 13:46:55 +10:00
Lucas De Marchi 84f399ec3c APMrover2: Start using new Functor implementation
It both reduces flash size and move symbols to read-only sections.
The scheduler_tasks table is one known not to be in read-only section before due
to the FastDelegate implementation. Before and after this patch:

	APMrover2 $ size APMrover2.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 611406	   4832	  40920	 657158	  a0706	APMrover2.elf.old
	 609686	   4824	  38936	 653446	  9f886	APMrover2.elf

	APMrover2 $ nm -C APMrover2.elf{.old,} |grep tasks
	0000000000696f80 B Rover::scheduler_tasks
	000000000047c440 R Rover::scheduler_tasks

As can be seen above, now the scheduler_tasks symbol is in a read-only data
section and in all of them we decreased the total size.

For APM2 we have a similar situation, but the table was already in text section
because it was using plain C pointers:

	APMrover2 $ size APMrover2.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 189518	   1038	   3494	 194050	  2f602	APMrover2.elf.old
	 189216	   1038	   3480	 193734	  2f4c6	APMrover2.elf

	APMrover2 $ nm -C APMrover2.elf{.old,} |grep tasks
	00001f92 T Rover::scheduler_tasks
	00001f8a T Rover::scheduler_tasks
2015-05-26 13:46:55 +10:00
Lucas De Marchi 4b5cf24a81 Allow to change to functor implementation
Start to add code behind APM_BUILD_FUNCTOR to support changing the
functor implementation (without breaking the build while the change is
not complete).
2015-05-26 13:46:49 +10:00
Andrew Tridgell 98d2b9b3aa AP_Vehicle: added APM_BUILD_DELEGATES macro 2015-05-21 07:48:50 +10:00
Michael du Breuil a9fc2b8a32 AP_Vehicle: Moved takeoff_throttle_max into plane parameters 2015-04-16 08:56:36 +10:00
Andrew Tridgell 8fc58d1cbe AP_Vehicle: expose LAND_FLARE_SEC in vehicle parameters for fixed wing 2015-03-15 13:52:34 +11:00
Andrew Tridgell 04b63a61bf AP_Vehicle: added stall_prevention variable 2014-11-13 14:05:22 +11:00
Andrew Tridgell c09c86868f AP_Vehicle: make APM_BUILD_TYPE() valid under arduino IDE 2014-09-03 13:28:04 +10:00
Andrew Tridgell fb4ef0b5c6 AP_Vehicle: added land_pitch_cd for fixed wing 2014-08-27 20:11:03 +10:00
Andrew Tridgell 86f167fc7f AP_Vehicle: added autotune_level to fixed wing parms 2014-04-13 22:11:28 +10:00
Andrew Tridgell fbec098e2f AP_Vehicle: added APM_BUILD_TYPE() macro
this makes checking build type less fragile
2014-03-26 12:41:53 +11:00
Andrew Tridgell 6b2f0b9553 AP_Vehicle: added defines for main vehicle types 2014-03-26 12:15:45 +11:00
Randy Mackay 0521806cc6 AP_Vehicle: add multicopter parameters 2014-02-15 05:27:32 +11:00
Andrew Tridgell 79a4bc6ea4 AP_Vehicle: added new header for parameters in multiple libraries
this adds a header where we can put vehicle specific parameters that
will be used in multiple libraries
2013-09-13 11:43:59 +10:00