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