diff --git a/dynamixel_base/src/dynamixel_master.c b/dynamixel_base/src/dynamixel_master.c index c7c200f620b07af59727eb36dd12cc32910e79b3..02251010c1890f5d994542a0106ef66c89f76880 100644 --- a/dynamixel_base/src/dynamixel_master.c +++ b/dynamixel_base/src/dynamixel_master.c @@ -184,7 +184,7 @@ unsigned char dyn_master_wait_reception(TDynamixelMaster *master) } else { - if(dyn2_check_checksum(master->rx_buffer)==0xFF) + if(dyn2_check_checksum(master->rx_buffer)==0x01) return dyn2_get_status_error(master->rx_buffer); else return DYN_CHECKSUM_ERROR; diff --git a/dynamixel_base/src/dynamixel_slave.c b/dynamixel_base/src/dynamixel_slave.c index 0dc791c52a28029911f0ed276dabb26472e92796..69fb61323b4b43c8da4b0f75f8d502a0d787cfd8 100644 --- a/dynamixel_base/src/dynamixel_slave.c +++ b/dynamixel_base/src/dynamixel_slave.c @@ -265,7 +265,7 @@ void dyn_v1_slave_loop(TDynamixelSlave *slave) } else// the packet is addressed to another device, so relay it { - if(slave->on_relay(slave->version,slave->rx_buffer,slave->tx_buffer)) + if(slave->on_relay(slave->version,slave->rx_buffer,slave->tx_buffer)==DYN_SUCCESS) { // set the tx mode, if necessary slave->set_tx_mode(); @@ -414,12 +414,12 @@ void dyn_v2_slave_loop(TDynamixelSlave *slave) } else// the packet is addressed to another device, so relay it { - if(slave->on_relay(slave->version,slave->rx_buffer,slave->tx_buffer)) + if(slave->on_relay(slave->version,slave->rx_buffer,slave->tx_buffer)==DYN_SUCCESS) { // set the tx mode, if necessary slave->set_tx_mode(); // start transmission by DMA - comm_send_dma(slave->comm_dev,slave->tx_buffer,dyn_get_length(slave->tx_buffer)+8); + comm_send_dma(slave->comm_dev,slave->tx_buffer,dyn2_get_length(slave->tx_buffer)+8); } } }