- modified to prevent duplicate indirect address write

- fixed a bug that occure when handling bulk read item that does not exist.
This commit is contained in:
ROBOTIS-zerom
2017-11-30 17:14:28 +09:00
parent 05f4a5e51c
commit 0076da8a98
2 changed files with 23 additions and 4 deletions

View File

@ -154,6 +154,13 @@ Robot::Robot(std::string robot_file_path, std::string dev_desc_dir_path)
uint16_t indirect_data_addr = dxl->ctrl_table_[INDIRECT_DATA_1]->address_;
for (int _i = 0; _i < sub_tokens.size(); _i++)
{
std::map<std::string, ControlTableItem *>::iterator bulkread_it = dxl->ctrl_table_.find(sub_tokens[_i]);
if(bulkread_it == dxl->ctrl_table_.end())
{
fprintf(stderr, "\n ##### BULK READ ITEM [ %s ] NOT FOUND!! #####\n\n", sub_tokens[_i].c_str());
continue;
}
dxl->bulk_read_items_.push_back(new ControlTableItem());
ControlTableItem *dest_item = dxl->bulk_read_items_[_i];
ControlTableItem *src_item = dxl->ctrl_table_[sub_tokens[_i]];