PoseDataLogger
This service writes
PoseData events which are sent out by other services into a file. The services whose events have to be logged are specified in the XML service description, as well as the name of the output file.
Needs
The service has a
PoseData need. All
PoseData events fitting this need are written to a file in chronological order. If you want to log the events of a single service, specify this as a predicate (see below).
Attributes
The attribute
OutputFile
has to be used to specify the name of the file which will receive the
PoseData events (for an example, see below). If the file already exists, it will be overridden.
Interaction with other Services
The service only receives the
PoseData events of other services. It has no ability which can be used by other services.
More Documentation
The source can be found in the cvs repository:
http://cvsbruegge.informatik.tu-muenchen.de/cgi-bin/viewcvs.cgi/src/services/PoseDataLogger/?cvsroot=dwarf
How-To
Write your own XML configuration of this service. An example looks as follows:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE service SYSTEM "service.dtd">
<service name="PoseDataLogger" startOnDemand="false" stopOnNoUse="false">
<attribute name="OutputFile" value="/tmp/ARTDaten"/>
<ability name="status" type="Status">
<connector protocol="ObjrefExporter"/>
</ability>
<need name="WinkelART" type="PoseData" minInstances="0" maxInstances="1" predicate="(&(ThingID=WinkelART)(ThingType=6DObject))">
<connector protocol="PushConsumer"/>
</need>
</service>
With this XML service description, the service would write all
PoseData events which fit the predicate (
ThingID?=WinkelART and
ThingType?=6DObject) to the file
/tmp/ARTDaten
.
Installation
No special packages are required. If you have a running DWARF installation, do a
make install
in the PoseDataLogger directory. This creates an application called
PoseDataLogger
which can be started on the command line.
Testing
Start
PoseDataLogger
, start some service that provides a
PoseData ability (for example
ServiceARTTracker). If you think that enough data has been collected, interrupt the PoseDataLogger service with CTRL+C and look at the file specified in the service description.
Command Line Parameter
You can use the following command line parameter:
- -Dconfig=<string>: set the name of the service as specified in the XML service description (default
PoseDataLogger
). This allows to start multiple instances of the service which log the events of different services.
Known Bugs and Limitations
No error handling is done, so it might happen that the service terminates unexpectedly (e.g. if no
OutputFile
was specified or creating the file is not possible).
History
- written by SvenHennauer
- used to develop and test the MultiTracker? service
--
SvenHennauer - 27 Nov 2003