From 6380c0d914941d874a2cbb9c562170267df8d543 Mon Sep 17 00:00:00 2001
From: Sergi Hernandez Juan <shernand@iri.upc.edu>
Date: Sun, 9 Feb 2020 21:49:16 +0100
Subject: [PATCH] Added a new macro for the actual number of motion pages.

---
 dynamixel_manager/Makefile                       | 2 +-
 dynamixel_manager/include/modules/motion_pages.h | 8 ++++++--
 dynamixel_manager/src/modules/motion_pages.c     | 2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/dynamixel_manager/Makefile b/dynamixel_manager/Makefile
index 1eb0622..638a1bf 100755
--- a/dynamixel_manager/Makefile
+++ b/dynamixel_manager/Makefile
@@ -19,7 +19,7 @@ SCHEDULER_PATH = ../scheduler
 
 INCLUDE_DIRS = -I./include/ -I./include/modules -I$(COMM_PATH)/include -I$(UTILS_PATH)/include -I$(DYN_BASE_PATH)/include -I$(MEMORY_PATH)/include -I$(SCHEDULER_PATH)/include
 
-MACROS = -DMAX_DYN_MASTER_TX_BUFFER_LEN=256 -DMAX_DYN_MASTER_RX_BUFFER_LEN=256 -DDYN_MANAGER_MAX_NUM_MASTERS=4 -DDYN_MANAGER_MAX_NUM_MODULES=8 -DDYN_MANAGER_MAX_NUM_DEVICES=32 -DDYN_MANAGER_MAX_NUM_SINGLE_OP=16 -DDYN_MANAGER_MAX_NUM_SYNC_OP=4 -DDYN_MANAGER_MAX_NUM_BULK_OP=4 -DMODULE_MAX_NUM_MODELS=32 -DMM_MAX_NUM_MOTION_MODULES=8
+MACROS = -DMAX_DYN_MASTER_TX_BUFFER_LEN=256 -DMAX_DYN_MASTER_RX_BUFFER_LEN=256 -DDYN_MANAGER_MAX_NUM_MASTERS=4 -DDYN_MANAGER_MAX_NUM_MODULES=8 -DDYN_MANAGER_MAX_NUM_DEVICES=32 -DDYN_MANAGER_MAX_NUM_SINGLE_OP=16 -DDYN_MANAGER_MAX_NUM_SYNC_OP=4 -DDYN_MANAGER_MAX_NUM_BULK_OP=4 -DMODULE_MAX_NUM_MODELS=32 -DMM_MAX_NUM_MOTION_MODULES=8 -DNUM_MOTION_PAGES=256
 
 TCHAIN_PREFIX=arm-none-eabi-
 
diff --git a/dynamixel_manager/include/modules/motion_pages.h b/dynamixel_manager/include/modules/motion_pages.h
index e871850..56f8feb 100755
--- a/dynamixel_manager/include/modules/motion_pages.h
+++ b/dynamixel_manager/include/modules/motion_pages.h
@@ -5,7 +5,11 @@
 extern "C" {
 #endif
 
-#define MAX_PAGES                     256 
+#ifndef NUM_MOTION_PAGES
+  #error "Please, specify the number of motion pages with the NUM_MOTION_PAGES macro"
+#endif
+
+#define MAX_MOTION_PAGES              256 
 #define PAGE_MAX_NUM_SERVOS           31
 #define POSE_NUMBER_OF_POSES_PER_PAGE 7
 
@@ -42,7 +46,7 @@ typedef struct // Page Structure (total 512unsigned char)
   TStep steps[POSE_NUMBER_OF_POSES_PER_PAGE];           // Page step    65~511
 }TPage;
 
-extern TPage motion_pages[MAX_PAGES];
+extern TPage motion_pages[NUM_MOTION_PAGES];
 
 // public functions
 void pages_get_page(unsigned char page_id,TPage *page);
diff --git a/dynamixel_manager/src/modules/motion_pages.c b/dynamixel_manager/src/modules/motion_pages.c
index 34bec5e..70b4b05 100755
--- a/dynamixel_manager/src/modules/motion_pages.c
+++ b/dynamixel_manager/src/modules/motion_pages.c
@@ -42,4 +42,4 @@ inline unsigned char pages_get_slope(TPage *page,unsigned char servo_id)
   return 0x01<<(page->header.slope[servo_id]&0x0F);
 }
 
-TPage motion_pages[MAX_PAGES] __attribute__ ((section (".pages"))) __attribute__((weak));
+TPage motion_pages[NUM_MOTION_PAGES] __attribute__ ((section (".pages"))) __attribute__((weak));
-- 
GitLab