Commit Graph

355 Commits

Author SHA1 Message Date
Randy Mackay
acd8252e4b Common: add location alt max definition 2015-10-19 16:15:05 +09:00
Lucas De Marchi
7ba6f92eb5 AP_Common: give some type safety to ARRAY_SIZE macro
Now that most places in the code use the ARRAY_SIZE macro instead of
coding it by hand, let's use some type safety in its definition. This is
a C++ version of similar macros used in kmod, Linux kernel and the
source of them, ccan.

A C++ version like this is used in V8 (the JS engine) and other open
source projects.

The main benefit of this version is that you get a compile error if you
pass in a variable that's not an array. For example,

     Bla y[10];
     Bla *y_ptr = y;

     void foo(Bla x[])
     {
         // build error since x[] decay to a pointer in function
         // parameter
         for (int i = 0; i < ARRAY_SIZE(x); i++) {
             ...
         }

         // build error since y_ptr is not an array
	 for (int i = 0; i < ARRAY_SIZE(y_ptr); i++) {
             ...
	 }
     }

I added the additional specialization to allow arrays of size 0.
2015-09-28 18:20:14 +10:00
Gustavo Jose de Sousa
e32ad93ae3 AP_Common: 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:28:42 +10:00
Lucas De Marchi
82314ee4a3 AP_Common: add helper macro ARRAY_SIZE 2015-07-06 10:07:21 +10:00
Andrew Tridgell
21c8a2d94a AP_Common: override new and delete on all platforms to zero memory
this guarantees that all classes get zero initial members when
they are dynamically allocated.
2015-06-26 15:55:19 +10:00
Andrew Tridgell
191cdb8bc1 AP_Common: convert example from .pde to .cpp 2015-06-01 16:58:11 +10:00
Andrew Tridgell
a1a3212131 AP_Common: moved NOINLINE define to AP_Common.h 2015-05-21 09:35:26 +10:00
Andrew Tridgell
dd94cc18a1 AP_Common: fix for HAL_SITL rename 2015-05-05 09:45:55 +10:00
Andrew Tridgell
a53395cdb8 AP_Common: added HomeState enum from copter 2015-02-21 10:13:17 +11:00
Andrew Tridgell
26ac29840c AP_Common: added UNUSED_FUNCTION macro
useful for functions that are only in some builds
2015-02-18 11:12:43 +11:00
Grant Morphett
0b4ac5d256 AP_Common: Changes to fix the warnings in rover sitl build.
We are starting the process of resolving all the warnings in the
ardupilot builds of all vehicles and platforms.
2015-02-11 18:16:45 +11:00
Andrew Tridgell
5980ff8e1c AP_Common: removed map_baudrate()
Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2015-01-29 15:47:48 +11:00
Randy Mackay
1475cf27ac AP_Common: fix example sketch 2015-01-28 17:15:38 +09:00
Andrew Tridgell
37dea4e367 AP_Common: added MPU9250 product ID 2014-10-24 12:10:39 +11:00
Andrew Tridgell
8a48f06d18 AP_Common: added terrain_alt flag to Location
signifies that the altitude is a above terrain altitude
2014-07-24 21:50:19 +10:00
Victor Mayoral Vilches
1445781104 AP_Common: added fire cape product ID 2014-07-14 08:16:29 +10:00
Randy Mackay
9b81e46e61 AP_Common: add example sketch 2014-06-17 20:53:53 +10:00
Randy Mackay
b79f729540 AP_Common: add LOWBYTE, HIGHBYTE macros 2014-06-17 20:53:47 +10:00
Randy Mackay
fa16e0967f AP_Common: remove unused location mask definitions 2014-06-17 20:53:45 +10:00
Andrew Tridgell
42c1501563 AP_Common: moved map_baudrate() into AP_Common
this version supports a much wider range of baudrates
2014-05-21 12:45:25 +10:00
Randy Mackay
e3ffd5c0dd Common: remove RallyLocation defintion 2014-04-19 15:00:28 +09:00
Emile Castelnuovo
7b5c002d2f AP_Common: new board ID for VRBRAIN 2014-04-08 16:19:19 +10:00
Andrew Tridgell
959cafef8d AP_Common: make alt in Location 24 bit
this allows for up to 83km mission altitudes, while allowing for 1
more byte in the command structure, making p1 16 bits
2014-03-20 16:57:09 +11:00
Randy Mackay
865a4de33d Common: use PACKED instead of pragma pack for Location 2014-03-19 12:12:49 +09:00
Randy Mackay
af186fba05 AP_Common: pack Location structure
This resolves issues storing and retrieving Location to eeprom as part
of AP_Mission
2014-03-19 12:11:13 +09:00
Randy Mackay
87126c9b71 Common: remove id and p1 from Location structure
id and p1 are now part of AP_Mission's Mission_Command structure
2014-03-19 12:10:46 +09:00
Randy Mackay
9ef27955b5 Common: add location options masks 2014-03-19 12:10:20 +09:00
Andrew Tridgell
77e8061170 AP_Common: added product ID for L3G4200D 2013-10-08 11:50:53 +11:00
Andrew Tridgell
86b58314c4 AP_Common: pack the RallyLocation structure
so it can be written as a single binary block
2013-10-03 12:21:08 +10:00
Michael Day
823a40c203 AP_Common: Added RallyLocation struct. 2013-10-03 12:21:08 +10:00
Andrew Tridgell
f1e120113c AP_Common: added OPTIMIZE() macro
this can be used to change the compiler optimization level of
individual functions

Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2013-10-03 12:21:07 +10:00
Andrew Tridgell
13cdc56a5a AP_Common: removed SMACCM support 2013-09-26 22:38:31 +10:00
Andrew Tridgell
c1d56f74b5 AP_Common: change flymaple product ID to 0x100
keep it well away from the Invensense product IDs for the MPU6000
2013-09-24 13:51:28 +10:00
Mike McCauley
8f61a36e58 AP_Common: Flymaple compatibility 2013-09-24 13:33:25 +10:00
Andrew Tridgell
8b80beadc4 PX4: make FMUv2 identify itself differently
so we can tell which is which in logs
2013-09-09 18:04:40 +10:00
Andrew Tridgell
97b7130bb9 libraries: update license header to GPLv3
we switched to GPLv3 a long time ago, but neglected to update the
per-file license headers
2013-08-30 13:01:39 +10:00
Andrew Tridgell
933088b95a AP_Common: fixed indent-tabs-mode 2013-05-30 09:52:38 +10:00
Andrew Tridgell
62b9a580e8 AP_Common: make PACKED depend on architecture
this will remove lots of warnings when building with arduino
2013-05-09 20:10:31 +10:00
Andrew Tridgell
3659b532be AP_Common: added BIT_IS_SET() macro
makes bit mask testing safer on PX4

Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2013-04-23 23:05:02 +10:00
Andrew Tridgell
4fe5ce8a09 AP_Common: added a define for PACKED
neater than a pragma
2013-04-20 13:52:36 +10:00
Jochen Tuchbreiter
c5f19f5df8 Plane: Implement issue 80: counterclockwise loiter
- libraries/AP_Common/AP_Common.h: Use bit 2 of Location.options to store
  loiter direction
- ArduPlane/defines.h: New bitmask MASK_OPTIONS_LOITER_DIRECTION for struct
  Location bit 2
- ArduPlane/ArduPlane.pde: New variable loiter_direction
- ArduPlane/GCS_Mavlink.pde: For mavlink loiter-commands use sign of param3 to
  detemine direction. Set Location.option flag accordingly
- ArduPlane/commands.pde: Make sure loiter-directions get saved into EEPROM
  correctly
- ArduPlane/commands_logic.pde: Set loiter_direction on all loiter-actions
  as well as RTL/instant loiter
- ArduPlane/navigation.pde: Yield loiter_direction in update_loiter
2013-02-05 10:29:31 +11:00
Andrew Tridgell
cf5d102912 AP_Common: added board ID for PX4 2013-01-04 14:26:28 +11:00
James Bielman
a4af314b57 Add AP_HAL_SMACCM implementation.
- Add a board definition for SMACCMPilot.
- Support the SMACCM HAL in required utility libraries.
2013-01-03 13:48:06 -08:00
Andrew Tridgell
456e8bfb6e AP_Common: include stdlib.h for abs() 2013-01-02 14:45:09 +11:00
Andrew Tridgell
ac8fcd5b23 AP_Common: include stdbool.h for ARM 2013-01-02 14:45:09 +11:00
Andrew Tridgell
57bf6531b4 Progmem: use right CONFIG_HAL_BOARD #ifdefs 2013-01-01 18:26:12 +11:00
Andrew Tridgell
3c0440b0b4 Math: use common degrees() and radians() functions 2012-12-20 14:53:22 +11:00
Pat Hickey
eb530b86e8 move Arduino.mk to /mk/Arduino.mk 2012-12-20 14:52:35 +11:00
Andrew Tridgell
28f0ce6185 Build: use -O0 for SITL 2012-12-20 14:52:33 +11:00
Andrew Tridgell
475496cee2 Revert "Arduino.mk: use target variables rather than recursive make for apm1, apm2.."
This reverts commit fcd58cc1d7892bb8b45db75c35e1bdccaa2d47bb.

still doesn't work ...
2012-12-20 14:52:33 +11:00
Andrew Tridgell
975506c840 Build: add debugging in SITL build 2012-12-20 14:52:33 +11:00
Pat Hickey
8fe3c5e5d6 Arduino.mk: use target variables rather than recursive make for apm1, apm2.. 2012-12-20 14:52:31 +11:00
Andrew Tridgell
6a56f72918 Build: added empty Arduino.h 2012-12-20 14:52:30 +11:00
Andrew Tridgell
d473203737 Build: added global board targets 2012-12-20 14:52:30 +11:00
Pat Hickey
d93d932831 ArduCopter: defines fixes
Conflicts:

	libraries/AP_Common/Arduino.mk
2012-12-20 14:52:28 +11:00
Andrew Tridgell
9b15d0e714 Build: update makefile for SITL build 2012-12-20 14:51:40 +11:00
Pat Hickey
da99f5f283 Arduino.mk: compile with CONFIG_HAL_BOARD define from the user's config.mk 2012-12-20 14:51:37 +11:00
Pat Hickey
fff4e87619 Arduino.mk: allow user avrdude flags 2012-12-20 14:51:36 +11:00
Pat Hickey
f490f2432d Arduino.mk: norelax.inoflag will disable -Wl,--relax on a per sketch basis
* Some weird avr-ld bug that hits on 4.6.2 Fedora. Didn't have time to
  investigate further.
2012-12-20 14:51:29 +11:00
Andrew Tridgell
3a2e138994 AP_Common: no c++ magic for PX4 build 2012-12-20 14:51:28 +11:00
Pat Hickey
a4f1f6a5db AP_Progmem: fix dependencies for all sketches touched by AP_HAL_AVR 2012-12-20 14:51:28 +11:00
Pat Hickey
5c738810e2 AP_Progmem created: progmem macros per specific platform
* derived from AP_Common
2012-12-20 14:51:28 +11:00
Pat Hickey
a2f97ac7c7 AP_Common.cpp: Delete empty cpp file 2012-12-20 14:51:28 +11:00
Pat Hickey
f58935d1e7 AP_Common c++ lib: eliminate freeMemory and displayMemory
* also, no more error message in pure virtual call
2012-12-20 14:51:28 +11:00
Pat Hickey
9f9c183a4d remove AP_Vector.h as deprecated 2012-12-20 14:51:28 +11:00
Pat Hickey
6a59ad143e AP_Curve: made into its own library 2012-12-20 14:51:27 +11:00
Pat Hickey
f8047f158d Arduino.mk: Changes to asm opts for compatibility with avr-gcc4.6
* Need to make sure these are compatible with older toolchains
  before pushing to master
2012-12-20 14:51:26 +11:00
Pat Hickey
0d342a3293 AP_Common: use EXCLUDECORE macro to hack some debug messages away 2012-12-20 14:51:19 +11:00
Pat Hickey
7854c54880 Arduino.mk: when core is excluded, add -DEXCLUDECORE to flags 2012-12-20 14:51:19 +11:00
Pat Hickey
4493dbb4d2 Arduino.mk: support nocore.inoflag to do coreless builds of each sketch 2012-12-20 14:51:19 +11:00
Pat Hickey
b34d4cdb17 Remove empty AP_Var_menufuncs.cpp 2012-12-20 14:51:19 +11:00
Pat Hickey
3f1d9d7f69 AP_Param: #include <AP_Param.h> fixups for libraries & sketches
* I mostly went through with grep and added an #include <AP_Param.h> below
  every #include <AP_Common.h>. Not all of these example sketches might
  strictly need AP_Param.
2012-12-20 14:51:19 +11:00
Pat Hickey
c4dbe8c627 AP_Param: move from AP_Common to its own library 2012-12-20 14:51:19 +11:00
Pat Hickey
e82d1402ef AP_Loop: moved to APO library, which is the only code that uses it 2012-12-20 14:51:19 +11:00
Andrew Tridgell
3c88b0d204 AP_Param: fixed Vector3f elements with 16 character names 2012-11-20 22:27:11 +11:00
Andrew Tridgell
b0713ba412 AP_Param: support up to 16 character parameter names
MAVLink allows for 16 chars, with no null termination if all 16 are
used
2012-11-20 21:35:22 +11:00
Andrew Tridgell
736cb4c34b AP_Var: move the MetaClass lib into AP_Var
AP_Var is the only one that uses it, and it generates warnings in our
build if we leave it in AP_Common
2012-11-06 21:42:54 +11:00
Andrew Tridgell
ef919c4e36 AP_Param: fixed a bug with setting nested parameters
This bug meant that setting a parameter in a parent class for a doubly
nested parameter group, where the parameter index in the parent class
is 4 or greater would actually set the first element in that parent
class.

At the moment only one parameter fits these narrow constraints - the
RCn_DZ element of the RC_Channel_aux class. So if someone set RC5_DZ
to 17 in ArduPlane it would actually set RC5_MIN to 17.
2012-11-05 22:08:43 +11:00
rmackay9
79fc5f072e AP_Curve: replace Serial.print with Serial.print_P to save 18 bytes of memory 2012-10-22 16:40:57 +09:00
Pat Hickey
1bf21aae20 AP_Menu: create new library with menu from AP_Common 2012-10-18 20:50:16 -07:00
Pat Hickey
76e93e9fd7 AP_Common: PSTR def has specific version for avr-gcc 4.6 compatibility
* Also a small change in FastSerial/vprintf.cpp, which duplicates the
  PSTR definition
* Won't effect others using earlier versions of avr-gcc
2012-10-15 20:42:18 -07:00
Pat Hickey
5796ee91ca AP_Semaphore: make into separate library rather than part of AP_Common 2012-10-09 10:55:06 -07:00
rmackay9
23442f9caf AP_Semaphore: added new library to help remove conflicts over SPI bus 2012-10-06 12:41:35 +09:00
Andrew Tridgell
e761645e24 AP_Param: added find_by_index() 2012-09-20 07:42:35 +10:00
rmackay9
93ae29a3e9 ArduCopter: added throttle curve (although disabled by default) for all multicopters 2012-09-18 23:05:08 +09:00
uncrustify
f3945772e9 uncrustify libraries/AP_Common/AP_Vector.h 2012-08-21 19:19:51 -07:00
uncrustify
953cab5c5f uncrustify libraries/AP_Common/AP_Test.h 2012-08-21 19:19:51 -07:00
uncrustify
4b60e53736 uncrustify libraries/AP_Common/AP_Loop.h 2012-08-21 19:01:03 -07:00
uncrustify
7d438cd65d uncrustify libraries/AP_Common/include/menu.h 2012-08-21 19:01:02 -07:00
uncrustify
6bb8e4e8ac uncrustify libraries/AP_Common/AP_Common.h 2012-08-21 19:01:02 -07:00
uncrustify
0c99546f45 uncrustify libraries/AP_Common/AP_MetaClass.h 2012-08-21 19:01:02 -07:00
uncrustify
e79d9adea0 uncrustify libraries/AP_Common/c++.h 2012-08-21 19:00:52 -07:00
uncrustify
3a26b94af2 uncrustify libraries/AP_Common/tools/eedump.c 2012-08-21 19:00:51 -07:00
uncrustify
4a50e56a48 uncrustify libraries/AP_Common/tools/eedump_apparam.c 2012-08-21 19:00:51 -07:00
uncrustify
3e4507a4a2 uncrustify libraries/AP_Common/menu.cpp 2012-08-21 19:00:51 -07:00
uncrustify
09c4f76b57 uncrustify libraries/AP_Common/AP_Param.cpp 2012-08-21 19:00:51 -07:00
uncrustify
c18e73a54d uncrustify libraries/AP_Common/c++.cpp 2012-08-21 19:00:51 -07:00
uncrustify
ca476e5851 uncrustify libraries/AP_Common/examples/menu/menu.pde 2012-08-21 19:00:51 -07:00
Pat Hickey
42e24a869f uncrustify libraries/AP_Common/AP_Param.h with fixups by hand 2012-08-21 19:00:51 -07:00
rmackay9
976679208c AP_Common: change a few more "int" to "int16_t" 2012-08-18 18:05:18 +09:00