Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(api): change liquid_probe to respect min well height #15488

Merged
merged 12 commits into from
Jun 26, 2024
Prev Previous commit
Next Next commit
lint
  • Loading branch information
aaron-kulkarni committed Jun 26, 2024
commit fe834016ff53d761f2c1d0adc1d14664e2e7d662
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ def get_attached_instrument(self, mount: MountType) -> PipetteDict:
"default_dispense_flow_rates",
"back_compat_names",
"supported_tips",
"lld_settings"
"lld_settings",
]

instr_dict = instr.as_dict()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ def get_attached_instrument(self, mount: OT3Mount) -> PipetteDict:
"default_dispense_flow_rates",
"back_compat_names",
"supported_tips",
"lld_settings"
"lld_settings",
]

instr_dict = instr.as_dict()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class LoadedStaticPipetteData:
nozzle_map: NozzleMap
back_left_corner_offset: Point
front_right_corner_offset: Point
pipette_lld_settings: Dict[str, Dict[str, float]]
pipette_lld_settings: Optional[Dict[str, Dict[str, float]]]


class VirtualPipetteDataProvider:
Expand Down
16 changes: 9 additions & 7 deletions api/src/opentrons/protocol_engine/state/pipettes.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class StaticPipetteConfig:
pipette_bounding_box_offsets: PipetteBoundingBoxOffsets
bounding_nozzle_offsets: BoundingNozzlesOffsets
default_nozzle_map: NozzleMap
lld_settings: Dict[str, Dict[str, float]]
lld_settings: Optional[Dict[str, Dict[str, float]]]


@dataclass
Expand Down Expand Up @@ -620,7 +620,9 @@ def get_available_volume(self, pipette_id: str) -> Optional[float]:

return max(0.0, working_volume - current_volume) if current_volume else None

def get_pipette_lld_settings(self, pipette_id: str) -> Dict[str, Dict[str, float]]:
def get_pipette_lld_settings(
self, pipette_id: str
) -> Optional[Dict[str, Dict[str, float]]]:
"""Get the liquid level settings for all possible tips for a single pipette."""
return self.get_config(pipette_id).lld_settings

Expand All @@ -631,11 +633,11 @@ def get_current_tip_lld_settings(self, pipette_id: str) -> float:
return 0
lld_settings = self.get_pipette_lld_settings(pipette_id)
tipVolume = str(attached_tip.volume)
if None in {
lld_settings,
lld_settings[tipVolume],
lld_settings[tipVolume]["minHeight"],
}:
if (
lld_settings is None
or lld_settings[tipVolume] is None
or lld_settings[tipVolume]["minHeight"] is None
):
return 0
return float(lld_settings[tipVolume]["minHeight"])

Expand Down
10 changes: 5 additions & 5 deletions shared-data/js/__tests__/pipettes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -161,17 +161,17 @@ describe('pipette data accessors', () => {
lldSettings: {
t50: {
minHeight: 0.5,
minVolume: 0
minVolume: 0,
},
t200: {
minHeight: 0.5,
minVolume: 0
minVolume: 0,
},
t1000: {
minHeight: 0.5,
minVolume: 0
}
}
minVolume: 0,
},
},
} as PipetteV2Specs
expect(getPipetteSpecsV2('p1000_single_flex')).toStrictEqual(
mockP1000Specs
Expand Down
Loading