IWorksDriver interface : MakeLocationAvailable method

MakeLocationAvailable method
Description
VWorks software calls the MakeLocationAvailable method when a labware is scheduled for delivery to a specified location. The plugin should perform all actions necessary to ensure that the target location is available for a labware-handling process. For example, a device might need to open a door and extend a labware stage at this point.
After VWorks software calls this method, it always calls the PlateDroppedOff, PlatePickedUp, or PlateTransferAborted method before making any other calls to the plugin. See “PlateDroppedOff method” , “PlatePickedUp method” , “PlateTransferAborted method” .
IMPORTANT The MakeLocationAvailable method should not return until the location is made available.
Syntax
 
HRESULT MakeLocationAvailable(
[in] BSTR LocationAvailableXML,
[out,retval] enum ReturnCode *retVal
);
Parameters
 
[in] A LocationAvailable XML block that contains information about the target location.
0 = The request was completed (RETURN_SUCCESS)
1 = Something was wrong with the input, so the request was not completed (RETURN_BAD_ARGS)
2 = The request was not completed (RETURN_FAIL)
MakeLocationAvailable method input
VWorks software passes a LocationAvailable XML block into the LocationAvailableXML parameter of the MakeLocationAvailable method.
LocationAvailable XML block
The LocationAvailable XML block contains the LocationAvailable element and all its children. This XML block contains information about the target location. The contents of the LocationAvailable XML block are different for storage and non-storage devices.
XML structure (storage device)
The value of the file attribute for the Velocity11 element is MetaData. See “Velocity11 element” .
 
<LocationAvailable>
<StorageLocation>
<Coordinates>
<StorageLocationCoordinate Name='Cassette' ... />
<StorageLocationCoordinate Name='Slot' ... />
</Coordinates>
<Location />
</StorageLocation>
<Command />
</LocationAvailable>
XML elements and attributes
See “LocationAvailable XML block components” .
Example of MakeLocationAvailable method input (storage device)
The following sample code is a LocationAvailable XML block that is received by the plugin from VWorks software as a string in the LocationAvailableXML parameter of the MakeLocationAvailable method. VWorks software tells the plugin to make the target location named Cassette 1, Slot 1 available for a labware-handling process.
 
<LocationAvailable IsRelidding='0' IsSimulating='0' IsSourceLocation='0'
Location='Cassette 1, Slot 1' Robot='Phantom Robot - 1'
RobotObjectName='Phantom Robot' >
<StorageLocation >
<Coordinates >
<StorageLocationCoordinate Name='Cassette' Value='1' />
<StorageLocationCoordinate Name='Slot' Value='1' />
</Coordinates>
<Location Group='0' MaxStackHeight='460' Offset='0' Type='1' />
</StorageLocation>
<Command Compiler='0' Editor='0' NextTaskToExecute='1' RequiresRefresh='0'
TaskRequiresLocation='1' VisibleAvailability='1' />
</LocationAvailable>
XML structure (non-storage device)
The value of the file attribute for the Velocity11 element is MetaData. See “Velocity11 element” .
 
<LocationAvailable>
<StorageLocation>
<Location />
</StorageLocation>
<Command />
</LocationAvailable>
XML elements and attributes
See “LocationAvailable XML block components” .
Example of MakeLocationAvailable method input (non-storage device)
The following sample code is a LocationAvailable XML block that is received by the plugin from VWorks software as a string in the LocationAvailableXML parameter of the MakeLocationAvailable method. VWorks software tells the plugin to make the target location named Stage on the non-storage device named PlatePad  1 available for a labware-handling process.
 
<LocationAvailable Device='PlatePad - 1' IsRelidding='0' IsSimulating='0'
IsSourceLocation='1' Labware='1536 Black Greiner' Location='Stage'
PlateDevice='PlatePad - 1' PlateLocation='Stage' PlateName='process - 1'
Robot='Phantom Robot - 1' RobotObjectName='Phantom Robot' >
<StorageLocation >
<Location Group='0' MaxStackHeight='460' Offset='0' Type='1' />
</StorageLocation>
<Command Compiler='0' Editor='0' NextTaskToExecute='1' RequiresRefresh='0'
TaskRequiresLocation='1' VisibleAvailability='1' />
</LocationAvailable>
Related information