From 6840c1091628c4e8967ff203aaecf05a1e674865 Mon Sep 17 00:00:00 2001 From: Sergi Hernandez Juan <shernand@iri.upc.edu> Date: Wed, 2 Sep 2020 13:01:06 +0200 Subject: [PATCH] The loop functions return 0xFF to indicate the packet has to be relayed (not processed or broadcast ID) --- dynamixel_base/src/dynamixel_slave_device.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dynamixel_base/src/dynamixel_slave_device.c b/dynamixel_base/src/dynamixel_slave_device.c index 3d792dc..68c1222 100644 --- a/dynamixel_base/src/dynamixel_slave_device.c +++ b/dynamixel_base/src/dynamixel_slave_device.c @@ -98,6 +98,8 @@ unsigned char dyn_v1_slave_loop(TDynamixelSlaveDevice *device,unsigned char *rx_ (*error)=DYN_INST_ERROR; } } + else if(id==DYN_BROADCAST_ID) + send_status=0xFF; break; case DYN_WRITE: (*length)=dyn_get_write_data(rx_buffer,data); (*error)=device->on_write(dyn_get_write_address(rx_buffer),*length,data); @@ -108,6 +110,8 @@ unsigned char dyn_v1_slave_loop(TDynamixelSlaveDevice *device,unsigned char *rx_ if((*error)!=DYN_NO_ERROR) (*error)=DYN_INST_ERROR; } + else if(id==DYN_BROADCAST_ID) + send_status=0xFF; break; case DYN_REG_WRITE: device->reg_length=dyn_get_reg_write_data(rx_buffer,device->reg_buffer); device->reg_address=dyn_get_reg_write_address(rx_buffer); @@ -199,6 +203,8 @@ unsigned char dyn_v1_slave_loop(TDynamixelSlaveDevice *device,unsigned char *rx_ } } } + else + send_status=0xFF; } } @@ -242,6 +248,8 @@ unsigned char dyn_v2_slave_loop(TDynamixelSlaveDevice *device,unsigned char *rx_ (*error)=DYN_INST_ERROR; } } + else if(id==DYN_BROADCAST_ID) + send_status=0xFF; break; case DYN_WRITE: (*length)=dyn2_get_write_data(rx_buffer,data); (*error)=device->on_write(dyn2_get_write_address(rx_buffer),*length,data); @@ -252,6 +260,8 @@ unsigned char dyn_v2_slave_loop(TDynamixelSlaveDevice *device,unsigned char *rx_ if((*error)!=DYN_NO_ERROR) (*error)=DYN_INST_ERROR; } + else if(id==DYN_BROADCAST_ID) + send_status=0xFF; break; case DYN_REG_WRITE: device->reg_length=dyn2_get_reg_write_data(rx_buffer,device->reg_buffer); device->reg_address=dyn2_get_reg_write_address(rx_buffer); @@ -376,6 +386,8 @@ unsigned char dyn_v2_slave_loop(TDynamixelSlaveDevice *device,unsigned char *rx_ } } } + else + send_status=0xFF; } } -- GitLab