From 0fe60d7f5f98d6fe17613a1cb436bd912ad5b0ca Mon Sep 17 00:00:00 2001 From: Sergi Hernandez Juan <shernand@iri.upc.edu> Date: Wed, 15 Apr 2020 19:36:54 +0200 Subject: [PATCH] Solved a bug in the main motion manager loop: The post_process functions were never called. --- dynamixel_manager/src/dyn_manager.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dynamixel_manager/src/dyn_manager.c b/dynamixel_manager/src/dyn_manager.c index 99d42c5..65acbd4 100644 --- a/dynamixel_manager/src/dyn_manager.c +++ b/dynamixel_manager/src/dyn_manager.c @@ -361,12 +361,12 @@ void dyn_manager_start(TDynManager *manager) { scheduler_enable_channel(manager->scheduler,manager->sch_loop_ch); manager->running=0x01; + manager->stop_flag=0x00; manager->memory->data[manager->ram_base_address+DYN_MANAGER_CONTROL_OFFSET]|=DYN_MANAGER_RUNNING; } void dyn_manager_stop(TDynManager *manager) { - scheduler_disable_channel(manager->scheduler,manager->sch_loop_ch); manager->stop_flag=0x01; } @@ -1101,7 +1101,7 @@ void dyn_manager_loop(TDynManager *manager) // initialize the remaining operations dyn_manager_lock(manager); - for(i=0;i<manager->num_masters;i++) + for(i=0;i<DYN_MANAGER_MAX_NUM_MASTERS;i++) { states[i]=start_single_ops; current_single_op[i]=0; @@ -1119,7 +1119,6 @@ void dyn_manager_loop(TDynManager *manager) { if(manager->modules[i]->pre_process!=0x00000000) manager->modules[i]->pre_process(manager->modules[i]->data); - manager->modules_period_count[i]=0; } } } @@ -1275,5 +1274,6 @@ void dyn_manager_loop(TDynManager *manager) manager->running=0x00; manager->memory->data[manager->ram_base_address+DYN_MANAGER_CONTROL_OFFSET]&=(~DYN_MANAGER_RUNNING); manager->stop_flag=0x00; + scheduler_disable_channel(manager->scheduler,manager->sch_loop_ch); } } -- GitLab