From 44b5b52bcbf01c548a30c8dddd5c477c9ce86cb7 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Thu, 22 Sep 2016 11:08:25 -1000 Subject: [PATCH] Add suport for Memory Constrained systems --- src/modules/dataman/dataman.h | 16 +++++++++++++++- src/modules/navigator/navigation.h | 6 +++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/modules/dataman/dataman.h b/src/modules/dataman/dataman.h index d5e39dbfd3..34d48f8979 100644 --- a/src/modules/dataman/dataman.h +++ b/src/modules/dataman/dataman.h @@ -60,6 +60,20 @@ typedef enum { #define DM_KEY_WAYPOINTS_OFFBOARD(_id) (_id == 0 ? DM_KEY_WAYPOINTS_OFFBOARD_0 : DM_KEY_WAYPOINTS_OFFBOARD_1) +#if defined(MEMORY_CONSTRAINED_SYSTEM) +enum { + DM_KEY_SAFE_POINTS_MAX = 8, +#ifdef __cplusplus + DM_KEY_FENCE_POINTS_MAX = fence_s::GEOFENCE_MAX_VERTICES, +#else + DM_KEY_FENCE_POINTS_MAX = GEOFENCE_MAX_VERTICES, +#endif + DM_KEY_WAYPOINTS_OFFBOARD_0_MAX = NUM_MISSIONS_SUPPORTED, + DM_KEY_WAYPOINTS_OFFBOARD_1_MAX = NUM_MISSIONS_SUPPORTED, + DM_KEY_WAYPOINTS_ONBOARD_MAX = (NUM_MISSIONS_SUPPORTED / 10), + DM_KEY_MISSION_STATE_MAX = 1 +}; +#else /** The maximum number of instances for each item type */ enum { DM_KEY_SAFE_POINTS_MAX = 8, @@ -73,7 +87,7 @@ enum { DM_KEY_WAYPOINTS_ONBOARD_MAX = NUM_MISSIONS_SUPPORTED, DM_KEY_MISSION_STATE_MAX = 1 }; - +#endif /** Data persistence levels */ typedef enum { DM_PERSIST_POWER_ON_RESET = 0, /* Data survives all resets */ diff --git a/src/modules/navigator/navigation.h b/src/modules/navigator/navigation.h index 3479e9eaff..80ff6e49c8 100644 --- a/src/modules/navigator/navigation.h +++ b/src/modules/navigator/navigation.h @@ -45,7 +45,11 @@ #include #include -#define NUM_MISSIONS_SUPPORTED 256 +#if defined(MEMORY_CONSTRAINED_SYSTEM) +# define NUM_MISSIONS_SUPPORTED 50 +#else +# define NUM_MISSIONS_SUPPORTED 256 +#endif #define NAV_EPSILON_POSITION 0.001f /**< Anything smaller than this is considered zero */