diff --git a/src/dynamixel_can.cpp b/src/dynamixel_can.cpp index 2fd46f5a0c6b74d1a6b1e5fa60025ad1e66775dd..f512a8219f2283992c2414ab2a2bc06b24bea242 100644 --- a/src/dynamixel_can.cpp +++ b/src/dynamixel_can.cpp @@ -117,23 +117,23 @@ unsigned char CDynamixelCAN::receive_status_packet_v1(unsigned char **data,unsig if(this->comm_dev!=NULL) { try{ - events.push_back(((CCAN *)this->comm_dev)->get_new_frame_event_id()); + events.push_back(((CCAN *)this->comm_dev)->get_new_frame_event_id(this->rx_frame_id)); // read up to the length field do{ - if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->rx_frame_id))==0) + if((num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id))==0) { this->event_server->wait_all(events,500); - num=((CCAN *)this->comm_dev)->get_num_bytes(rx_frame_id); + num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id); } if((read+num)>1024) { - ((CCAN *)this->comm_dev)->read(rx_frame_id,&data_int[read],1024-read); + ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],1024-read); read=1024; } else { if(num != 0) - ((CCAN *)this->comm_dev)->read(rx_frame_id,&data_int[read],num); + ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],num); read+=num; } this->sync_packet_v1(data_int,read,&start); @@ -142,19 +142,20 @@ unsigned char CDynamixelCAN::receive_status_packet_v1(unsigned char **data,unsig // read the remaining of the packet while((read-start)<length) { - if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->rx_frame_id))==0) + if((num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id))==0) { this->event_server->wait_all(events,500); - num=((CCAN *)this->comm_dev)->get_num_bytes(this->rx_frame_id); + num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id); } if((read-start+num)>length) { - ((CCAN *)this->comm_dev)->read(rx_frame_id,&data_int[read],length-read); + ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],length-read); read=length; } else { - ((CCAN *)this->comm_dev)->read(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; } } @@ -201,22 +202,22 @@ unsigned char CDynamixelCAN::receive_status_packet_v2(unsigned char **data,unsig if(this->comm_dev!=NULL) { try{ - events.push_back(((CCAN *)this->comm_dev)->get_new_frame_event_id()); + events.push_back(((CCAN *)this->comm_dev)->get_new_frame_event_id(this->rx_frame_id)); // read up to the length field do{ - if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->rx_frame_id))==0) + if((num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id))==0) { this->event_server->wait_all(events,100); - num=((CCAN *)this->comm_dev)->get_num_bytes(rx_frame_id); + num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id); } if((read+num)>1024) { - ((CCAN *)this->comm_dev)->read(rx_frame_id,&data_int[read],1024-read); + ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],1024-read); read=1024; } else { - ((CCAN *)this->comm_dev)->read(rx_frame_id,&data_int[read],num); + ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],num); read+=num; } this->sync_packet_v2(data_int,read,&start); @@ -225,19 +226,20 @@ unsigned char CDynamixelCAN::receive_status_packet_v2(unsigned char **data,unsig // read the remaining of the packet while((read-start)<length) { - if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->rx_frame_id))==0) + if((num=((CCAN *)this->comm_dev)->get_num_data(this->rx_frame_id))==0) { this->event_server->wait_all(events,100); num=this->comm_dev->get_num_data(); } if((read-start+num)>1024) { - ((CCAN *)this->comm_dev)->read(rx_frame_id,&data_int[read],1024-read); + ((CCAN *)this->comm_dev)->read(this->rx_frame_id,&data_int[read],1024-read); read=1024; } else { - ((CCAN *)this->comm_dev)->read(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; } } diff --git a/src/dynamixelserver_can.cpp b/src/dynamixelserver_can.cpp index 64259c174ac6431cfc90f960c0c58b0d65d3e761..26dcd56598c963946a7b4509864f8b9f0280f69a 100644 --- a/src/dynamixelserver_can.cpp +++ b/src/dynamixelserver_can.cpp @@ -155,13 +155,13 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v1(unsigned char **data if(this->comm_dev!=NULL) { try{ - events.push_back(((CCAN *)this->comm_dev)->get_new_frame_event_id()); + events.push_back(((CCAN *)this->comm_dev)->get_new_frame_event_id(this->bus_info.rx_frame_id)); // read up to the length field do{ - if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id))==0) + if((num=((CCAN *)this->comm_dev)->get_num_data(this->bus_info.rx_frame_id))==0) { this->event_server->wait_all(events,200); - num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id); + num=((CCAN *)this->comm_dev)->get_num_data(this->bus_info.rx_frame_id); } if((read+num)>1024) { @@ -179,10 +179,10 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v1(unsigned char **data // read the remaining of the packet while((read-start)<length) { - if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id))==0) + if((num=((CCAN *)this->comm_dev)->get_num_data(this->bus_info.rx_frame_id))==0) { this->event_server->wait_all(events,200); - num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id); + num=((CCAN *)this->comm_dev)->get_num_data(this->bus_info.rx_frame_id); } if((read-start+num)>length) { @@ -238,13 +238,13 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v2(unsigned char **data if(this->comm_dev!=NULL) { try{ - events.push_back(((CCAN *)this->comm_dev)->get_new_frame_event_id()); + events.push_back(((CCAN *)this->comm_dev)->get_new_frame_event_id(this->bus_info.rx_frame_id)); // read up to the length field do{ - if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id))==0) + if((num=((CCAN *)this->comm_dev)->get_num_data(this->bus_info.rx_frame_id))==0) { this->event_server->wait_all(events,200); - num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id); + num=((CCAN *)this->comm_dev)->get_num_data(this->bus_info.rx_frame_id); } if((read+num)>1024) { @@ -262,10 +262,10 @@ unsigned char CDynamixelServerCAN::receive_status_packet_v2(unsigned char **data // read the remaining of the packet while((read-start)<length) { - if((num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id))==0) + if((num=((CCAN *)this->comm_dev)->get_num_data(this->bus_info.rx_frame_id))==0) { this->event_server->wait_all(events,200); - num=((CCAN *)this->comm_dev)->get_num_bytes(this->bus_info.rx_frame_id); + num=((CCAN *)this->comm_dev)->get_num_data(this->bus_info.rx_frame_id); } if((read-start+num)>length) {