DWARF Documentation
"The only thing worse than no documentation is incorrect documentation."
Introduction, Tutorials, White Papers
There is a short
introduction paper about the ideas and technology behind Dwarf. If you are only interested in
Augmented Reality itself, read the
Introduction to Augmented Reality.
The documentation on this site is intended to be the developers documentation. For introduction into the design and ideas of DWARF, please refer to the
PublicationList.
For documentation about certain topics in context of the Dwarf deployment and developmentsee the
Dwarf Tutorials. Also see the
DWARF FAQ (read this first) and the
DWARF Glossary (work in progress)
Service Manager Interfaces
Interfaces for implementing new Services.
<YOUR_DWARF_DIR>src/idl/DWARF/Service.idl
for the exact interface definitions.
The common libraries (see below) ease use of these interfaces. They provide
TemplateServices and other classes (as event receivers, event senders, ...) that manage a lot of the Behavioral Interfaces, the Communication Interfaces (Protocols) and the
ServiceManager Interfaces.
Behavioral Interfaces
- SvcService: What every service must support to be a Service
- SvcStartup: Starting and stopping a Service, to let a service know to what Communication Interfaces it will be connected.
- SvcSession: For more explicit control (kowing about sessions) over communication partners. See DOC:group__middlewareidlsession.html
- SvcSelection: Implementing a "picky" service, or let the user decide ("don't trust Asa"-interface). See DOC:group__middlewareidlselection.html
Communication Interfaces (Protocols)
- SvcProtObjrefImporter?: Allows Corba method calls
- ObjrefExporter?: no exporter interface, exporter object itself is exported
- SvcProtPushSupplier?, SvcProtPullSupplier?, SvcProtPushConsumer: Corba Events using Notification Service; supplier gets consumer to push into; consumer's push method is called
- SvcProtShmem?: Shared Memory; one interface for readers and writers
- ServiceDescription
- ServiceManagerInternal?: SMgrDescribeServices (newServiceDesc, ...), SMgrRegisterServices (registerService, unregisterService, registerServiceCallbacks)
- Service Manager Callbacks (method
ServiceManager.registerServiceCallbacks
)
- AttributesChanged: On ServiceDescription as well as Needs and Abilities
- SvcLoad?: How a service is to be loaded (default: as separate process)
- EventChannelFactory: How the event channels are created (default: as separate process per Need or Ability)
- SvcInstantiation?: Deals with clones (templates of services)
Source Code Documentation
Doxygen API documentation (IDLs (distributed types) C++ and python)
Browse:
The documentation is generated every day and can be found here:
Doxygen Documentation
Doxygen documentation conventions:
For all those that contribute code to the cvs repository there are very few conventions that should be applied:
- Only documented source files are used as doxygen input so if your sourcefiles are documented add them to the list of input files in
CVSROOT/doc/conf/dwarfdoxy.conf (INPUT key).
- Document your code according to the doxygen Syntax.
- Give a brief and a detailed description for each class.
- Describe all methods of each class.
- Describe all parameters of each method (use \param command).
- Mark those methods that are buggy or those that are only used internal (use \bug or \warning command).
- Define a meaningful group and cluster your classes in that group e.g. one group per service (use \defgroup and \ingroup command). Further have a look at DOC:modules.html and see if your classes fit into one of the existing groups.
Look
here for detailed information about doxygen.
Javadoc API documentation
Browse Common Libraries:
The Java Documentation can be found at
http://campar.in.tum.de/personal/fardemo/javadoc .
Same as Doxygen the Javadoc it is also generated every day.
Javadoc documentation conventions:
see the
DwarfJavaTutorial
Services
Documentation of hopefully all services, grouped by some intelligence.
Each service (should) list(s) Intention, Required Libs and Jars, Information about Installation and Configuration.
Tools, Debug and Testing Subsystem
Well Documented | Somehow Documented | N.A. |
---|
|
|
- ServiceMessageAlerter
- ServiceMessageSender
- ServiceCollisionReceiver
- ServiceReceivePoseData
- ServiceSendPoseData
- ServiceFreeWRLTestScenes
- ServiceImageViewer
|
Tracking Subsystem
- ServiceARTTracker: This service provides tracking data from the DTrack system by A.R.T.
- ARToolkit based:
- ServiceMarkerConfiguration?
- ServiceMarkerDetection?
- ServiceObjectCalibration
- ServiceIntersenseTracker?: Provides tracking data from the IS600 system by Intersense.
- ServiceCalibration?
- ServiceCollisionDetection?
- ServiceMultiTracker?
Input Subsystem
Presentation Subsystem
Application Subsystems