I was fumbling around with the .dll’s and I was able to spot some useful bits of information with regard to custom attributes.
I thought about teasing apart this info but figures it would be useful for determination of input variables as well.
private void AddGeneralAttributesForLabware()
{
this._templateList.Add("KeepForNewRun", this._factory.CreateCustomAttributeTemplate("KeepForNewRun", "Indicates that instances of last runtime workspace shall be taken for new run", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) true));
this._templateList.Add("Static_Labware", this._factory.CreateCustomAttributeTemplate("Static_Labware", "Defines naming rule for Labware Group Editor", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) true));
this._templateList.Add("StackerType", this._factory.CreateCustomAttributeTemplate("StackerType", "Stacker / Te-MagS plate type", true, string.Empty, (AttributeDataType) 2, string.Empty, (object) 1));
this._templateList.Add("WasherPlateType", this._factory.CreateCustomAttributeTemplate("WasherPlateType", "Washer plate type", true, string.Empty, (AttributeDataType) 2, string.Empty, (object) 1));
}
private void AddPipettingAttributesForLabware()
{
this._templateList.Add("ClldSensitivityCalculationLabware", this._factory.CreateCustomAttributeTemplate("ClldSensitivityCalculationLabware", "Defines labware type used for cLLD sensitivity calculation", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("IsFcaLiquidWaste", this._factory.CreateCustomAttributeTemplate("IsFcaLiquidWaste", "Indicates whether labware is used as FCA liquid waste", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("IsMcaLiquidWaste", this._factory.CreateCustomAttributeTemplate("IsMcaLiquidWaste", "Indicates whether labware is used as MCA liquid waste", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("IsLiquidAspiratableIntoDevice", this._factory.CreateCustomAttributeTemplate("IsLiquidAspiratableIntoDevice", "Indicates whether the tool can be used to aspirate liquid", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("MountOffset", this._factory.CreateCustomAttributeTemplate("MountOffset", "Offset used when mounting tip; reduces Z-dimension of tip", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
this._templateList.Add("SensitivityOffset", this._factory.CreateCustomAttributeTemplate("SensitivityOffset", "Offset to apply to cLLD sensitivity group when performing cLLD in labware", true, "-3;-2;-1;0;1;2;3", (AttributeDataType) 2, string.Empty, (object) 0));
this._templateList.Add("TipCapacity", this._factory.CreateCustomAttributeTemplate("TipCapacity", "Capacity of a single tip; used for context check", false, string.Empty, (AttributeDataType) 3, "[ul]", (object) 19.0));
this._templateList.Add("TipDimension", this._factory.CreateCustomAttributeTemplate("TipDimension", "Size of the tip in X/Y/Z", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("ToolType", this._factory.CreateCustomAttributeTemplate("ToolType", "ToolType", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("ToolIdName", this._factory.CreateCustomAttributeTemplate("ToolIdName", "ToolIdName", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("NoDiTiDetectedThreshold", this._factory.CreateCustomAttributeTemplate("NoDiTiDetectedThreshold", "No Tips Threshold", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 7.3));
this._templateList.Add("ContinueOnFailedFCATipPickup", this._factory.CreateCustomAttributeTemplate("ContinueOnFailedFCATipPickup", "Indicates whether to automatically continue at next position if DiTi Blocked error occurs", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("PiercingDetectionHeightCompensation", this._factory.CreateCustomAttributeTemplate("PiercingDetectionHeightCompensation", "Detection height compensation offset for piercing", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
}
private void AddRoboticAttributesForLabware()
{
this._templateList.Add("HeavyObject", this._factory.CreateCustomAttributeTemplate("HeavyObject", "Indicates that a labware is a heavy object and shall be moved with limited speed", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("Grasp_location", this._factory.CreateCustomAttributeTemplate("Grasp_location", "Plate grip offset from default grasp position", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Grasp_location_W", this._factory.CreateCustomAttributeTemplate("Grasp_location_W", "Plate grip offset Wide", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Grasp_location_N", this._factory.CreateCustomAttributeTemplate("Grasp_location_N", "Plate grip offset Narrow", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Force", this._factory.CreateCustomAttributeTemplate("Force", "Force to grip plate", false, string.Empty, (AttributeDataType) 2, "[%]", (object) 50));
this._templateList.Add("LidHandlingManual", this._factory.CreateCustomAttributeTemplate("LidHandlingManual", "If true no automatic lid handling will be done.", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) true));
this._templateList.Add("Grip_delta", this._factory.CreateCustomAttributeTemplate("Grip_delta", "Distance added to grip distance when releasing labware or lid", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 5.0));
this._templateList.Add("FcaGripZOffset", this._factory.CreateCustomAttributeTemplate("FcaGripZOffset", "The height the labware is gripped by FCA grippers", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
}
private void AddToolAttributesForLabware()
{
this._templateList.Add("ConnectorOffset", this._factory.CreateCustomAttributeTemplate("ConnectorOffset", "Tips: Offset between tip and adapter, Head Adapter: Offset between head and Z-Axis", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("DisplayToolName", this._factory.CreateCustomAttributeTemplate("DisplayToolName", "User-friendly name; used for Infopad, Controlbar and dropdown lists", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("DiTiTypeGroup", this._factory.CreateCustomAttributeTemplate("DiTiTypeGroup", "Group of DiTi type; used for liquid subclasses", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("DiTiToolType", this._factory.CreateCustomAttributeTemplate("DiTiToolType", "Identifier for the DiTi type", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("TipMinimumSubmergeDepth", this._factory.CreateCustomAttributeTemplate("TipMinimumSubmergeDepth", "Tip Minimum Submerge depth to prevent air aspiration", false, string.Empty, (AttributeDataType) 3, "mm", (object) 4.5));
this._templateList.Add("FirstTipPositionOffset", this._factory.CreateCustomAttributeTemplate("FirstTipPositionOffset", "Offset between reference MCA384 tip adapter and this adapter", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("IsForMCA96TipPickup", this._factory.CreateCustomAttributeTemplate("IsForMCA96TipPickup", "Indicates whether the tool is an adapter for MCA96 tips", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("ListNumberInDropDownMenu", this._factory.CreateCustomAttributeTemplate("ListNumberInDropDownMenu", "Sorting rule in steps of ten for list of values in script command parameter 'AdapterPlate'", false, string.Empty, (AttributeDataType) 2, string.Empty, (object) 20));
this._templateList.Add("MCA384ChannelsPerTip", this._factory.CreateCustomAttributeTemplate("MCA384ChannelsPerTip", "Factor for script commands when EVA adapter is mounted", false, string.Empty, (AttributeDataType) 2, string.Empty, (object) 1));
this._templateList.Add("MountColumnRowWise", this._factory.CreateCustomAttributeTemplate("MountColumnRowWise", "Indicates that partial tips with this tool are only possible column- or row-wise", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("NbrOfTipsX", this._factory.CreateCustomAttributeTemplate("NbrOfTipsX", "Maximal connectable tips on an adapter in X-dimension", false, string.Empty, (AttributeDataType) 2, string.Empty, (object) 24));
this._templateList.Add("NbrOfTipsY", this._factory.CreateCustomAttributeTemplate("NbrOfTipsY", "Maximal connectable tips on an adapter in Y-dimension", false, string.Empty, (AttributeDataType) 2, string.Empty, (object) 16));
this._templateList.Add("OffsetConeIntoTip", this._factory.CreateCustomAttributeTemplate("OffsetConeIntoTip", "Minus offset to calculate new Z-dimension of tool after tip is mounted on the adapter", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 9.3));
this._templateList.Add("TipSpacingX", this._factory.CreateCustomAttributeTemplate("TipSpacingX", "Spacing between single tips on tip adapter/block in X-dimension", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 4.5));
this._templateList.Add("TipSpacingY", this._factory.CreateCustomAttributeTemplate("TipSpacingY", "Spacing between single tips on tip adapter/block in Y-dimension", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 4.5));
this._templateList.Add("ReferenceWidth", this._factory.CreateCustomAttributeTemplate("ReferenceWidth", "Reference width of the tool", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("FingerTypeId", this._factory.CreateCustomAttributeTemplate("FingerTypeId", "Finger type number reported by memory chip of FES fingers.", false, string.Empty, (AttributeDataType) 2, string.Empty, (object) 100));
this._templateList.Add("GripperCenterOffset", this._factory.CreateCustomAttributeTemplate("GripperCenterOffset", "Offset from rotation center to plate grip position", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
this._templateList.Add("GripperZOffset", this._factory.CreateCustomAttributeTemplate("GripperZOffset", "Z-Offset from rotation center to plate grip position", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 138.3));
this._templateList.Add("GripperSpreadOffset", this._factory.CreateCustomAttributeTemplate("GripperSpreadOffset", "Measured between the grippers", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
this._templateList.Add("LeftGripperBoundingBox1Dimension", this._factory.CreateCustomAttributeTemplate("LeftGripperBoundingBox1Dimension", "LeftGripperBoundingBox1Dimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("LeftGripperBoundingBox1Offset", this._factory.CreateCustomAttributeTemplate("LeftGripperBoundingBox1Offset", "LeftGripperBoundingBox1Offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("LeftGripperBoundingBox2Dimension", this._factory.CreateCustomAttributeTemplate("LeftGripperBoundingBox2Dimension", "LeftGripperBoundingBox2Dimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("LeftGripperBoundingBox2Offset", this._factory.CreateCustomAttributeTemplate("LeftGripperBoundingBox2Offset", "LeftGripperBoundingBox2Offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("LeftGripperBoundingBox3Dimension", this._factory.CreateCustomAttributeTemplate("LeftGripperBoundingBox3Dimension", "LeftGripperBoundingBox3Dimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("LeftGripperBoundingBox3Offset", this._factory.CreateCustomAttributeTemplate("LeftGripperBoundingBox3Offset", "LeftGripperBoundingBox3Offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("LeftGripperBoundingBox4Dimension", this._factory.CreateCustomAttributeTemplate("LeftGripperBoundingBox4Dimension", "LeftGripperBoundingBox4Dimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("LeftGripperBoundingBox4Offset", this._factory.CreateCustomAttributeTemplate("LeftGripperBoundingBox4Offset", "LeftGripperBoundingBox4Offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("GripperBoundingBoxPlaceholderOffset", this._factory.CreateCustomAttributeTemplate("GripperBoundingBoxPlaceholderOffset", "GripperBoundingBoxPlaceholderOffset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("GripperBoundingBoxPlaceholderDimension", this._factory.CreateCustomAttributeTemplate("GripperBoundingBoxPlaceholderDimension", "GripperBoundingBoxPlaceholderDimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("RightGripperBoundingBox1Dimension", this._factory.CreateCustomAttributeTemplate("RightGripperBoundingBox1Dimension", "RightGripperBoundingBox1Dimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("RightGripperBoundingBox1Offset", this._factory.CreateCustomAttributeTemplate("RightGripperBoundingBox1Offset", "RightGripperBoundingBox1Offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("RightGripperBoundingBox2Dimension", this._factory.CreateCustomAttributeTemplate("RightGripperBoundingBox2Dimension", "RightGripperBoundingBox2Dimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("RightGripperBoundingBox2Offset", this._factory.CreateCustomAttributeTemplate("RightGripperBoundingBox2Offset", "RightGripperBoundingBox2Offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("RightGripperBoundingBox3Dimension", this._factory.CreateCustomAttributeTemplate("RightGripperBoundingBox3Dimension", "RightGripperBoundingBox3Dimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("RightGripperBoundingBox3Offset", this._factory.CreateCustomAttributeTemplate("RightGripperBoundingBox3Offset", "RightGripperBoundingBox3Offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("RightGripperBoundingBox4Dimension", this._factory.CreateCustomAttributeTemplate("RightGripperBoundingBox4Dimension", "RightGripperBoundingBox4Dimension", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("RightGripperBoundingBox4Offset", this._factory.CreateCustomAttributeTemplate("RightGripperBoundingBox4Offset", "RightGripperBoundingBox4Offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("MountOffsetOfFingerLeft", this._factory.CreateCustomAttributeTemplate("MountOffsetOfFingerLeft", "MountOffsetOfFingerLeft", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("MountOffsetOfFingerRight", this._factory.CreateCustomAttributeTemplate("MountOffsetOfFingerRight", "MountOffsetOfFingerRight", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
}
private void CreateDefaultCustomAttributesForCarrier(IDataStore dataStore)
{
this.AddGeneralAttributesForCarrier();
this.AddPipettingAttributesForCarrier();
this.AddRoboticAttributesForCarrier();
this.AddDefaultCustomAttributesForAllTypes();
Guid guid = new Guid("11111111-1234-aaaa-ffff-99999999999b");
StringBuilder stringBuilder = new StringBuilder();
foreach (KeyValuePair<string, ICustomAttributeTemplate> template in this._templateList)
stringBuilder.Append(template.Value.SaveString());
TypedObjectDescriptor objectDescriptor = new TypedObjectDescriptor(((IApplicationDataStore) this._appFrame).DatastoreKeys.WorktableCustomAttributeListKey, new DataObjectIdentifier("CustomAttributesCarrier"), string.Empty)
{
UniqueId = guid,
Revision = "1.0"
};
dataStore.SaveData(objectDescriptor, new List<TypedObjectReference>(), false, stringBuilder.ToString(), objectDescriptor.Revision);
}
private void AddGeneralAttributesForCarrier()
{
this._templateList.Add("TransferStationSite", this._factory.CreateCustomAttributeTemplate("TransferStationSite", "Indicates whether the location is an transfer station site", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("BoundingBoxVisible", this._factory.CreateCustomAttributeTemplate("BoundingBoxVisible", "Indicates whether to show the bounding box(es).", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("Server", this._factory.CreateCustomAttributeTemplate("Server", "Call name of the device (internal name of driver)", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("IOState", this._factory.CreateCustomAttributeTemplate("IOState", "I/O State of associated tool driver", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("StartRack", this._factory.CreateCustomAttributeTemplate("StartRack", "Defines first position of a group of stacks for the carousel driver", false, string.Empty, (AttributeDataType) 2, string.Empty, (object) 1));
this._templateList.Add("IsFrameElement", this._factory.CreateCustomAttributeTemplate("IsFrameElement", "Indicates whether to set carrier as part of worktable frame", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("IsGridBased", this._factory.CreateCustomAttributeTemplate("IsGridBased", "Indicates whether carrier is grid based or not", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("OpenLabwareGenerator", this._factory.CreateCustomAttributeTemplate("OpenLabwareGenerator", "Indicates whether to open labware generator", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("OpenCarrierAndSiteList", this._factory.CreateCustomAttributeTemplate("OpenCarrierAndSiteList", "Indicates whether to open labware and site list", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("PassiveStack", this._factory.CreateCustomAttributeTemplate("PassiveStack", "Indicates whether carrier is treated as a passive stack", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("WasteLocation", this._factory.CreateCustomAttributeTemplate("WasteLocation", "Indicates whether this location shall be treated as waste location", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
}
private void AddPipettingAttributesForCarrier() => this._templateList.Add("MaxZPositionOfHeadForGettingTips", this._factory.CreateCustomAttributeTemplate("MaxZPositionOfHeadForGettingTips", "The height which is used for the check if S-Axis can move below the active carrier clamps.", false, string.Empty, (AttributeDataType) 2, "[mm]", (object) 90.5));
private void AddRoboticAttributesForCarrier()
{
this._templateList.Add("Grasp_location_min", this._factory.CreateCustomAttributeTemplate("Grasp_location_min", "Minimum Plate grip offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Grasp_location_max", this._factory.CreateCustomAttributeTemplate("Grasp_location_max", "Maximum Plate grip offset", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Grasp_location_W_min", this._factory.CreateCustomAttributeTemplate("Grasp_location_W_min", "Minimum Plate grip offset Wide", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Grasp_location_W_max", this._factory.CreateCustomAttributeTemplate("Grasp_location_W_max", "Maximum Plate grip offset Wide", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Grasp_location_N_min", this._factory.CreateCustomAttributeTemplate("Grasp_location_N_min", "Minimum Plate grip offset Narrow", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Grasp_location_N_max", this._factory.CreateCustomAttributeTemplate("Grasp_location_N_max", "Maximum Plate grip offset Narrow", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("Grip_min", this._factory.CreateCustomAttributeTemplate("Grip_min", "Minimum gripper distance for labware on this carrier", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
this._templateList.Add("Grip_max", this._factory.CreateCustomAttributeTemplate("Grip_max", "Maximum gripper distance for labware on this carrier", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
this._templateList.Add("Grip_Narrow", this._factory.CreateCustomAttributeTemplate("Grip_Narrow", "Gripper distance Narrow for this carrier", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
this._templateList.Add("Grip_Wide", this._factory.CreateCustomAttributeTemplate("Grip_Wide", "Gripper distance Wide for this carrier", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 0.0));
this._templateList.Add("MoveableCarrier", this._factory.CreateCustomAttributeTemplate("MoveableCarrier", "Indicates whether this carrier can be moved by RGA", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) true));
this._templateList.Add("Lid", this._factory.CreateCustomAttributeTemplate("Lid", "Specifies whether a lid is allowed on labware placed on this carrier", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("Lid_location", this._factory.CreateCustomAttributeTemplate("Lid_location", "Location to store lid", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("Lid_position", this._factory.CreateCustomAttributeTemplate("Lid_position", "Position of lid within lid location", false, string.Empty, (AttributeDataType) 4, "[mm]", (object) WorktableObjectFactory.CreateVector3D(0.0, 0.0, 0.0)));
this._templateList.Add("LiddingStation", this._factory.CreateCustomAttributeTemplate("LiddingStation", "Carrier which is allowed to cover or uncover a lid on a labware", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("TransferStation", this._factory.CreateCustomAttributeTemplate("TransferStation", "Location to access labware for transfer from storage device", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("RobotMove", this._factory.CreateCustomAttributeTemplate("RobotMove", "On-The-Fly Tools: Used to enable/disable robot move", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("Storage", this._factory.CreateCustomAttributeTemplate("Storage", "Indicates whether lid shall remain at the location", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
this._templateList.Add("Regripstation", this._factory.CreateCustomAttributeTemplate("Regripstation", "Location to use for re-gripping", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("FesNestTouchDownOffset", this._factory.CreateCustomAttributeTemplate("FesNestTouchDownOffset", "How long should be the distance in Z to move in constant force to touch the FES nest.", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 8.0));
this._templateList.Add("FesNestSpreadDistance", this._factory.CreateCustomAttributeTemplate("FesNestSpreadDistance", "How much spreading is needed to release the fingers (in drop fingers script command).", false, string.Empty, (AttributeDataType) 3, "[mm]", (object) 30.0));
this._templateList.Add("OnTheFlySpeed", this._factory.CreateCustomAttributeTemplate("OnTheFlySpeed", "Maximum speed of robotic arm in % of full speed for the OnTheFly vectors.", false, string.Empty, (AttributeDataType) 2, "[%]", (object) 100));
}
private void AddDefaultCustomAttributesForAllTypes()
{
this._templateList.Add("FeatureSet", this._factory.CreateCustomAttributeTemplate("FeatureSet", "FeatureSet", false, string.Empty, (AttributeDataType) 0, string.Empty, (object) string.Empty));
this._templateList.Add("RenderVisualChildren", this._factory.CreateCustomAttributeTemplate("RenderVisualChildren", "Indicates whether children of this object shall be rendered", false, string.Empty, (AttributeDataType) 1, string.Empty, (object) false));
string str = ((CarrierOrLabwareProperties) 4).ToString();
this._templateList.Add(str, this._factory.CreateCustomAttributeTemplate(str, "Preferred level for workspace delta for this type", false, string.Empty, (AttributeDataType) 2, string.Empty, (object) 0));
this._templateList.Add("Speed", this._factory.CreateCustomAttributeTemplate("Speed", "Maximum speed of robotic arm in % of full speed", false, string.Empty, (AttributeDataType) 2, "[%]", (object) 100));
}