VectorMoverTransport Class Reference

Inheritance diagram for VectorMoverTransport:

Capability VectorMover List of all members.

Detailed Description

Instantiation of VectorMoverTransport interface.

Please read the documentation for Capabilities for other important functions. Data structures will be placed behind accessor functions in the future.

Definition at line 81 of file VectorMoverTransport.H.

Public Member Functions

 VectorMoverTransport (const std::string &streamname)
 Standard constructor.
 VectorMoverTransport (const ConnectionStrategy &strategy, const std::string &gblName)
 Auto-wiring constructor.
 VectorMoverTransport (const std::string &streamname, const std::string &gblName)
 Like the standard constructor, but explicitly sets the global name.
 ~VectorMoverTransport ()
void init (const std::string &streamname, const ConnectionStrategy &strategy, const std::string &gblName)
 Initialization function, used by above.
void runUpdate ()
 Does all necessary work to update the data/info provided by the object.
void setManager (CommsManager *myManager_)
 Gives the object a reference to the global CORBAHelper.
void setCOMObject (COMBase *object)
 Returns the ID number of the instantiated interface.
void disconnect ()
 Does all necessary work to clean up the object's connection.
void activateSupplier ()
 Sets up the object as a supplier of data.
void activateConsumer ()
 Sets up the object as a consumer of data.
std::string getInterfaceName ()
 Returns the name of the interface.
void setStreamName (const std::string &name)
 Sets the name of the stream we're using.
void setGlobalName (const std::string &name)
 Sets the global name of this object.
bool newData ()
 True if there is new data.
bool newInfo ()
 True if there is new info/requests (depending on supplier/consumer mode).
void setAutoPing (const bool &val)
 Sets the state of the auto-ping function.
void doPing ()
 Manually tells the object to do a ping.
bool getQueueMode ()
 True if events are being queued, otherwise false.
void setQueueMode (const bool &val)
 Turn queue mode on or off.
VectorMoverTransportDataStruct getNextData ()
 Returns a struct containing the next event in the queue.
VectorMoverTransportInfoStruct getNextInfo ()
 Returns a struct containing the next event in the queue.
VectorMoverTransportInfoStruct getNextRequest ()
 Convenience function, calls getNextInfo().
void publishData ()
 Informs the object to publish data on the next update.
void publishInfo ()
 Informs the object to publish info on the next update.

Public Attributes

VectorMoverTransportDataStruct data
 The data structure.
VectorMoverTransportInfoStruct info
 Information-- read if consumer, write if supplier.
VectorMoverTransportInfoStruct requests
 Requests-- read if supplier, write if consumer.

Protected Attributes

COMObject< VectorMoverTransportInfoStruct,
VectorMoverTransportDataStruct > * 
myCOMObject
bool m_queue
bool m_initialize
std::queue< VectorMoverTransportDataStructm_dataVector
std::queue< VectorMoverTransportInfoStructm_infoVector
std::queue< VectorMoverTransportInfoStructm_requestVector


Constructor & Destructor Documentation

VectorMoverTransport ( const std::string &  streamname  )  [explicit]

Standard constructor.

Automatically generates a (hopefully) unique global name. If two of the same (consumer) binaries are running, it *will* fail. This is the only constructor you should use for suppliers.

Definition at line 37 of file VectorMoverTransport.cpp.

References VectorMoverTransport::init(), Capability::m_haveGlobalname, and WURDE::STRAT_NORMAL.

VectorMoverTransport ( const ConnectionStrategy strategy,
const std::string &  gblName 
)

Auto-wiring constructor.

Submits a request to MCP for a stream to connect to, based on global name. ConnectionStrategy should be auto for now.

Definition at line 44 of file VectorMoverTransport.cpp.

References VectorMoverTransport::init(), Capability::m_haveGlobalname, Capability::m_haveStream, and WURDE::STRAT_NORMAL.

VectorMoverTransport ( const std::string &  streamname,
const std::string &  gblName 
)

Like the standard constructor, but explicitly sets the global name.

Use this when starting multiple instances of the same binary, so that each instance can be assigned a separate name.

Definition at line 58 of file VectorMoverTransport.cpp.

References VectorMoverTransport::init(), and WURDE::STRAT_NORMAL.

~VectorMoverTransport (  ) 

Definition at line 102 of file VectorMoverTransport.cpp.

References VectorMoverTransport::myCOMObject, and Capability::myManager.


Member Function Documentation

void init ( const std::string &  streamname,
const ConnectionStrategy strategy,
const std::string &  gblName 
)

Initialization function, used by above.

Definition at line 62 of file VectorMoverTransport.cpp.

References VectorMoverTransport::info, Capability::m_doAutoPing, Capability::m_doPublishData, Capability::m_doPublishInfo, Capability::m_doTag, Capability::m_doTimestamp, Capability::m_globalname, Capability::m_haveGlobalname, Capability::m_haveStream, VectorMoverTransport::m_initialize, VectorMoverTransport::m_queue, Capability::m_sourceModule, Capability::m_strategy, Capability::m_streamname, Capability::m_streamRequest, Capability::m_supplier, VectorMoverTransport::myCOMObject, Time::now(), VectorMoverTransport::requests, VectorMoverTransportInfoStruct::source, WURDE::STAT_NULL, VectorMoverTransportInfoStruct::target, and VectorMoverTransportInfoStruct::timestamp.

Referenced by VectorMoverTransport::VectorMoverTransport().

void runUpdate (  )  [virtual]

Does all necessary work to update the data/info provided by the object.

Implements Capability.

Definition at line 271 of file VectorMoverTransport.cpp.

References Capability::m_doPublishData, Capability::m_doPublishInfo, and VectorMoverTransport::myCOMObject.

void setManager ( CommsManager myManager_  )  [virtual]

Gives the object a reference to the global CORBAHelper.

This will be changed soon to be less adaptor specific.

Implements Capability.

Definition at line 282 of file VectorMoverTransport.cpp.

References VectorMoverTransport::myCOMObject, and Capability::myManager.

void setCOMObject ( COMBase object  )  [inline, virtual]

Returns the ID number of the instantiated interface.

Implements Capability.

Definition at line 133 of file VectorMoverTransport.H.

References VectorMoverTransport::myCOMObject.

void disconnect (  )  [inline, virtual]

Does all necessary work to clean up the object's connection.

Implements Capability.

Definition at line 134 of file VectorMoverTransport.H.

References VectorMoverTransport::myCOMObject.

void activateSupplier (  )  [virtual]

Sets up the object as a supplier of data.

Implements Capability.

Definition at line 111 of file VectorMoverTransport.cpp.

References VectorMoverTransportInfoStruct::absolute, VectorMoverTransportDataStruct::angleToGoal, VectorMoverTransportInfoStruct::brake, WURDE::C_CONSUMER, WURDE::C_SUPPLIER, VectorMoverTransport::data, VectorMoverTransportDataStruct::distanceToGoal, WURDE::g_fatal(), VectorMoverTransportInfoStruct::goalHasLocation, VectorMoverTransportInfoStruct::goalHasTheta, VectorMoverTransportInfoStruct::goalPose, VectorMoverTransportDataStruct::hasGoal, VectorMoverTransport::info, VectorMoverTransport::m_dataVector, Capability::m_doAutoPing, Capability::m_globalname, Capability::m_haveGlobalname, Capability::m_haveStream, VectorMoverTransport::m_infoVector, VectorMoverTransport::m_initialize, VectorMoverTransport::m_queue, VectorMoverTransport::m_requestVector, Capability::m_streamname, Capability::m_supplier, VectorMoverTransportInfoStruct::maxRotationVelocity, VectorMoverTransportInfoStruct::maxTranslationVelocity, VectorMoverTransport::myCOMObject, VectorMoverTransport::requests, Writable::setCMode(), VectorMoverTransportInfoStruct::source, and VectorMoverTransportDataStruct::source.

Referenced by VectorMoverTransport::setStreamName().

void activateConsumer (  )  [virtual]

Sets up the object as a consumer of data.

Implements Capability.

Definition at line 190 of file VectorMoverTransport.cpp.

References VectorMoverTransportInfoStruct::absolute, VectorMoverTransportDataStruct::angleToGoal, VectorMoverTransportInfoStruct::brake, WURDE::C_CONSUMER, WURDE::C_SUPPLIER, VectorMoverTransport::data, VectorMoverTransportDataStruct::distanceToGoal, WURDE::g_fatal(), CommsManager::getName(), VectorMoverTransportInfoStruct::goalHasLocation, VectorMoverTransportInfoStruct::goalHasTheta, VectorMoverTransportInfoStruct::goalPose, VectorMoverTransportDataStruct::hasGoal, VectorMoverTransport::info, VectorMoverTransport::m_dataVector, Capability::m_doAutoPing, Capability::m_globalname, Capability::m_haveGlobalname, Capability::m_haveStream, VectorMoverTransport::m_infoVector, VectorMoverTransport::m_initialize, VectorMoverTransport::m_queue, VectorMoverTransport::m_requestVector, Capability::m_strategy, Capability::m_streamname, Capability::m_supplier, VectorMoverTransportInfoStruct::maxRotationVelocity, VectorMoverTransportInfoStruct::maxTranslationVelocity, VectorMoverTransport::myCOMObject, Capability::myManager, VectorMoverTransport::requests, Writable::setCMode(), VectorMoverTransportDataStruct::source, VectorMoverTransportInfoStruct::source, WURDE::STRAT_NORMAL, and VECTORMOVERTRANSPORT.

Referenced by VectorMoverTransport::setStreamName().

std::string getInterfaceName (  )  [inline, virtual]

Returns the name of the interface.

We're identifying interfaces by strings, rather than an enum, as it saves us from having to autogenerate even more code

Implements Capability.

Definition at line 137 of file VectorMoverTransport.H.

References VECTORMOVERTRANSPORT.

void setStreamName ( const std::string &  name  )  [virtual]

Sets the name of the stream we're using.

Implements Capability.

Definition at line 739 of file VectorMoverTransport.cpp.

References VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), Capability::m_globalname, Capability::m_haveStream, VectorMoverTransport::m_initialize, Capability::m_streamname, Capability::m_streamRequest, Capability::m_supplier, VectorMoverTransport::myCOMObject, and WURDE::STAT_OKAY.

void setGlobalName ( const std::string &  name  )  [virtual]

Sets the global name of this object.

Implements Capability.

Definition at line 767 of file VectorMoverTransport.cpp.

References Capability::m_globalname, Capability::m_haveGlobalname, Capability::m_streamname, Capability::m_supplier, and VectorMoverTransport::myCOMObject.

bool newData (  )  [virtual]

True if there is new data.

Implements Capability.

Definition at line 314 of file VectorMoverTransport.cpp.

References VectorMoverTransport::m_dataVector, VectorMoverTransport::m_queue, and VectorMoverTransport::myCOMObject.

bool newInfo (  )  [virtual]

True if there is new info/requests (depending on supplier/consumer mode).

Implements Capability.

Definition at line 326 of file VectorMoverTransport.cpp.

References VectorMoverTransport::m_infoVector, VectorMoverTransport::m_queue, VectorMoverTransport::m_requestVector, Capability::m_supplier, and VectorMoverTransport::myCOMObject.

void setAutoPing ( const bool &  val  )  [virtual]

Sets the state of the auto-ping function.

If true, consumers will automatically send out a blank MESSAGE_PING to the stream source, and suppliers will automatically filter out these requests and send a copy of the last published info and data.

Should consumers be set up to send out this request on a regular basis?

Implements Capability.

Definition at line 790 of file VectorMoverTransport.cpp.

References Capability::m_doAutoPing, and VectorMoverTransport::myCOMObject.

void doPing (  )  [virtual]

Manually tells the object to do a ping.

If a consumer, sends a ping request to its supplier, if a supplier, sends out a copy of the last published info and data messages.

Implements Capability.

Definition at line 784 of file VectorMoverTransport.cpp.

References VectorMoverTransport::myCOMObject.

bool getQueueMode (  )  [inline]

True if events are being queued, otherwise false.

Definition at line 149 of file VectorMoverTransport.H.

References VectorMoverTransport::m_queue.

void setQueueMode ( const bool &  val  ) 

Turn queue mode on or off.

Definition at line 290 of file VectorMoverTransport.cpp.

References VectorMoverTransport::m_dataVector, VectorMoverTransport::m_infoVector, VectorMoverTransport::m_queue, VectorMoverTransport::m_requestVector, and VectorMoverTransport::myCOMObject.

Referenced by main().

VectorMoverTransportDataStruct getNextData (  ) 

Returns a struct containing the next event in the queue.

Also copies the contents of that event into the data struct.

Definition at line 475 of file VectorMoverTransport.cpp.

References VectorMoverTransportDataStruct::angleToGoal, VectorMoverTransport::data, VectorMoverTransportDataStruct::distanceToGoal, VectorMoverTransportDataStruct::hasGoal, VectorMoverTransport::m_dataVector, VectorMoverTransport::m_queue, VectorMoverTransport::myCOMObject, VectorMoverTransportDataStruct::source, and VectorMoverTransportDataStruct::timestamp.

VectorMoverTransportInfoStruct getNextInfo (  ) 

Returns a struct containing the next event in the queue.

Also copies the contents of that event into the info/requests struct.

Definition at line 503 of file VectorMoverTransport.cpp.

References VectorMoverTransportInfoStruct::absolute, VectorMoverTransportInfoStruct::brake, WURDE::C_CONSUMER, WURDE::C_SUPPLIER, VectorMoverTransportInfoStruct::goalHasLocation, VectorMoverTransportInfoStruct::goalHasTheta, VectorMoverTransportInfoStruct::goalPose, VectorMoverTransport::info, VectorMoverTransport::m_infoVector, VectorMoverTransport::m_queue, VectorMoverTransport::m_requestVector, Capability::m_supplier, VectorMoverTransportInfoStruct::maxRotationVelocity, VectorMoverTransportInfoStruct::maxTranslationVelocity, VectorMoverTransportInfoStruct::mType, VectorMoverTransport::myCOMObject, VectorMoverTransport::requests, Writable::setCMode(), VectorMoverTransportInfoStruct::source, VectorMoverTransportInfoStruct::target, and VectorMoverTransportInfoStruct::timestamp.

Referenced by VectorMoverTransport::getNextRequest().

VectorMoverTransportInfoStruct getNextRequest (  )  [inline]

Convenience function, calls getNextInfo().

Definition at line 171 of file VectorMoverTransport.H.

References VectorMoverTransport::getNextInfo().

Referenced by main().

void publishData (  )  [virtual]

Informs the object to publish data on the next update.

Implements Capability.

Definition at line 343 of file VectorMoverTransport.cpp.

References VectorMoverTransportDataStruct::angleToGoal, VectorMoverTransport::data, VectorMoverTransportDataStruct::distanceToGoal, VectorMoverTransportDataStruct::hasGoal, VectorMoverTransport::m_dataVector, Capability::m_doPublishData, Capability::m_doTag, Capability::m_doTimestamp, Capability::m_globalname, VectorMoverTransport::m_queue, Capability::m_supplier, Time::now(), VectorMoverTransportDataStruct::source, and VectorMoverTransportDataStruct::timestamp.

Referenced by main().

void publishInfo (  )  [virtual]

Informs the object to publish info on the next update.

Implements Capability.

Definition at line 369 of file VectorMoverTransport.cpp.

References VectorMoverTransportInfoStruct::absolute, VectorMoverTransportInfoStruct::brake, WURDE::C_CONSUMER, WURDE::C_SUPPLIER, VectorMoverTransportInfoStruct::goalHasLocation, VectorMoverTransportInfoStruct::goalHasTheta, VectorMoverTransportInfoStruct::goalPose, VectorMoverTransport::info, Capability::m_doPublishInfo, Capability::m_doTag, Capability::m_doTimestamp, Capability::m_globalname, VectorMoverTransport::m_infoVector, VectorMoverTransport::m_queue, VectorMoverTransport::m_requestVector, Capability::m_streamname, Capability::m_supplier, VectorMoverTransportInfoStruct::maxRotationVelocity, VectorMoverTransportInfoStruct::maxTranslationVelocity, WURDE::MESSAGE_INFO, WURDE::MESSAGE_REQUEST, VectorMoverTransportInfoStruct::mType, Time::now(), VectorMoverTransport::requests, Writable::setCMode(), VectorMoverTransportInfoStruct::source, VectorMoverTransportInfoStruct::target, and VectorMoverTransportInfoStruct::timestamp.


Member Data Documentation

VectorMoverTransportDataStruct data

The data structure.

Read from this if you're a consumer, write to it if you're a supplier.

Definition at line 118 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::getNextData(), main(), and VectorMoverTransport::publishData().

VectorMoverTransportInfoStruct info

Information-- read if consumer, write if supplier.

Definition at line 123 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::getNextInfo(), VectorMoverTransport::init(), and VectorMoverTransport::publishInfo().

VectorMoverTransportInfoStruct requests

Requests-- read if supplier, write if consumer.

Definition at line 128 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::getNextInfo(), VectorMoverTransport::init(), main(), VectorMover::moveToPoint(), VectorMover::moveToPose(), VectorMover::moveToRelativePoint(), VectorMover::moveToRelativePose(), VectorMoverTransport::publishInfo(), VectorMover::rotateToAngle(), VectorMover::rotateToRelativeAngle(), VectorMover::stop(), and VectorMover::translateFixedDistance().

COMObject<VectorMoverTransportInfoStruct, VectorMoverTransportDataStruct>* myCOMObject [protected]

Definition at line 178 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::disconnect(), VectorMoverTransport::doPing(), VectorMoverTransport::getNextData(), VectorMoverTransport::getNextInfo(), VectorMoverTransport::init(), VectorMoverTransport::newData(), VectorMoverTransport::newInfo(), VectorMoverTransport::runUpdate(), VectorMoverTransport::setAutoPing(), VectorMoverTransport::setCOMObject(), VectorMoverTransport::setGlobalName(), VectorMoverTransport::setManager(), VectorMoverTransport::setQueueMode(), VectorMoverTransport::setStreamName(), and VectorMoverTransport::~VectorMoverTransport().

bool m_queue [protected]

Definition at line 180 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::getNextData(), VectorMoverTransport::getNextInfo(), VectorMoverTransport::getQueueMode(), VectorMoverTransport::init(), VectorMoverTransport::newData(), VectorMoverTransport::newInfo(), VectorMoverTransport::publishData(), VectorMoverTransport::publishInfo(), and VectorMoverTransport::setQueueMode().

bool m_initialize [protected]

Definition at line 183 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::init(), and VectorMoverTransport::setStreamName().

std::queue<VectorMoverTransportDataStruct> m_dataVector [protected]

Definition at line 184 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::getNextData(), VectorMoverTransport::newData(), VectorMoverTransport::publishData(), and VectorMoverTransport::setQueueMode().

std::queue<VectorMoverTransportInfoStruct> m_infoVector [protected]

Definition at line 185 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::getNextInfo(), VectorMoverTransport::newInfo(), VectorMoverTransport::publishInfo(), and VectorMoverTransport::setQueueMode().

std::queue<VectorMoverTransportInfoStruct> m_requestVector [protected]

Definition at line 186 of file VectorMoverTransport.H.

Referenced by VectorMoverTransport::activateConsumer(), VectorMoverTransport::activateSupplier(), VectorMoverTransport::getNextInfo(), VectorMoverTransport::newInfo(), VectorMoverTransport::publishInfo(), and VectorMoverTransport::setQueueMode().


The documentation for this class was generated from the following files:
Generated on Thu Feb 1 15:31:55 2007 for WURDE by  doxygen 1.5.1