diff --git a/src/dynamixel_can.cpp b/src/dynamixel_can.cpp index f512a8219f2283992c2414ab2a2bc06b24bea242..d29ca29c260d49002c779b607a82b7acdf4df3d6 100644 --- a/src/dynamixel_can.cpp +++ b/src/dynamixel_can.cpp @@ -207,7 +207,7 @@ unsigned char CDynamixelCAN::receive_status_packet_v2(unsigned char **data,unsig do{ if((num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id))==0) { - this->event_server->wait_all(events,100); + this->event_server->wait_all(events,300); num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id); } if((read+num)>1024) @@ -217,7 +217,9 @@ unsigned char CDynamixelCAN::receive_status_packet_v2(unsigned char **data,unsig } else { - ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],num); + + if(num!=0) + ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],num); read+=num; } this->sync_packet_v2(data_int,read,&start); diff --git a/src/dynamixelserver_can.cpp b/src/dynamixelserver_can.cpp index 26dcd56598c963946a7b4509864f8b9f0280f69a..be8a152036ba76bb0e42ad649c83f4b755bc7c4c 100644 --- a/src/dynamixelserver_can.cpp +++ b/src/dynamixelserver_can.cpp @@ -253,7 +253,8 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v2(unsigned char **data } else { - ((CCAN *)this->comm_dev)->read(this->bus_info.rx_frame_id,&data_int[read],num); + if(num != 0) + ((CCAN *)this->comm_dev)->read(this->bus_info.rx_frame_id,&data_int[read],num); read+=num; } this->sync_packet_v2(data_int,read,&start);