Update of /cvsroot/playerstage/code/player/server/drivers/mixed/khepera
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/server/drivers/mixed/khepera

Modified Files:
        .cvsignore khepera.cc khepera.h 
Log Message:
applied Toby's patch to replace fixed-size arrays

Index: .cvsignore
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/server/drivers/mixed/khepera/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** .cvsignore  17 Sep 2007 02:18:51 -0000      1.2
--- .cvsignore  1 Nov 2007 22:16:20 -0000       1.3
***************
*** 4,5 ****
--- 4,7 ----
  *.la
  *.a
+ .libs
+ *.lo

Index: khepera.cc
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/server/drivers/mixed/khepera/khepera.cc,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** khepera.cc  23 Aug 2007 19:58:45 -0000      1.19
--- khepera.cc  1 Nov 2007 22:16:20 -0000       1.20
***************
*** 123,126 ****
--- 123,127 ----
  
  #include <libplayercore/playercore.h>
+ #include <libplayerxdr/playerxdr.h>
  
  // we need to debug different things at different times
***************
*** 276,279 ****
--- 277,281 ----
    // load ir geometry config
    geometry->ir.poses_count = (cf->ReadInt(section,"ir_pose_count", 8));
+   geometry->ir.poses = new player_pose3d_t[geometry->ir.poses_count];
    if (geometry->ir.poses_count == 8 && 
cf->ReadTupleFloat(section,"ir_poses",0,-1) == -1)
    {
***************
*** 329,333 ****
      geometry->ir_calib_b[i] = cf->ReadTupleFloat(section,"ir_calib_b", i, 
KHEPERA_DEFAULT_IR_CALIB_B);
    }
-   geometry->ir.poses_count = geometry->ir.poses_count;
  
    // zero position counters
--- 331,334 ----
***************
*** 341,344 ****
--- 342,353 ----
  }
  
+ Khepera::~Khepera()
+ {
+   delete geometry->ir.poses;
+   delete geometry->ir_calib_a;
+   delete geometry->ir_calib_b;
+   delete geometry;
+ }
+ 
  int 
  Khepera::Subscribe(player_devaddr_t addr)
***************
*** 487,490 ****
--- 496,503 ----
    player_position2d_data_t position_data;
    player_ir_data_t ir_data;
+   ir_data.ranges_count = geometry->ir.poses_count;
+   ir_data.voltages_count = geometry->ir.poses_count;
+   ir_data.ranges = new float[ir_data.ranges_count];
+   ir_data.voltages = new float[ir_data.voltages_count];
  
    UpdatePosData(&position_data);
***************
*** 497,500 ****
--- 510,514 ----
    // put ir data
    Publish(position_addr,PLAYER_MSGTYPE_DATA, PLAYER_IR_DATA_RANGES, (unsigned 
char *) &ir_data, sizeof(ir_data),NULL);
+   player_ir_data_t_cleanup(&ir_data);
  }
  
***************
*** 511,515 ****
    ReadAllIR(d);
  
-   d->ranges_count = geometry->ir.poses_count;
    for (unsigned int i =0; i < geometry->ir.poses_count; i++) 
    {
--- 525,528 ----
***************
*** 631,640 ****
  Khepera::ReadAllIR(player_ir_data_t* d)
  {
!   int Values[PLAYER_IR_MAX_SAMPLES];
! 
!   // changed these variable-size array declarations to the 
!   // bigger-than-necessary ones above, because older versions of gcc don't
!   // support variable-size arrays.
  
    if(Serial->KheperaCommand('N',0,NULL,geometry->ir.poses_count,Values) < 0)
      return -1;                        
--- 644,650 ----
  Khepera::ReadAllIR(player_ir_data_t* d)
  {
!   int * Values;
  
+   Values = new int [geometry->ir.poses_count];
    if(Serial->KheperaCommand('N',0,NULL,geometry->ir.poses_count,Values) < 0)
      return -1;                        
***************
*** 643,646 ****
--- 653,657 ----
      d->voltages[i] = static_cast<short> (Values[i]);
    }
+   delete [] Values;
    return 0;
  }

Index: khepera.h
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/server/drivers/mixed/khepera/khepera.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** khepera.h   23 Aug 2007 19:58:45 -0000      1.8
--- khepera.h   1 Nov 2007 22:16:20 -0000       1.9
***************
*** 84,87 ****
--- 84,88 ----
    
    Khepera(ConfigFile *cf, int section);
+   ~Khepera();
  
    /* the main thread */


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to