@@ -485,6 +485,8 @@ void RobotisController::initializeDevice(const std::string init_file_path)
485
485
{
486
486
if (dxl->bulk_read_items_ .size () != 0 )
487
487
{
488
+ uint16_t data16 = 0 ;
489
+
488
490
bulkread_start_addr = dxl->bulk_read_items_ [0 ]->address_ ;
489
491
bulkread_data_length = 0 ;
490
492
@@ -498,7 +500,11 @@ void RobotisController::initializeDevice(const std::string init_file_path)
498
500
for (int l = 0 ; l < addr_leng; l++)
499
501
{
500
502
// ROS_WARN("[%12s] INDIR_ADDR: %d, ITEM_ADDR: %d", joint_name.c_str(), indirect_addr, dxl->ctrl_table[dxl->bulk_read_items[i]->item_name]->address + _l);
501
- write2Byte (joint_name, indirect_addr, dxl->ctrl_table_ [dxl->bulk_read_items_ [i]->item_name_ ]->address_ + l);
503
+ read2Byte (joint_name, indirect_addr, &data16);
504
+ if (data16 != dxl->ctrl_table_ [dxl->bulk_read_items_ [i]->item_name_ ]->address_ + l)
505
+ {
506
+ write2Byte (joint_name, indirect_addr, dxl->ctrl_table_ [dxl->bulk_read_items_ [i]->item_name_ ]->address_ + l);
507
+ }
502
508
indirect_addr += 2 ;
503
509
}
504
510
}
@@ -552,6 +558,8 @@ void RobotisController::initializeDevice(const std::string init_file_path)
552
558
{
553
559
if (sensor->bulk_read_items_ .size () != 0 )
554
560
{
561
+ uint16_t data16 = 0 ;
562
+
555
563
bulkread_start_addr = sensor->bulk_read_items_ [0 ]->address_ ;
556
564
bulkread_data_length = 0 ;
557
565
@@ -565,9 +573,13 @@ void RobotisController::initializeDevice(const std::string init_file_path)
565
573
for (int l = 0 ; l < addr_leng; l++)
566
574
{
567
575
// ROS_WARN("[%12s] INDIR_ADDR: %d, ITEM_ADDR: %d", sensor_name.c_str(), indirect_addr, sensor->ctrl_table[sensor->bulk_read_items[i]->item_name]->address + _l);
568
- write2Byte (sensor_name,
569
- indirect_addr,
570
- sensor->ctrl_table_ [sensor->bulk_read_items_ [i]->item_name_ ]->address_ + l);
576
+ read2Byte (sensor_name, indirect_addr, &data16);
577
+ if (data16 != sensor->ctrl_table_ [sensor->bulk_read_items_ [i]->item_name_ ]->address_ + l)
578
+ {
579
+ write2Byte (sensor_name,
580
+ indirect_addr,
581
+ sensor->ctrl_table_ [sensor->bulk_read_items_ [i]->item_name_ ]->address_ + l);
582
+ }
571
583
indirect_addr += 2 ;
572
584
}
573
585
}
0 commit comments