Revision: 7306
http://playerstage.svn.sourceforge.net/playerstage/?rev=7306&view=rev
Author: rtv
Date: 2009-01-27 04:02:15 +0000 (Tue, 27 Jan 2009)
Log Message:
-----------
bugfixes
Modified Paths:
--------------
code/stage/trunk/libstage/model.cc
code/stage/trunk/libstage/model_props.cc
code/stage/trunk/libstage/option.cc
code/stage/trunk/libstage/stage.hh
code/stage/trunk/libstageplugin/p_driver.cc
code/stage/trunk/libstageplugin/p_fiducial.cc
code/stage/trunk/libstageplugin/p_position.cc
Removed Paths:
-------------
code/stage/trunk/libstage/draw.cc
Deleted: code/stage/trunk/libstage/draw.cc
===================================================================
--- code/stage/trunk/libstage/draw.cc 2009-01-27 01:18:55 UTC (rev 7305)
+++ code/stage/trunk/libstage/draw.cc 2009-01-27 04:02:15 UTC (rev 7306)
@@ -1,4 +0,0 @@
-/* Author: Richard Vaughan
- Date
-#include "stage_internal.hh"
-
Modified: code/stage/trunk/libstage/model.cc
===================================================================
--- code/stage/trunk/libstage/model.cc 2009-01-27 01:18:55 UTC (rev 7305)
+++ code/stage/trunk/libstage/model.cc 2009-01-27 04:02:15 UTC (rev 7306)
@@ -615,18 +615,20 @@
{
subs++;
world->total_subs++;
-
+ world->dirty = true; // need redraw
+
//printf( "subscribe to %s %d\n", token, subs );
-
+
// if this is the first sub, call startup
- if( this->subs == 1 )
- this->Startup();
+ if( subs == 1 )
+ Startup();
}
void Model::Unsubscribe( void )
{
subs--;
world->total_subs--;
+ world->dirty = true; // need redraw
printf( "unsubscribe from %s %d\n", token, subs );
@@ -1683,9 +1685,7 @@
}
Model* Model::GetUnsubscribedModelOfType( stg_model_type_t type )
-{
- printf( "searching for type %d in model %s type %d\n", type, token,
this->type );
-
+{
if( (this->type == type) && (this->subs == 0) )
return this;
@@ -1705,7 +1705,7 @@
Model* Model::GetUnusedModelOfType( stg_model_type_t type )
{
- printf( "searching for type %d in model %s type %d\n", type, token,
this->type );
+ //printf( "searching for type %d in model %s type %d\n", type, token,
this->type );
if( (this->type == type) && (!this->used ) )
{
Modified: code/stage/trunk/libstage/model_props.cc
===================================================================
--- code/stage/trunk/libstage/model_props.cc 2009-01-27 01:18:55 UTC (rev
7305)
+++ code/stage/trunk/libstage/model_props.cc 2009-01-27 04:02:15 UTC (rev
7306)
@@ -7,16 +7,16 @@
void* Model::GetProperty( char* key )
{
// see if the key has the predefined-property prefix
- if( strncmp( key, STG_MP_PREFIX, strlen(STG_MP_PREFIX)) == 0 )
+ if( strncmp( key, MP_PREFIX, strlen(MP_PREFIX)) == 0 )
{
- if( MATCH( key, STG_MP_COLOR)) return (void*)&color;
- if( MATCH( key, STG_MP_MASS)) return (void*)&mass;
- if( MATCH( key, STG_MP_WATTS)) return (void*)&watts;
- if( MATCH( key, STG_MP_FIDUCIAL_RETURN)) return
(void*)&vis.fiducial_return;
- if( MATCH( key, STG_MP_LASER_RETURN)) return
(void*)&vis.laser_return;
- if( MATCH( key, STG_MP_OBSTACLE_RETURN)) return
(void*)&vis.obstacle_return;
- if( MATCH( key, STG_MP_RANGER_RETURN)) return
(void*)&vis.ranger_return;
- if( MATCH( key, STG_MP_GRIPPER_RETURN)) return
(void*)&vis.gripper_return;
+ if( MATCH( key, MP_COLOR)) return (void*)&color;
+ if( MATCH( key, MP_MASS)) return (void*)&mass;
+ if( MATCH( key, MP_WATTS)) return (void*)&watts;
+ if( MATCH( key, MP_FIDUCIAL_RETURN)) return
(void*)&vis.fiducial_return;
+ if( MATCH( key, MP_LASER_RETURN)) return
(void*)&vis.laser_return;
+ if( MATCH( key, MP_OBSTACLE_RETURN)) return
(void*)&vis.obstacle_return;
+ if( MATCH( key, MP_RANGER_RETURN)) return
(void*)&vis.ranger_return;
+ if( MATCH( key, MP_GRIPPER_RETURN)) return
(void*)&vis.gripper_return;
PRINT_WARN1( "Requested non-existent model core property
\"%s\"", key );
return NULL;
@@ -30,46 +30,46 @@
void* data )
{
// see if the key has the predefined-property prefix
- if( strncmp( key, STG_MP_PREFIX, strlen(STG_MP_PREFIX)) == 0 )
+ if( strncmp( key, MP_PREFIX, strlen(MP_PREFIX)) == 0 )
{
PRINT_DEBUG1( "Looking up model core property \"%s\"\n", key );
- if( MATCH(key,STG_MP_FIDUCIAL_RETURN) )
+ if( MATCH(key,MP_FIDUCIAL_RETURN) )
{
this->SetFiducialReturn( *(int*)data );
return 0;
}
- if( MATCH( key, STG_MP_LASER_RETURN ) )
+ if( MATCH( key, MP_LASER_RETURN ) )
{
this->SetLaserReturn( *(stg_laser_return_t*)data );
return 0;
}
- if( MATCH( key, STG_MP_OBSTACLE_RETURN ) )
+ if( MATCH( key, MP_OBSTACLE_RETURN ) )
{
this->SetObstacleReturn( *(int*)data );
return 0;
}
- if( MATCH( key, STG_MP_RANGER_RETURN ) )
+ if( MATCH( key, MP_RANGER_RETURN ) )
{
this->SetRangerReturn( *(int*)data );
return 0;
}
- if( MATCH( key, STG_MP_GRIPPER_RETURN ) )
+ if( MATCH( key, MP_GRIPPER_RETURN ) )
{
this->SetGripperReturn( *(int*)data );
return 0;
}
- if( MATCH( key, STG_MP_COLOR ) )
+ if( MATCH( key, MP_COLOR ) )
{
this->SetColor( *(int*)data );
return 0;
}
- if( MATCH( key, STG_MP_MASS ) )
+ if( MATCH( key, MP_MASS ) )
{
this->SetMass( *(double*)data );
return 0;
}
- if( MATCH( key, STG_MP_WATTS ) )
+ if( MATCH( key, MP_WATTS ) )
{
this->SetWatts( *(double*)data );
return 0;
@@ -87,7 +87,7 @@
void Model::UnsetProperty( char* key )
{
- if( strncmp( key, STG_MP_PREFIX, strlen(STG_MP_PREFIX)) == 0 )
+ if( strncmp( key, MP_PREFIX, strlen(MP_PREFIX)) == 0 )
PRINT_WARN1( "Attempt to unset a model core property \"%s\" has
no effect", key );
else
g_datalist_remove_data( &this->props, key );
Modified: code/stage/trunk/libstage/option.cc
===================================================================
--- code/stage/trunk/libstage/option.cc 2009-01-27 01:18:55 UTC (rev 7305)
+++ code/stage/trunk/libstage/option.cc 2009-01-27 04:02:15 UTC (rev 7306)
@@ -24,7 +24,7 @@
void Option::Load( Worldfile* wf, int section )
{
- printf( "loading wf key %s\n", wf_token.c_str() );
+ //printf( "loading wf key %s\n", wf_token.c_str() );
set( (bool)wf->ReadInt( section, wf_token.c_str(), value ));
}
Modified: code/stage/trunk/libstage/stage.hh
===================================================================
--- code/stage/trunk/libstage/stage.hh 2009-01-27 01:18:55 UTC (rev 7305)
+++ code/stage/trunk/libstage/stage.hh 2009-01-27 04:02:15 UTC (rev 7306)
@@ -102,7 +102,7 @@
/// Copyright string
const char COPYRIGHT[] =
- "Copyright Richard Vaughan and contributors 2000-2008";
+ "Copyright Richard Vaughan and contributors 2000-2009";
/// Author string
const char AUTHORS[] =
@@ -420,18 +420,18 @@
const uint32_t STG_MOVE_ROT = (1 << 1); ///< bitmask for stg_movemask_t
const uint32_t STG_MOVE_SCALE = (1 << 2); ///< bitmask for stg_movemask_t
- const char STG_MP_PREFIX[] = "_mp_";
- const char STG_MP_POSE[] = "_mp_pose";
- const char STG_MP_VELOCITY[] = "_mp_velocity";
- const char STG_MP_GEOM[] = "_mp_geom";
- const char STG_MP_COLOR[] = "_mp_color";
- const char STG_MP_WATTS[] = "_mp_watts";
- const char STG_MP_FIDUCIAL_RETURN[] = "_mp_fiducial_return";
- const char STG_MP_LASER_RETURN[] = "_mp_laser_return";
- const char STG_MP_OBSTACLE_RETURN[] = "_mp_obstacle_return";
- const char STG_MP_RANGER_RETURN[] = "_mp_ranger_return";
- const char STG_MP_GRIPPER_RETURN[] = "_mp_gripper_return";
- const char STG_MP_MASS[] = "_mp_mass";
+ const char MP_PREFIX[] = "_mp_";
+ const char MP_POSE[] = "_mp_pose";
+ const char MP_VELOCITY[] = "_mp_velocity";
+ const char MP_GEOM[] = "_mp_geom";
+ const char MP_COLOR[] = "_mp_color";
+ const char MP_WATTS[] = "_mp_watts";
+ const char MP_FIDUCIAL_RETURN[] = "_mp_fiducial_return";
+ const char MP_LASER_RETURN[] = "_mp_laser_return";
+ const char MP_OBSTACLE_RETURN[] = "_mp_obstacle_return";
+ const char MP_RANGER_RETURN[] = "_mp_ranger_return";
+ const char MP_GRIPPER_RETURN[] = "_mp_gripper_return";
+ const char MP_MASS[] = "_mp_mass";
/// laser return value
@@ -472,20 +472,20 @@
} bounds3_t;
typedef enum {
- STG_D_DRAW_POINTS,
- STG_D_DRAW_LINES,
- STG_D_DRAW_LINE_STRIP,
- STG_D_DRAW_LINE_LOOP,
- STG_D_DRAW_TRIANGLES,
- STG_D_DRAW_TRIANGLE_STRIP,
- STG_D_DRAW_TRIANGLE_FAN,
- STG_D_DRAW_QUADS,
- STG_D_DRAW_QUAD_STRIP,
- STG_D_DRAW_POLYGON,
- STG_D_PUSH,
- STG_D_POP,
- STG_D_ROTATE,
- STG_D_TRANSLATE,
+ DRAW_POINTS,
+ DRAW_LINES,
+ DRAW_LINE_STRIP,
+ DRAW_LINE_LOOP,
+ DRAW_TRIANGLES,
+ DRAW_TRIANGLE_STRIP,
+ DRAW_TRIANGLE_FAN,
+ DRAW_QUADS,
+ DRAW_QUAD_STRIP,
+ DRAW_POLYGON,
+ PUSH,
+ POP,
+ ROTATE,
+ TRANSLATE,
} type_t;
/** the start of all stg_d structures looks like this */
@@ -1919,10 +1919,15 @@
/** set a model's geometry (size and center offsets) */
void SetGeom( Geom src );
-
- /** set a model's geometry (size and center offsets) */
+
+ /** Set a model's fiducial return value. Values less than zero
+ are not detected by the fiducial sensor. */
void SetFiducialReturn( int fid );
-
+
+ /** Get a model's fiducial return value. */
+ int GetFiducialReturn()
+ { return vis.fiducial_return; }
+
/** set a model's fiducial key: only fiducial finders with a
matching key can detect this model as a fiducial. */
void SetFiducialKey( int key );
Modified: code/stage/trunk/libstageplugin/p_driver.cc
===================================================================
--- code/stage/trunk/libstageplugin/p_driver.cc 2009-01-27 01:18:55 UTC (rev
7305)
+++ code/stage/trunk/libstageplugin/p_driver.cc 2009-01-27 04:02:15 UTC (rev
7306)
@@ -137,7 +137,6 @@
*/
-
// TODO - configs I should implement
// - PLAYER_SONAR_POWER_REQ
// - PLAYER_BLOBFINDER_SET_COLOR_REQ
@@ -148,15 +147,14 @@
#include <unistd.h>
#include <string.h>
#include <math.h>
-
+#include "config.h"
#include "p_driver.h"
using namespace Stg;
const char* copyright_notice =
"\n * Part of the Player Project [http://playerstage.sourceforge.net]\n"
-" * Copyright 2000-2007 Richard Vaughan, Brian Gerkey and contributors.\n"
-" * Released under the GNU General Public License v2.\n"
-" **\n";
+" * Copyright 2000-2009 Richard Vaughan, Brian Gerkey and contributors.\n"
+" * Released under the GNU General Public License v2.\n";
#define STG_DEFAULT_WORLDFILE "default.world"
#define DRIVER_ERROR(X) printf( "Stage driver error: %s\n", X )
@@ -195,7 +193,7 @@
// driver can support and how to create a driver instance.
void StgDriver_Register(DriverTable* table)
{
- printf( "\n ** Stage plugin v%s **", "3.0dev" ); // XX TODO
+ printf( "\n ** %s plugin v%s **", PROJECT, VERSION ); // XX TODO
if( !player_quiet_startup )
{
@@ -417,8 +415,8 @@
player_devaddr_t* addr,
stg_model_type_t type )
{
- printf( "attempting to find a model under model \"%s\" of type [%d]\n",
- basename, type );
+ //printf( "attempting to find a model under model \"%s\" of type [%d]\n",
+ // basename, type );
Model* base_model = world->GetModel( basename );
Modified: code/stage/trunk/libstageplugin/p_fiducial.cc
===================================================================
--- code/stage/trunk/libstageplugin/p_fiducial.cc 2009-01-27 01:18:55 UTC
(rev 7305)
+++ code/stage/trunk/libstageplugin/p_fiducial.cc 2009-01-27 04:02:15 UTC
(rev 7306)
@@ -164,11 +164,10 @@
this->addr))
{
// fill in the data formatted player-like
-#warning disabled this bit
- player_fiducial_id_t pid;
-// pid.id = mod->FiducialReturn();
- pid.id = 0;
+ player_fiducial_id_t pid;
+ pid.id = mod->GetFiducialReturn();
+
// acknowledge, including the new ID
this->driver->Publish(this->addr, resp_queue,
PLAYER_MSGTYPE_RESP_ACK,
Modified: code/stage/trunk/libstageplugin/p_position.cc
===================================================================
--- code/stage/trunk/libstageplugin/p_position.cc 2009-01-27 01:18:55 UTC
(rev 7305)
+++ code/stage/trunk/libstageplugin/p_position.cc 2009-01-27 04:02:15 UTC
(rev 7306)
@@ -224,22 +224,15 @@
{
if(hdr->size == sizeof(player_position2d_position_mode_req_t))
{
- PRINT_WARN( "set control mode not implemented") ;
- player_position2d_position_mode_req_t* req =
- (player_position2d_position_mode_req_t*)data;
+ //player_position2d_position_mode_req_t* req =
+ // (player_position2d_position_mode_req_t*)data;
- stg_position_control_mode_t mode =
(stg_position_control_mode_t)req->state;
+ //stg_position_control_mode_t mode =
(stg_position_control_mode_t)req->state;
- // XX should this be in cfg instead?
- //cmd->mode = mode;
- //model_change( mod, &mod->cmd );
-
-
- //stg_model_set_property( mod, "position_control", &mode, sizeof(mode));
-
PRINT_WARN2( "Put model %s into %s control mode", this->mod->Token(),
mod ? "POSITION" : "VELOCITY" );
+ PRINT_WARN( "set control mode not yet implemented") ;
this->driver->Publish( this->addr, resp_queue,
PLAYER_MSGTYPE_RESP_ACK,
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit