@opentrons/shared-data 0.1.7-alpha.1 → 0.2.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.coveragerc +4 -0
- package/.flake8 +31 -0
- package/Config.in +11 -0
- package/LICENSE +202 -0
- package/Makefile +13 -14
- package/Makefile-python.mk +134 -0
- package/buildroot.mk +35 -0
- package/command/index.ts +3 -1
- package/command/schemas/13.json +147 -315
- package/command/schemas/14.json +7254 -0
- package/command/types/index.ts +15 -4
- package/command/types/module.ts +24 -4
- package/command/types/setup.ts +5 -5
- package/command/types/support.ts +1 -0
- package/deck/definitions/5/ot2_short_trash.json +37 -0
- package/deck/definitions/5/ot2_standard.json +37 -0
- package/deck/definitions/5/ot3_standard.json +152 -51
- package/deck/schemas/5.json +46 -1
- package/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4737 -0
- package/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
- package/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
- package/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
- package/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
- package/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
- package/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
- package/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
- package/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
- package/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
- package/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +111 -0
- package/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1 -1
- package/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
- package/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
- package/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
- package/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
- package/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
- package/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
- package/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
- package/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
- package/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
- package/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
- package/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +5 -0
- package/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +5 -0
- package/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +5 -0
- package/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +5 -0
- package/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +5 -0
- package/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +5 -0
- package/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +5 -0
- package/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +5 -0
- package/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -8
- package/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +8 -0
- package/labware/definitions/2/opentrons_tough_universal_lid/1.json +16 -1
- package/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
- package/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
- package/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
- package/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
- package/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
- package/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +5 -2
- package/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +15 -2
- package/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
- package/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +5 -9
- package/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
- package/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +146 -0
- package/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +162 -0
- package/labware/definitions/3/schema3test_universal_flat_adapter/999.json +157 -0
- package/labware/fixtures/2/fixture_user_volumes_prototype.json +1137 -0
- package/labware/fixtures/3/fixture_2_plate.json +5 -2
- package/labware/fixtures/3/fixture_corning_24_plate.json +6 -3
- package/labware/fixtures/3/index.ts +4 -0
- package/labware/schemas/2.json +36 -1
- package/labware/schemas/3.json +57 -5
- package/lib/command/index.d.ts +39 -1
- package/lib/command/schemas/13.json +147 -315
- package/lib/command/schemas/14.json +7254 -0
- package/lib/command/types/index.d.ts +11 -3
- package/lib/command/types/module.d.ts +19 -6
- package/lib/command/types/setup.d.ts +5 -5
- package/lib/deck/definitions/5/ot2_short_trash.json +37 -0
- package/lib/deck/definitions/5/ot2_standard.json +37 -0
- package/lib/deck/definitions/5/ot3_standard.json +152 -51
- package/lib/deck/schemas/5.json +46 -1
- package/lib/index.mjs +240842 -193770
- package/lib/js/constants.d.ts +30 -9
- package/lib/js/fixtures.d.ts +77 -2
- package/lib/js/getLabware.d.ts +3 -3
- package/lib/js/helpers/__tests__/getMaxPushOutVolume.test.d.ts +1 -0
- package/lib/js/helpers/__tests__/getStackedItemsOnStartingDeck.test.d.ts +1 -0
- package/lib/js/helpers/__tests__/labwareSchemaShims.test.d.ts +1 -0
- package/lib/js/helpers/__tests__/pairsFromArray.test.d.ts +1 -0
- package/lib/js/helpers/__tests__/vectorMath.test.d.ts +1 -0
- package/lib/js/helpers/getFixedTrashLabwareDefinition.d.ts +2 -2
- package/lib/js/helpers/getLabwareDefURI.d.ts +3 -0
- package/lib/js/helpers/getLabwareDefinitionsByURIForProtocol.d.ts +6 -0
- package/lib/js/helpers/getLabwareInfoByLiquidId.d.ts +10 -0
- package/lib/js/helpers/getLiquidsByIdForLabware.d.ts +2 -0
- package/lib/js/helpers/getLoadedLabwareDefinitionsByUri.d.ts +2 -2
- package/lib/js/helpers/getMaxPushOutVolume.d.ts +2 -0
- package/lib/js/helpers/getStackedItemsOnStartingDeck.d.ts +50 -0
- package/lib/js/helpers/getStandardDeckViewLayerBlockList.d.ts +2 -0
- package/lib/js/helpers/getTipTypeFromTipRackDefinition.d.ts +2 -2
- package/lib/js/helpers/getWellFillFromLabwareId.d.ts +4 -0
- package/lib/js/helpers/getWellNamePerMultiTip.d.ts +3 -3
- package/lib/js/helpers/getWellTotalVolume.d.ts +2 -2
- package/lib/js/helpers/index.d.ts +22 -14
- package/lib/js/helpers/labwareInference.d.ts +3 -3
- package/lib/js/helpers/liquidClasses.d.ts +4 -2
- package/lib/js/helpers/matrixMath.d.ts +3 -0
- package/lib/js/helpers/pairsFromArray.d.ts +8 -0
- package/lib/js/helpers/parseProtocolCommands.d.ts +4 -4
- package/lib/js/helpers/positionMath.d.ts +127 -0
- package/lib/js/helpers/validateCustomLabwareHelper.d.ts +2 -2
- package/lib/js/helpers/vectorMath.d.ts +14 -0
- package/lib/js/helpers/wellSets.d.ts +4 -4
- package/lib/js/labware.d.ts +4 -3
- package/lib/js/liquidClasses.d.ts +4 -0
- package/lib/js/modules.d.ts +1 -1
- package/lib/js/types.d.ts +62 -13
- package/lib/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4737 -0
- package/lib/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
- package/lib/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
- package/lib/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
- package/lib/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
- package/lib/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
- package/lib/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
- package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
- package/lib/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
- package/lib/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
- package/lib/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +111 -0
- package/lib/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1 -1
- package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
- package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
- package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
- package/lib/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
- package/lib/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
- package/lib/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
- package/lib/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
- package/lib/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
- package/lib/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
- package/lib/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
- package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +5 -0
- package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +5 -0
- package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +5 -0
- package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +5 -0
- package/lib/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +5 -0
- package/lib/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +5 -0
- package/lib/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +5 -0
- package/lib/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +5 -0
- package/lib/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -8
- package/lib/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +8 -0
- package/lib/labware/definitions/2/opentrons_tough_universal_lid/1.json +16 -1
- package/lib/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
- package/lib/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
- package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
- package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
- package/lib/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
- package/lib/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +5 -2
- package/lib/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +15 -2
- package/lib/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
- package/lib/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +5 -9
- package/lib/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
- package/lib/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +146 -0
- package/lib/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +162 -0
- package/lib/labware/definitions/3/schema3test_universal_flat_adapter/999.json +157 -0
- package/lib/labware/fixtures/2/fixture_user_volumes_prototype.json +1137 -0
- package/lib/labware/fixtures/3/fixture_2_plate.json +5 -2
- package/lib/labware/fixtures/3/fixture_corning_24_plate.json +6 -3
- package/lib/labware/fixtures/3/index.d.ts +3 -0
- package/lib/labware/schemas/2.json +36 -1
- package/lib/labware/schemas/3.json +57 -5
- package/lib/liquid-class/definitions/1/{ethanol_80.json → ethanol_80/1.json} +545 -390
- package/lib/liquid-class/definitions/1/{glycerol_50.json → glycerol_50/1.json} +370 -215
- package/lib/liquid-class/definitions/1/{water.json → water/1.json} +151 -62
- package/lib/liquid-class/fixtures/1/fixture_glycerol50.json +1 -0
- package/lib/liquid-class/schemas/1.json +6 -0
- package/lib/module/definitions/3/absorbanceReaderV1.json +20 -151
- package/lib/module/definitions/3/flexStackerModuleV1.json +29 -389
- package/lib/module/definitions/3/heaterShakerModuleV1.json +16 -357
- package/lib/module/definitions/3/magneticBlockV1.json +18 -149
- package/lib/module/definitions/3/magneticModuleV1.json +16 -399
- package/lib/module/definitions/3/magneticModuleV2.json +16 -399
- package/lib/module/definitions/3/temperatureModuleV1.json +16 -153
- package/lib/module/definitions/3/temperatureModuleV2.json +16 -153
- package/lib/module/definitions/3/thermocyclerModuleV1.json +16 -1340
- package/lib/module/definitions/3/thermocyclerModuleV2.json +18 -3617
- package/lib/module/schemas/3.json +109 -12
- package/lib/pipette/definitions/1/pipetteModelSpecs.json +336 -0
- package/lib/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
- package/lib/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
- package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +28 -18
- package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
- package/lib/protocol/types/schemaV8/index.d.ts +17 -1
- package/liquid-class/definitions/1/{ethanol_80.json → ethanol_80/1.json} +545 -390
- package/liquid-class/definitions/1/{glycerol_50.json → glycerol_50/1.json} +370 -215
- package/liquid-class/definitions/1/{water.json → water/1.json} +151 -62
- package/liquid-class/fixtures/1/fixture_glycerol50.json +1 -0
- package/liquid-class/schemas/1.json +6 -0
- package/module/definitions/3/absorbanceReaderV1.json +20 -151
- package/module/definitions/3/flexStackerModuleV1.json +29 -389
- package/module/definitions/3/heaterShakerModuleV1.json +16 -357
- package/module/definitions/3/magneticBlockV1.json +18 -149
- package/module/definitions/3/magneticModuleV1.json +16 -399
- package/module/definitions/3/magneticModuleV2.json +16 -399
- package/module/definitions/3/temperatureModuleV1.json +16 -153
- package/module/definitions/3/temperatureModuleV2.json +16 -153
- package/module/definitions/3/thermocyclerModuleV1.json +16 -1340
- package/module/definitions/3/thermocyclerModuleV2.json +18 -3617
- package/module/schemas/3.json +109 -12
- package/mypy.ini +22 -0
- package/package.json +1 -1
- package/pipette/definitions/1/pipetteModelSpecs.json +336 -0
- package/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
- package/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
- package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +28 -18
- package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
- package/protocol/types/schemaV8/index.ts +29 -1
- package/pyproject.toml +119 -0
- package/pytest.ini +8 -0
- package/python_tests/__init__.py +1 -0
- package/python_tests/command/test_known_schema_ids.py +9 -0
- package/python_tests/conftest.py +108 -0
- package/python_tests/deck/__init__.py +0 -0
- package/python_tests/deck/test_list_names.py +12 -0
- package/python_tests/deck/test_position.py +101 -0
- package/python_tests/deck/test_typechecks.py +23 -0
- package/python_tests/errors/__init__.py +1 -0
- package/python_tests/errors/test_error_completeness.py +19 -0
- package/python_tests/errors/test_exceptions.py +74 -0
- package/python_tests/gripper/__init__.py +0 -0
- package/python_tests/gripper/test_definition.py +30 -0
- package/python_tests/gripper/test_load.py +19 -0
- package/python_tests/labware/__init__.py +13 -0
- package/python_tests/labware/test_typechecks.py +80 -0
- package/python_tests/liquid_classes/__init__.py +0 -0
- package/python_tests/liquid_classes/test_liquid_class_values.py +59 -0
- package/python_tests/liquid_classes/test_load.py +45 -0
- package/python_tests/liquid_classes/test_validations.py +192 -0
- package/python_tests/module/__init__.py +20 -0
- package/python_tests/module/test_load.py +49 -0
- package/python_tests/module/test_typechecks.py +26 -0
- package/python_tests/pipette/__init__.py +0 -0
- package/python_tests/pipette/test_load_data.py +109 -0
- package/python_tests/pipette/test_max_flow_rates_per_volume.py +112 -0
- package/python_tests/pipette/test_mutable_configurations.py +467 -0
- package/python_tests/pipette/test_pipette_definition.py +183 -0
- package/python_tests/pipette/test_pipette_load_name_conversions.py +244 -0
- package/python_tests/pipette/test_typechecks.py +47 -0
- package/python_tests/pipette/test_validate_schema.py +198 -0
- package/python_tests/protocol/__init__.py +7 -0
- package/python_tests/protocol/test_protocol_schema_v6.py +108 -0
- package/python_tests/protocol/test_protocol_schema_v7.py +35 -0
- package/python_tests/protocol/test_protocol_schema_v8.py +17 -0
- package/python_tests/protocol/test_typechecks.py +30 -0
- package/python_tests/robot/__init__.py +0 -0
- package/python_tests/robot/test_typechecks.py +13 -0
- package/lib/js/cypressUtils.d.ts +0 -1
- package/lib/js/helpers/getVectorDifference.d.ts +0 -2
- package/lib/js/helpers/getVectorSum.d.ts +0 -2
- /package/lib/js/{helpers/__tests__/getVectorDifference.test.d.ts → __tests__/fixtures.test.d.ts} +0 -0
- /package/lib/js/helpers/__tests__/{getVectorSum.test.d.ts → getLabwareInfoByLiquidId.test.d.ts} +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/** Compute positions of labware stacked upon other labware, modules, deck slots, etc. */
|
|
2
|
+
import type { AddressableArea, DeckDefinition, LabwareDefinition, LabwareDefinition2, ModuleDefinition, Vector3D } from '../types';
|
|
3
|
+
/** Return dimensions of the total labware bounding box in the style of labware schema 2. */
|
|
4
|
+
export declare function getSchema2Dimensions(definition: LabwareDefinition): LabwareDefinition2['dimensions'];
|
|
5
|
+
/**
|
|
6
|
+
* Return a bounding box, in coordinates relative to the labware's origin,
|
|
7
|
+
* that encloses the labware when viewed from the top down.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getLabwareViewBox(definition: LabwareDefinition): {
|
|
10
|
+
/** The minimum x-coord, i.e. the left of the labware. */
|
|
11
|
+
minX: number;
|
|
12
|
+
/** The minimum y-coord, i.e. the front of the labware. */
|
|
13
|
+
minY: number;
|
|
14
|
+
/** The maximum x-coord, i.e. the right of the labware. */
|
|
15
|
+
maxX: number;
|
|
16
|
+
/** The maximum y-coord, i.e. the back of the labware. */
|
|
17
|
+
maxY: number;
|
|
18
|
+
/** The distance between left and right. */
|
|
19
|
+
xDimension: number;
|
|
20
|
+
/** The distance between front and back. */
|
|
21
|
+
yDimension: number;
|
|
22
|
+
};
|
|
23
|
+
/** Logically specifies where a labware is located. */
|
|
24
|
+
export interface ComputeLabwareOriginInput {
|
|
25
|
+
/** The underlying deck. */
|
|
26
|
+
deckDefinition: DeckDefinition;
|
|
27
|
+
/**
|
|
28
|
+
* The underlying slot. If this is a Flex and the labware is on a module, this should
|
|
29
|
+
* be the slot that the module replaces.
|
|
30
|
+
*/
|
|
31
|
+
slotId: string;
|
|
32
|
+
/**
|
|
33
|
+
* The definition of the module underneath the labware, if there is one.
|
|
34
|
+
* This should be specified even if it's only transitively underneath the labware,
|
|
35
|
+
* like slot -> module -> adapter -> labware in question.
|
|
36
|
+
*/
|
|
37
|
+
moduleDefinition: ModuleDefinition | null;
|
|
38
|
+
/** The labware and all the labware underneath it. */
|
|
39
|
+
labwareDefinitionsBottomToTop: LabwareDefinition[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Computes the absolute deck coordinates of a labware.
|
|
43
|
+
* Returns null if there was some internal error.
|
|
44
|
+
*/
|
|
45
|
+
export declare function computeLabwareOrigin(input: ComputeLabwareOriginInput): Vector3D | null;
|
|
46
|
+
/**
|
|
47
|
+
* Return the offset from a deck slot's origin (the slot's front-left, -x, -y)
|
|
48
|
+
* to a labware's origin (varies depending on the labware),
|
|
49
|
+
* supposing the labware is placed in that slot.
|
|
50
|
+
*/
|
|
51
|
+
export declare function getDeckSlotOriginToLabwareOrigin(slotDefinition: AddressableArea, labwareDefinition: LabwareDefinition): Vector3D;
|
|
52
|
+
/**
|
|
53
|
+
* Given a stackup like:
|
|
54
|
+
*
|
|
55
|
+
* deck slot --> module --> labware
|
|
56
|
+
*
|
|
57
|
+
* This computes the offset from the deck slot's origin (its front-left / -x,-y corner)
|
|
58
|
+
* to the labware's origin (varies depending on the labware).
|
|
59
|
+
*
|
|
60
|
+
* This is currently how it works even for Flex modules, even though they are not really
|
|
61
|
+
* "in a slot." The slot in this case is the slot that the module replaces.
|
|
62
|
+
*
|
|
63
|
+
* The API is like this for transitional reasons. Ideally, we would have one function
|
|
64
|
+
* to go slot->module and a second function to go module->labware.
|
|
65
|
+
*/
|
|
66
|
+
export declare function getModuleParentOriginToLabwareOrigin(deckId: string, slotId: string | null, moduleDefinition: ModuleDefinition, labwareDefinition: LabwareDefinition): Vector3D;
|
|
67
|
+
/**
|
|
68
|
+
* Given a labware -> labware stackup, compute the offset from the parent (bottom)
|
|
69
|
+
* labware's origin to the child (top) labware's origin.
|
|
70
|
+
*/
|
|
71
|
+
export declare function getLabwareOriginToLabwareOrigin(parentDefinition: LabwareDefinition, childDefinition: LabwareDefinition): Vector3D;
|
|
72
|
+
/**
|
|
73
|
+
* Given a module, computes the offset from the origin (front-left, -x,-y corner) of the
|
|
74
|
+
* deck slot that the module is in, to the origin (again, front-left, -x,-y corner) of
|
|
75
|
+
* the slot atop that module.
|
|
76
|
+
*
|
|
77
|
+
* On a Flex, modules are not really "in deck slots". There, "the deck slot that the
|
|
78
|
+
* module is in" means "the deck slot that the module replaces."
|
|
79
|
+
*
|
|
80
|
+
* @deprecated We are trying to move away from the idea that modules always have slots
|
|
81
|
+
* atop them and that things should be positioned relative to those slots' -x,-y
|
|
82
|
+
* corners. That idea is especially untrue for things like the Thermocycler and
|
|
83
|
+
* Heater-Shaker. You probably want `getModuleParentOriginToLabwareOrigin()` instead,
|
|
84
|
+
* which is higher-level and can model different ways that a labware can mate with a
|
|
85
|
+
* module. This is exported to support things like UI controls that want to cover
|
|
86
|
+
* a module's "labware area" and whose implementations assume the traditional
|
|
87
|
+
* slot -x,-y corner idea.
|
|
88
|
+
*/
|
|
89
|
+
export declare function getModuleParentOriginToChildSlotOrigin(deckId: string, slotId: string | null, moduleDefinition: ModuleDefinition): Vector3D;
|
|
90
|
+
/**
|
|
91
|
+
* Return the offset from a labware's back-left-bottom (-x, +y, -z) corner to its origin.
|
|
92
|
+
*
|
|
93
|
+
* This is a lower-level helper for the rare cases where we want to position a labware
|
|
94
|
+
* specifically by its back-left corner. Typically, you'll want something higher-level,
|
|
95
|
+
* like `getLabwareViewBox()` or `getDeckSlotOriginToLabwareOrigin()`, instead.
|
|
96
|
+
*/
|
|
97
|
+
export declare function getLabwareBackLeftBottomToOrigin(definition: LabwareDefinition): Vector3D;
|
|
98
|
+
/**
|
|
99
|
+
* Return a definition's cornerOffsetFromSlot in the style of labware schema 2.
|
|
100
|
+
*
|
|
101
|
+
* @deprecated This is probably an inherently wrong interface to attempt, for a couple
|
|
102
|
+
* reasons.
|
|
103
|
+
*
|
|
104
|
+
* FIRST, depending on what the call site does with this, it might expect the return
|
|
105
|
+
* value to be either:
|
|
106
|
+
*
|
|
107
|
+
* - The vector from the (-x, -y) corner of the parent slot to the (-x, -y) corner of
|
|
108
|
+
* the labware
|
|
109
|
+
* - The vector from the (-x, -y) corner of the parent slot to the origin of the
|
|
110
|
+
* labware
|
|
111
|
+
*
|
|
112
|
+
* In labware schema 2, these were the same thing, but not in schema 3.
|
|
113
|
+
*
|
|
114
|
+
* SECOND, in labware schema 2, how a child labware sits on its parent is almost
|
|
115
|
+
* entirely a function of the child's definition. In labware schema 3, it is
|
|
116
|
+
* much more dependent on information only available in the parent. For example, to
|
|
117
|
+
* line up a child's well A1 with a parent's well A1, we need to know where the
|
|
118
|
+
* parent's well A1 is. (Schema 2 just did not attempt to support that).
|
|
119
|
+
*
|
|
120
|
+
* For schema-2 definitions, this will return cornerOffsetFromSlot as-is.
|
|
121
|
+
*
|
|
122
|
+
* For schema-3 definitions, this currently returns the placeholder (12, 34, 56), which
|
|
123
|
+
* is certainly wrong and will cause all manner of visual mayhem, but at least it's
|
|
124
|
+
* wrong in an obvious way and it unblocks importing schema-3 definitions. Solving this
|
|
125
|
+
* properly is call-site-dependent, as described above.
|
|
126
|
+
*/
|
|
127
|
+
export declare function getSchema2CornerOffsetFromSlot(definition: LabwareDefinition): LabwareDefinition2['cornerOffsetFromSlot'];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LabwareDefinition } from '..';
|
|
2
2
|
/**
|
|
3
3
|
* This function is used to help validate that the wells and ordering matches in
|
|
4
4
|
* a custom labware definition in terms of the wellName and the wells length
|
|
@@ -6,4 +6,4 @@ import type { LabwareDefinition2 } from '..';
|
|
|
6
6
|
* @param definition - a labware definition
|
|
7
7
|
* @returns A boolean for if they exist
|
|
8
8
|
*/
|
|
9
|
-
export declare const validateCustomLabwareHelper: (definition?:
|
|
9
|
+
export declare const validateCustomLabwareHelper: (definition?: LabwareDefinition | null) => boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CoordinateTuple, Vector3D } from '../types';
|
|
2
|
+
export declare const IDENTITY_VECTOR: Vector3D;
|
|
3
|
+
/**
|
|
4
|
+
* Add an arbitrary number of vectors.
|
|
5
|
+
* e.g. `getVectorSum(a, b, c)` is a + b + c.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getVectorSum(first: Vector3D, ...rest: Vector3D[]): Vector3D;
|
|
8
|
+
/**
|
|
9
|
+
* Subtract an arbitrary number of vectors.
|
|
10
|
+
* e.g. `getVectorDifference(a, b, c)` is a - b - c.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getVectorDifference(first: Vector3D, ...rest: Vector3D[]): Vector3D;
|
|
13
|
+
export declare function getVectorInverse(vector: Vector3D): Vector3D;
|
|
14
|
+
export declare function coordinateTupleToVector3D(coordinateTuple: CoordinateTuple): Vector3D;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LabwareDefinition, NozzleLayoutConfig, PipetteV2Specs } from '../types';
|
|
2
2
|
type WellSetByPrimaryWell = string[][];
|
|
3
3
|
export interface NozzleLayoutDetails {
|
|
4
4
|
nozzleConfig: NozzleLayoutConfig;
|
|
5
5
|
activeNozzleCount: number;
|
|
6
6
|
}
|
|
7
7
|
export interface WellSetForMultiChannelParams {
|
|
8
|
-
labwareDef:
|
|
8
|
+
labwareDef: LabwareDefinition;
|
|
9
9
|
wellName: string;
|
|
10
10
|
channels: 8 | 96;
|
|
11
11
|
pipetteNozzleDetails?: NozzleLayoutDetails;
|
|
12
12
|
}
|
|
13
13
|
export interface WellSetHelpers {
|
|
14
|
-
getAllWellSetsForLabware: (labwareDef:
|
|
14
|
+
getAllWellSetsForLabware: (labwareDef: LabwareDefinition) => WellSetByPrimaryWell;
|
|
15
15
|
/** Given a well for a labware, returns the well set it belongs to (or null)
|
|
16
16
|
* for 8-channel and 96-channel access.
|
|
17
17
|
* Ex: C2 for 96-flat => ['A2', 'B2', 'C2', ... 'H2']
|
|
@@ -21,7 +21,7 @@ export interface WellSetHelpers {
|
|
|
21
21
|
* nozzle configuration.
|
|
22
22
|
**/
|
|
23
23
|
getWellSetForMultichannel: (params: WellSetForMultiChannelParams) => string[] | null | undefined;
|
|
24
|
-
canPipetteUseLabware: (pipetteSpec: PipetteV2Specs, labwareDef?:
|
|
24
|
+
canPipetteUseLabware: (pipetteSpec: PipetteV2Specs, labwareDef?: LabwareDefinition, trashName?: string) => boolean;
|
|
25
25
|
}
|
|
26
26
|
export declare const makeWellSetHelpers: () => WellSetHelpers;
|
|
27
27
|
export {};
|
package/lib/js/labware.d.ts
CHANGED
|
@@ -9,11 +9,12 @@ import fixtureTiprack10ul from '../labware/fixtures/2/fixture_tiprack_10_ul.json
|
|
|
9
9
|
import fixtureTiprack300ul from '../labware/fixtures/2/fixture_tiprack_300_ul.json';
|
|
10
10
|
import fixtureTrash from '../labware/fixtures/2/fixture_trash.json';
|
|
11
11
|
import labwareSchemaV2 from '../labware/schemas/2.json';
|
|
12
|
-
import
|
|
12
|
+
import labwareSchemaV3 from '../labware/schemas/3.json';
|
|
13
|
+
import type { LabwareDef2ByDefURI, LabwareDefinition2, LegacyLabwareDefByName } from './types';
|
|
13
14
|
export declare const getAllLabwareDefs: () => Record<string, LabwareDefinition2>;
|
|
14
|
-
export declare function getAllDefinitions(blockList?: string[]):
|
|
15
|
+
export declare function getAllDefinitions(blockList?: string[]): LabwareDef2ByDefURI;
|
|
15
16
|
export declare function getAllLegacyDefinitions(): LegacyLabwareDefByName;
|
|
16
|
-
export { labwareSchemaV2, fixture96Plate, fixture12Trough, fixture24Tuberack, fixtureTiprack10ul, fixtureTiprack300ul, fixtureTiprack1000ul, fixtureTiprackAdapter, fixtureTrash, fixture384Plate, fixtureCalibrationBlock, };
|
|
17
|
+
export { labwareSchemaV2, labwareSchemaV3, fixture96Plate, fixture12Trough, fixture24Tuberack, fixtureTiprack10ul, fixtureTiprack300ul, fixtureTiprack1000ul, fixtureTiprackAdapter, fixtureTrash, fixture384Plate, fixtureCalibrationBlock, };
|
|
17
18
|
export declare const opentrons96PcrAdapterV1: LabwareDefinition2;
|
|
18
19
|
export declare const opentrons1Trash3200MlFixedV1: LabwareDefinition2;
|
|
19
20
|
export declare const opentrons96Tiprack10UlV1Uncasted: LabwareDefinition2;
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
import type { LiquidClass } from '.';
|
|
2
|
+
export declare const WATER_LIQUID_CLASS_NAME = "waterV1";
|
|
3
|
+
export declare const NONE_LIQUID_CLASS_NAME = "none";
|
|
4
|
+
export declare const GLYCEROL_LIQUID_CLASS_NAME = "glycerol50V1";
|
|
5
|
+
export declare const ETHANOL_LIQUID_CLASS_NAME = "ethanol80V1";
|
|
2
6
|
export declare const getAllLiquidClassDefs: () => Record<string, LiquidClass>;
|
package/lib/js/modules.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ModuleDefinition, ModuleModel, ModuleModelWithLegacy, ModuleType } from './types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const getModuleDef: (moduleModel: ModuleModel) => ModuleDefinition;
|
|
3
3
|
export declare function normalizeModuleModel(legacyModule: ModuleModelWithLegacy): ModuleModel;
|
|
4
4
|
export declare function getModuleType(moduleModel: ModuleModel): ModuleType;
|
|
5
5
|
export declare function getModuleDisplayName(moduleModel: ModuleModel): string;
|
package/lib/js/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LoadedLabwareLocation, RunTimeCommand } from '../command/types';
|
|
2
2
|
import type { CommandAnnotation } from '../commandAnnotation/types';
|
|
3
3
|
import type { AddressableAreaName, CutoutFixtureId, CutoutId } from '../deck';
|
|
4
|
-
import type { ABSORBANCE_READER_TYPE, ABSORBANCE_READER_V1, EXTENSION, FLEX, FLEX_STACKER_MODULE_TYPE, FLEX_STACKER_MODULE_V1, GEN1, GEN2, GRIPPER_V1, GRIPPER_V1_1, GRIPPER_V1_2, GRIPPER_V1_3, HEATERSHAKER_MODULE_TYPE, HEATERSHAKER_MODULE_V1, LEFT, MAGDECK, MAGNETIC_BLOCK_TYPE, MAGNETIC_BLOCK_V1, MAGNETIC_MODULE_TYPE, MAGNETIC_MODULE_V1, MAGNETIC_MODULE_V2, POSITION_REFERENCE_BOTTOM, POSITION_REFERENCE_CENTER, POSITION_REFERENCE_LIQUID_MENISCUS, POSITION_REFERENCE_TOP, RIGHT, TEMPDECK, TEMPERATURE_MODULE_TYPE, TEMPERATURE_MODULE_V1, TEMPERATURE_MODULE_V2, THERMOCYCLER, THERMOCYCLER_MODULE_TYPE, THERMOCYCLER_MODULE_V1, THERMOCYCLER_MODULE_V2 } from './constants';
|
|
4
|
+
import type { ABSORBANCE_READER_TYPE, ABSORBANCE_READER_V1, AddressableAreaNamesWithFakes, AddressableAreaWithFakes, AreaTypeWithFakes, CutoutFixtureIdsWithFakes, EXTENSION, FLEX, FLEX_STACKER_MODULE_TYPE, FLEX_STACKER_MODULE_V1, GEN1, GEN2, GRIPPER_V1, GRIPPER_V1_1, GRIPPER_V1_2, GRIPPER_V1_3, HEATERSHAKER_MODULE_TYPE, HEATERSHAKER_MODULE_V1, LEFT, MAGDECK, MAGNETIC_BLOCK_TYPE, MAGNETIC_BLOCK_V1, MAGNETIC_MODULE_TYPE, MAGNETIC_MODULE_V1, MAGNETIC_MODULE_V2, POSITION_REFERENCE_BOTTOM, POSITION_REFERENCE_CENTER, POSITION_REFERENCE_LIQUID_MENISCUS, POSITION_REFERENCE_TOP, RIGHT, TEMPDECK, TEMPERATURE_MODULE_TYPE, TEMPERATURE_MODULE_V1, TEMPERATURE_MODULE_V2, THERMOCYCLER, THERMOCYCLER_MODULE_TYPE, THERMOCYCLER_MODULE_V1, THERMOCYCLER_MODULE_V2 } from './constants';
|
|
5
5
|
import type { PipetteName } from './pipettes';
|
|
6
6
|
export type RobotType = 'OT-2 Standard' | 'OT-3 Standard';
|
|
7
7
|
export interface RobotDefinition {
|
|
@@ -137,9 +137,16 @@ export interface RoundedCuboidSegment {
|
|
|
137
137
|
bottomHeight: number;
|
|
138
138
|
}
|
|
139
139
|
export type WellSegment = CuboidalFrustum | ConicalFrustum | SquaredConeSegment | SphericalSegment | RoundedCuboidSegment;
|
|
140
|
+
export interface HeightVolumePair {
|
|
141
|
+
height: number;
|
|
142
|
+
volume: number;
|
|
143
|
+
}
|
|
140
144
|
export interface InnerWellGeometry {
|
|
141
145
|
sections: WellSegment[];
|
|
142
146
|
}
|
|
147
|
+
export interface UserDefinedVolumes {
|
|
148
|
+
heightToVolumeMap: HeightVolumePair[];
|
|
149
|
+
}
|
|
143
150
|
export type LabwareWellMap = Record<string, LabwareWell>;
|
|
144
151
|
export interface LabwareWellGroupMetadata {
|
|
145
152
|
displayName?: string;
|
|
@@ -161,7 +168,20 @@ export interface AxisAlignedBoundingBox3D {
|
|
|
161
168
|
}
|
|
162
169
|
export interface Extents {
|
|
163
170
|
total: AxisAlignedBoundingBox3D;
|
|
164
|
-
|
|
171
|
+
}
|
|
172
|
+
export interface SlotFootprintAsChildFeature {
|
|
173
|
+
z: number;
|
|
174
|
+
backLeft: Vector2D;
|
|
175
|
+
frontRight: Vector2D;
|
|
176
|
+
}
|
|
177
|
+
export interface SlotFootprintAsParentFeature {
|
|
178
|
+
z: number;
|
|
179
|
+
backLeft: Vector2D;
|
|
180
|
+
frontRight: Vector2D;
|
|
181
|
+
}
|
|
182
|
+
export interface LocatingFeatures {
|
|
183
|
+
slotFootprintAsChild?: SlotFootprintAsChildFeature;
|
|
184
|
+
slotFootprintAsParent?: SlotFootprintAsParentFeature;
|
|
165
185
|
}
|
|
166
186
|
export type LabwareRoles = 'labware' | 'adapter' | 'fixture' | 'maintenance' | 'lid' | 'system';
|
|
167
187
|
export interface LabwareDefinition2 {
|
|
@@ -181,7 +201,7 @@ export interface LabwareDefinition2 {
|
|
|
181
201
|
stackingOffsetWithModule?: Record<string, LabwareOffset>;
|
|
182
202
|
stackLimit?: number;
|
|
183
203
|
compatibleParentLabware?: string[];
|
|
184
|
-
innerLabwareGeometry?: Record<string, InnerWellGeometry> | null;
|
|
204
|
+
innerLabwareGeometry?: Record<string, InnerWellGeometry | UserDefinedVolumes> | null;
|
|
185
205
|
}
|
|
186
206
|
export interface LabwareDefinition3 {
|
|
187
207
|
version: number;
|
|
@@ -190,6 +210,7 @@ export interface LabwareDefinition3 {
|
|
|
190
210
|
namespace: string;
|
|
191
211
|
metadata: LabwareMetadata;
|
|
192
212
|
extents: Extents;
|
|
213
|
+
features: LocatingFeatures;
|
|
193
214
|
parameters: LabwareParameters;
|
|
194
215
|
brand: LabwareBrand;
|
|
195
216
|
ordering: string[][];
|
|
@@ -202,7 +223,8 @@ export interface LabwareDefinition3 {
|
|
|
202
223
|
compatibleParentLabware?: string[];
|
|
203
224
|
innerLabwareGeometry?: Record<string, InnerWellGeometry> | null;
|
|
204
225
|
}
|
|
205
|
-
export
|
|
226
|
+
export type LabwareDefinition = LabwareDefinition2 | LabwareDefinition3;
|
|
227
|
+
export interface LabwareDef2ByDefURI {
|
|
206
228
|
[defUri: string]: LabwareDefinition2;
|
|
207
229
|
}
|
|
208
230
|
export interface LegacyLabwareDefByName {
|
|
@@ -244,10 +266,11 @@ export interface DeckCalibrationPoint {
|
|
|
244
266
|
position: CoordinateTuple;
|
|
245
267
|
displayName: string;
|
|
246
268
|
}
|
|
269
|
+
export type CutoutIdToCutoutFixtureId = {
|
|
270
|
+
[cutoutId in CutoutId]?: CutoutFixtureId;
|
|
271
|
+
};
|
|
247
272
|
export type CutoutFixtureGroup = {
|
|
248
|
-
[cutoutId in CutoutId]?:
|
|
249
|
-
[cutoutId in CutoutId]?: CutoutFixtureId;
|
|
250
|
-
}>;
|
|
273
|
+
[cutoutId in CutoutId]?: CutoutIdToCutoutFixtureId[];
|
|
251
274
|
};
|
|
252
275
|
export interface CutoutFixture {
|
|
253
276
|
id: CutoutFixtureId;
|
|
@@ -258,7 +281,12 @@ export interface CutoutFixture {
|
|
|
258
281
|
fixtureGroup: CutoutFixtureGroup;
|
|
259
282
|
height: number;
|
|
260
283
|
}
|
|
261
|
-
|
|
284
|
+
export interface FakeCutoutFixture extends Omit<CutoutFixture, 'id' | 'providesAddressableAreas'> {
|
|
285
|
+
id: CutoutFixtureIdsWithFakes;
|
|
286
|
+
providesAddressableAreas: Record<CutoutId, AddressableAreaNamesWithFakes[] | AddressableAreaName[]>;
|
|
287
|
+
}
|
|
288
|
+
export type CutoutFixtureWithFakes = FakeCutoutFixture | CutoutFixture;
|
|
289
|
+
export type AreaType = 'slot' | 'movableTrash' | 'wasteChute' | 'fixedTrash' | 'stagingSlot' | 'lidDock' | 'thermocycler' | 'heaterShaker' | 'temperatureModule' | 'magneticBlock' | 'absorbanceReader' | 'flexStacker';
|
|
262
290
|
export interface AddressableArea {
|
|
263
291
|
id: AddressableAreaName;
|
|
264
292
|
areaType: AreaType;
|
|
@@ -270,6 +298,10 @@ export interface AddressableArea {
|
|
|
270
298
|
ableToDropTips?: boolean;
|
|
271
299
|
matingSurfaceUnitVector?: UnitVectorTuple;
|
|
272
300
|
}
|
|
301
|
+
export interface FakeAddressableArea extends Omit<AddressableArea, 'id' | 'areaType'> {
|
|
302
|
+
id: AddressableAreaNamesWithFakes;
|
|
303
|
+
areaType: AreaTypeWithFakes;
|
|
304
|
+
}
|
|
273
305
|
export interface DeckMetadata {
|
|
274
306
|
displayName: string;
|
|
275
307
|
tags: string[];
|
|
@@ -291,6 +323,9 @@ export interface DeckLocations {
|
|
|
291
323
|
cutouts: DeckCutout[];
|
|
292
324
|
legacyFixtures: LegacyFixture[];
|
|
293
325
|
}
|
|
326
|
+
export interface DeckLocationsWithFakes extends Omit<DeckLocations, 'addressableAreas' | 'calibrationPoints' | 'legacyFixtures'> {
|
|
327
|
+
addressableAreas: AddressableAreaWithFakes[];
|
|
328
|
+
}
|
|
294
329
|
export interface DeckDefinition {
|
|
295
330
|
otId: string;
|
|
296
331
|
cornerOffsetFromOrigin: CoordinateTuple;
|
|
@@ -300,6 +335,10 @@ export interface DeckDefinition {
|
|
|
300
335
|
metadata: DeckMetadata;
|
|
301
336
|
cutoutFixtures: CutoutFixture[];
|
|
302
337
|
}
|
|
338
|
+
export interface DeckDefinitionWithFakes extends Omit<DeckDefinition, 'locations' | 'cutoutFixtures' | 'otId' | 'cornerOffsetFromOrigin' | 'dimensions' | 'metadata' | 'robot'> {
|
|
339
|
+
locations: DeckLocationsWithFakes;
|
|
340
|
+
cutoutFixtures: CutoutFixtureWithFakes[];
|
|
341
|
+
}
|
|
303
342
|
export interface ModuleDimensions {
|
|
304
343
|
bareOverallHeight: number;
|
|
305
344
|
overLabwareHeight: number;
|
|
@@ -331,12 +370,17 @@ export interface ModuleDefinition {
|
|
|
331
370
|
quirks: string[];
|
|
332
371
|
slotTransforms: SlotTransforms;
|
|
333
372
|
compatibleWith: ModuleModel[];
|
|
334
|
-
twoDimensionalRendering: any;
|
|
335
373
|
}
|
|
336
|
-
|
|
374
|
+
type AffineTransformRow = [number, number, number, number];
|
|
375
|
+
export type AffineTransformMatrix = [
|
|
376
|
+
AffineTransformRow,
|
|
377
|
+
AffineTransformRow,
|
|
378
|
+
AffineTransformRow,
|
|
379
|
+
AffineTransformRow
|
|
380
|
+
];
|
|
337
381
|
export interface SlotTransforms {
|
|
338
|
-
[deckOtId: string]: {
|
|
339
|
-
[slotId: string]: {
|
|
382
|
+
[deckOtId: string]: undefined | {
|
|
383
|
+
[slotId: string]: undefined | {
|
|
340
384
|
[transformKey in keyof ModuleDefinition]?: AffineTransformMatrix;
|
|
341
385
|
};
|
|
342
386
|
};
|
|
@@ -636,7 +680,7 @@ export interface ByTipTypeSetting {
|
|
|
636
680
|
singleDispense: SingleDispenseProperties;
|
|
637
681
|
multiDispense?: MultiDispenseProperties;
|
|
638
682
|
}
|
|
639
|
-
interface ByPipetteSetting {
|
|
683
|
+
export interface ByPipetteSetting {
|
|
640
684
|
pipetteModel: string;
|
|
641
685
|
byTipType: ByTipTypeSetting[];
|
|
642
686
|
}
|
|
@@ -796,5 +840,10 @@ export interface CutoutConfig {
|
|
|
796
840
|
opentronsModuleSerialNumber?: string;
|
|
797
841
|
}
|
|
798
842
|
export type DeckConfiguration = CutoutConfig[];
|
|
843
|
+
type CutoutConfigWithoutCutoutFixtureId = Omit<CutoutConfig, 'cutoutFixtureId'>;
|
|
844
|
+
export interface CutoutConfigMap extends CutoutConfigWithoutCutoutFixtureId {
|
|
845
|
+
addressableAreaId: AddressableAreaNamesWithFakes;
|
|
846
|
+
cutoutFixtureId: CutoutFixtureIdsWithFakes;
|
|
847
|
+
}
|
|
799
848
|
export type NozzleLayoutConfig = 'single' | 'column' | 'row' | 'full' | 'subrect';
|
|
800
849
|
export {};
|