From: Tim A. <ta...@en...> - 2004-05-19 05:44:33
|
No I'm not calling Register() from Init(). I'm doing it pretty much exactly as your example driver does: _______ Snippet from walker_player.cc_____ CDevice* Walker_Init(char* interface, ConfigFile* cf, int section) { if(strcmp(interface, PLAYER_POSITION_STRING)) { PLAYER_ERROR1("driver \"walker_player\" does not support interface " "\"%s\"\n", interface); return(NULL); } else return((CDevice*)(new Walker(interface, cf, section))); } ____________________________________ Thanks for the speedy reply, Tim Brian Gerkey wrote: > On Wed, 19 May 2004, Tim Arney wrote: > > > I'm having a problem using my own driver. I've probably missed > > something quite obvious, but here's what's happening. I have a driver > > called "walker_player" (walker_player.cc) which is heavily based on the > > trogdor driver. I am building it as a shared object as per the > > player-mod example. > > > > The driver is being registered in walker_player.cc: > > ________________________________ > > > > void Walker_Register(DriverTable* table) > > { > > table->AddDriver("walker_player", PLAYER_ALL_MODE, Walker_Init); > > } > > ________________________________ > > Are you calling Walker_Register() from _init()? The loader invokes > _init() when it loads your shared object, to give you a chance to do > anything that you need in order to initialize (e.g., register your driver > with the server). > > -- > Brian P. Gerkey ge...@ro... > Stanford AI Lab http://ai.stanford.edu/~gerkey |