Introduction : VWorks plugin fundamentals

VWorks plugin fundamentals
The rest of this chapter provides the following basic information:
Information exchange
Information is exchanged between VWorks software and a plugin by passing XML metadata strings as parameters in COM interface methods.
To work with VWorks software, a plugin must do the following:
Parse XML strings that VWorks software provides as input parameters in the COM interface methods
You can write your own utilities to build the XML strings, or you can use the Microsoft COM implementation of the XML Document Object Model (DOM) classes, which enables you to construct XML documents in memory. For more information about DOM, visit the Microsoft Developer Center at http://windowssdk.msdn.microsoft.com/en-us/library/ms766487.aspx.
IMPORTANT All XML strings must be well-formed, or the plugin will fail to load when VWorks software is started.
Interfaces overview
VWorks software defines the COM interfaces that are listed in the following table. All VWorks device driver plugins must implement the IWorksDriver, IControllerClient, and IWorksDiags interfaces. The remaining interfaces are optional and can be implemented by the plugins that require them.
 
VWorks plugins that control barcode readers must implement the IBCRDriver interface.
All VWorks plugins must implement the IControllerClient interface to get a pointer from VWorks software to the IWorksController interface.
VWorks plugins that manage I/O signals must implement the IIODriver interface.
VWorks plugins that perform labware-labeling tasks must implement the ILabelerDriver interface.
VWorks plugins that perform delidding and relidding operations must implement the ILiddingDriver interface.
VWorks plugins that return measurement values and monitor device measurements must implement the IMeasurementDriver interface.
Reserved for internal use. VWorks plugins should not implement the IPipetteDriver interface.
Not used
VWorks plugins that use robots to move labware must implement the IRobotDriver interface.
VWorks plugins that perform Centrifuge tasks must implement the ISpinDriver interface.
VWorks plugins that control labware stacker devices must implement the IStackerDriver interface.
VWorks plugins that control labware storage devices must implement the IStorageDriver interface.
VWorks plugins that want to act on events in VWorks software must implement the IVHooks interface.
VWorks plugins that perform simultaneous tasks must implement the IWorksAsyncDriver interface.
VWorks software implements the IWorksController interface. Plugins must call IWorksController methods to do the following:
Notify VWorks software about user activities
Communicate with another plugin using VWorks software as the intermediary
Tell VWorks software to perform certain actions
Return information to VWorks software
To open diagnostics dialog boxes in VWorks software, all VWorks device driver plugins must implement the IWorksDiags interface.
All VWorks device driver plugins must implement the IWorksDriver interface. VWorks software calls IWorksDriver methods to do the following:
Get an icon or description of a device or task from the plugin
Get the description of the error that occurred when the plugin returned an error code
Log errors and warnings reported by the plugin during protocol compilation
Provide the means for two plugins to communicate with each other
To export nonstandard registry and file data associated with a profile, VWorks plugins must implement the IWorksProfiles interface.