From: Toby C. <th...@us...> - 2007-10-19 14:59:31
|
Update of /cvsroot/playerstage/code/player/server/drivers/position/vfh In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11860/server/drivers/position/vfh Modified Files: Tag: b_thjc_dynamic_arrays vfh_algorithm.h .cvsignore vfh.cc vfh_algorithm.cc Log Message: dynamic array changes to drivers compile, still needs testing added lots more .cvsignore settings for eclipse Index: .cvsignore =================================================================== RCS file: /cvsroot/playerstage/code/player/server/drivers/position/vfh/.cvsignore,v retrieving revision 1.1.16.1 retrieving revision 1.1.16.2 diff -C2 -d -r1.1.16.1 -r1.1.16.2 *** .cvsignore 10 Oct 2007 09:26:14 -0000 1.1.16.1 --- .cvsignore 19 Oct 2007 21:58:58 -0000 1.1.16.2 *************** *** 4,5 **** --- 4,7 ---- *.la *.a + .libs + *.lo Index: vfh_algorithm.cc =================================================================== RCS file: /cvsroot/playerstage/code/player/server/drivers/position/vfh/vfh_algorithm.cc,v retrieving revision 1.9 retrieving revision 1.9.4.1 diff -C2 -d -r1.9 -r1.9.4.1 *** vfh_algorithm.cc 20 Jan 2006 21:26:31 -0000 1.9 --- vfh_algorithm.cc 19 Oct 2007 21:58:58 -0000 1.9.4.1 *************** *** 404,408 **** } ! int VFH_Algorithm::Update_VFH( double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int current_speed, float goal_direction, --- 404,408 ---- } ! int VFH_Algorithm::Update_VFH( double (*laser_ranges)[2], int current_speed, float goal_direction, *************** *** 858,862 **** } ! int VFH_Algorithm::Calculate_Cells_Mag( double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int speed ) { int x, y; --- 858,862 ---- } ! int VFH_Algorithm::Calculate_Cells_Mag( double (*laser_ranges)[2], int speed ) { int x, y; *************** *** 910,914 **** } ! int VFH_Algorithm::Build_Primary_Polar_Histogram( double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int speed ) { int x, y; --- 910,914 ---- } ! int VFH_Algorithm::Build_Primary_Polar_Histogram( double (*laser_ranges)[2], int speed ) { int x, y; Index: vfh.cc =================================================================== RCS file: /cvsroot/playerstage/code/player/server/drivers/position/vfh/vfh.cc,v retrieving revision 1.79 retrieving revision 1.79.2.1 diff -C2 -d -r1.79 -r1.79.2.1 *** vfh.cc 23 Aug 2007 19:58:47 -0000 1.79 --- vfh.cc 19 Oct 2007 21:58:58 -0000 1.79.2.1 *************** *** 281,289 **** player_devaddr_t sonar_addr; int num_sonars; ! player_pose3d_t sonar_poses[PLAYER_SONAR_MAX_SAMPLES]; // Laser range and bearing values int laser_count; ! double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2]; // Control velocity --- 281,289 ---- player_devaddr_t sonar_addr; int num_sonars; ! player_pose3d_t * sonar_poses; // Laser range and bearing values int laser_count; ! double (*laser_ranges)[2]; // Control velocity *************** *** 436,444 **** this->laser_count = 0; ! for(int i=0;i<PLAYER_LASER_MAX_SAMPLES;i++) ! { ! this->laser_ranges[i][0] = 0; ! this->laser_ranges[i][1] = 0; ! } return 0; } --- 436,440 ---- this->laser_count = 0; ! this->laser_ranges = NULL; return 0; } *************** *** 475,478 **** --- 471,475 ---- cfg = (player_sonar_geom_t*)msg->GetPayload(); this->num_sonars = cfg->poses_count; + this->sonar_poses = new player_pose3d_t[num_sonars]; for(int i=0;i<this->num_sonars;i++) { *************** *** 483,491 **** this->laser_count = 0; ! for(int i=0;i<PLAYER_LASER_MAX_SAMPLES;i++) ! { ! this->laser_ranges[i][0] = 0; ! this->laser_ranges[i][1] = 0; ! } return 0; } --- 480,484 ---- this->laser_count = 0; ! this->laser_ranges = NULL; return 0; } *************** *** 497,500 **** --- 490,495 ---- { this->laser->Unsubscribe(this->InQueue); + delete [] laser_ranges; + laser_ranges = NULL; return 0; } *************** *** 505,508 **** --- 500,507 ---- { this->sonar->Unsubscribe(this->InQueue); + delete [] laser_ranges; + laser_ranges = NULL; + delete [] sonar_poses; + sonar_poses = NULL; return 0; } *************** *** 542,549 **** this->laser_count = 181; ! assert(this->laser_count < ! (int)sizeof(this->laser_ranges) / (int)sizeof(this->laser_ranges[0])); ! for(i = 0; i < PLAYER_LASER_MAX_SAMPLES; i++) this->laser_ranges[i][0] = -1; --- 541,548 ---- this->laser_count = 181; ! if (!laser_ranges) ! this->laser_ranges = new double[laser_count][2]; ! for(i = 0; i < laser_count; i++) this->laser_ranges[i][0] = -1; *************** *** 560,564 **** r = 1000000.0; ! for (i = 0; i < PLAYER_LASER_MAX_SAMPLES; i++) { if (this->laser_ranges[i][0] != -1) { --- 559,563 ---- r = 1000000.0; ! for (i = 0; i < laser_count; i++) { if (this->laser_ranges[i][0] != -1) { *************** *** 582,589 **** this->laser_count = count; ! assert(this->laser_count < ! (int)sizeof(this->laser_ranges) / (int)sizeof(this->laser_ranges[0])); ! ! for(i = 0; i < PLAYER_LASER_MAX_SAMPLES; i++) this->laser_ranges[i][0] = -1; --- 581,588 ---- this->laser_count = count; ! if (!laser_ranges) ! this->laser_ranges = new double[laser_count][2]; ! ! for(i = 0; i < laser_count; i++) this->laser_ranges[i][0] = -1; *************** *** 610,614 **** r = 1000000.0; ! for (i = 0; i < PLAYER_LASER_MAX_SAMPLES; i++) { if (this->laser_ranges[i][0] != -1) { --- 609,613 ---- r = 1000000.0; ! for (i = 0; i < laser_count; i++) { if (this->laser_ranges[i][0] != -1) { Index: vfh_algorithm.h =================================================================== RCS file: /cvsroot/playerstage/code/player/server/drivers/position/vfh/vfh_algorithm.h,v retrieving revision 1.6 retrieving revision 1.6.4.1 diff -C2 -d -r1.6 -r1.6.4.1 *** vfh_algorithm.h 20 Jan 2006 21:26:31 -0000 1.6 --- vfh_algorithm.h 19 Oct 2007 21:58:58 -0000 1.6.4.1 *************** *** 59,63 **** // - goal_distance_tolerance in mm. // ! int Update_VFH( double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int current_speed, float goal_direction, --- 59,63 ---- // - goal_distance_tolerance in mm. // ! int Update_VFH( double (*laser_ranges)[2], int current_speed, float goal_direction, *************** *** 101,107 **** // Returns 0 if something got inside the safety distance, else 1. ! int Calculate_Cells_Mag( double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int speed ); // Returns 0 if something got inside the safety distance, else 1. ! int Build_Primary_Polar_Histogram( double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int speed ); int Build_Binary_Polar_Histogram(int speed); int Build_Masked_Polar_Histogram(int speed); --- 101,107 ---- // Returns 0 if something got inside the safety distance, else 1. ! int Calculate_Cells_Mag( double (*laser_ranges)[2], int speed ); // Returns 0 if something got inside the safety distance, else 1. ! int Build_Primary_Polar_Histogram( double (*laser_ranges)[2], int speed ); int Build_Binary_Polar_Histogram(int speed); int Build_Masked_Polar_Histogram(int speed); |