Skip to content

Commit

Permalink
feat(app): Add new evotips command support to run log
Browse files Browse the repository at this point in the history
  • Loading branch information
smb2268 committed Jan 31, 2025
1 parent 3d78c1f commit b0b7b56
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 56 deletions.
3 changes: 3 additions & 0 deletions app/src/assets/localization/en/protocol_command_text.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,13 @@
"pause_on": "Pause on {{robot_name}}",
"pickup_tip": "Picking up tip(s) from {{well_range}} of {{labware}} in {{labware_location}}",
"prepare_to_aspirate": "Preparing {{pipette}} to aspirate",
"pressurizing_to_dispense": "Pressurize pipette to dispense {{volume}} µL from resin tip at {{flow_rate}} µL/sec",
"reloading_labware": "Reloading {{labware}}",
"return_tip": "Returning tip to {{well_name}} of {{labware}} in {{labware_location}}",
"right": "Right",
"row_layout": "row layout",
"save_position": "Saving position",
"sealing_to_location": "Sealing to {{labware}} in {{location}}",
"set_and_await_hs_shake": "Setting Heater-Shaker to shake at {{rpm}} rpm and waiting until reached",
"setting_hs_temp": "Setting Target Temperature of Heater-Shaker to {{temp}}",
"setting_temperature_module_temp": "Setting Temperature Module to {{temp}} (rounded to nearest integer)",
Expand All @@ -89,6 +91,7 @@
"turning_rail_lights_off": "Turning rail lights off",
"turning_rail_lights_on": "Turning rail lights on",
"unlatching_hs_latch": "Unlatching labware on Heater-Shaker",
"unsealing_from_location": "Unsealing from {{labware}} in {{location}}",
"wait_for_duration": "Pausing for {{seconds}} seconds. {{message}}",
"wait_for_resume": "Pausing protocol",
"waiting_for_hs_to_reach": "Waiting for Heater-Shaker to reach target temperature",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ export function useCommandTextString(
case 'dropTipInPlace':
case 'pickUpTip':
case 'airGapInPlace':
case 'evotipSealPipette':
case 'evotipUnsealPipette':
case 'evotipDispense':
return {
kind: 'generic',
commandText: utils.getPipettingCommandText(fullParams),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,21 @@ export const getPipettingCommandText = ({
t,
})

const labwareName =
commandTextData != null
? getLabwareName({
loadedLabwares: commandTextData.labware ?? [],
labwareId,
allRunDefs,
})
: null

switch (command?.commandType) {
case 'aspirate': {
const { volume, flowRate } = command.params
return t('aspirate', {
well_name: wellName,
labware:
commandTextData != null
? getLabwareName({
loadedLabwares: commandTextData.labware ?? [],
labwareId,
allRunDefs,
})
: null,
labware: labwareName,
labware_location: displayLocation,
volume,
flow_rate: flowRate,
Expand All @@ -75,29 +77,15 @@ export const getPipettingCommandText = ({
return pushOut != null
? t('dispense_push_out', {
well_name: wellName,
labware:
commandTextData != null
? getLabwareName({
loadedLabwares: commandTextData.labware ?? [],
labwareId,
allRunDefs,
})
: null,
labware: labwareName,
labware_location: displayLocation,
volume,
flow_rate: flowRate,
push_out_volume: pushOut,
})
: t('dispense', {
well_name: wellName,
labware:
commandTextData != null
? getLabwareName({
loadedLabwares: commandTextData.labware ?? [],
labwareId,
allRunDefs,
})
: null,
labware: labwareName,
labware_location: displayLocation,
volume,
flow_rate: flowRate,
Expand All @@ -107,14 +95,7 @@ export const getPipettingCommandText = ({
const { flowRate } = command.params
return t('blowout', {
well_name: wellName,
labware:
commandTextData != null
? getLabwareName({
loadedLabwares: commandTextData.labware ?? [],
labwareId,
allRunDefs,
})
: null,
labware: labwareName,
labware_location: displayLocation,
flow_rate: flowRate,
})
Expand All @@ -136,26 +117,12 @@ export const getPipettingCommandText = ({
return Boolean(labwareDef?.parameters.isTiprack)
? t('return_tip', {
well_name: wellName,
labware:
commandTextData != null
? getLabwareName({
loadedLabwares: commandTextData.labware ?? [],
labwareId,
allRunDefs,
})
: null,
labware: labwareName,
labware_location: displayLocation,
})
: t('drop_tip', {
well_name: wellName,
labware:
commandTextData != null
? getLabwareName({
loadedLabwares: commandTextData.labware ?? [],
labwareId,
allRunDefs,
})
: null,
labware: labwareName,
})
}
case 'pickUpTip': {
Expand All @@ -176,14 +143,7 @@ export const getPipettingCommandText = ({
pipetteName
)
: null,
labware:
commandTextData != null
? getLabwareName({
loadedLabwares: commandTextData.labware ?? [],
labwareId,
allRunDefs,
})
: null,
labware: labwareName,
labware_location: displayLocation,
})
}
Expand Down Expand Up @@ -213,6 +173,22 @@ export const getPipettingCommandText = ({
const { volume } = command.params
return t('air_gap_in_place', { volume })
}
case 'evotipSealPipette': {
return t('sealing_to_location', {
labware: labwareName,
location: displayLocation,
})
}
case 'evotipUnsealPipette': {
return t('unsealing_from_location', {
labware: labwareName,
location: displayLocation,
})
}
case 'evotipDispense': {
const { flowRate, volume } = command.params
return t('pressurizing_to_dispense', { volume, flow_rate: flowRate })
}
default: {
console.warn(
'PipettingCommandText encountered a command with an unrecognized commandType: ',
Expand Down
47 changes: 47 additions & 0 deletions shared-data/command/types/pipetting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ export type PipettingRunTimeCommand =
| LiquidProbeRunTimeCommand
| TryLiquidProbeRunTimeCommand
| AirGapInPlaceRunTimeCommand
| EvotipSealRunTimeCommand
| EvotipUnsealRunTimeCommand
| EvotipPressurizeRunTimeCommand

export type PipettingCreateCommand =
| AspirateCreateCommand
Expand All @@ -41,6 +44,9 @@ export type PipettingCreateCommand =
| LiquidProbeCreateCommand
| TryLiquidProbeCreateCommand
| AirGapInPlaceCreateCommand
| EvotipSealCreateCommand
| EvotipUnsealCreateCommand
| EvotipPressurizeCreateCommand

export interface ConfigureForVolumeCreateCommand
extends CommonCommandCreateInfo {
Expand Down Expand Up @@ -237,6 +243,37 @@ export interface TryLiquidProbeRunTimeCommand
result?: Record<string, unknown>
}

export interface EvotipSealCreateCommand extends CommonCommandCreateInfo {
commandType: 'evotipSealPipette'
params: PipetteAccessParams & WellLocationParam
}
export interface EvotipUnsealCreateCommand extends CommonCommandCreateInfo {
commandType: 'evotipUnsealPipette'
params: PipetteAccessParams & WellLocationParam
}

export interface EvotipPressurizeCreateCommand extends CommonCommandCreateInfo {
commandType: 'evotipDispense'
params: PipetteAccessParams &
WellLocationParam &
FlowRateParams &
VolumeParams
}
export interface EvotipSealRunTimeCommand
extends CommonCommandRunTimeInfo,
EvotipSealCreateCommand {
result?: EvotipSealResult
}
export interface EvotipUnsealRunTimeCommand
extends CommonCommandRunTimeInfo,
EvotipUnsealCreateCommand {
result?: EvotipUnsealResult
}
export interface EvotipPressurizeRunTimeCommand
extends CommonCommandRunTimeInfo,
EvotipPressurizeCreateCommand {
result?: BasicLiquidHandlingResult
}
export type AspDispAirgapParams = FlowRateParams &
PipetteAccessParams &
VolumeParams &
Expand Down Expand Up @@ -321,3 +358,13 @@ interface TipPresenceResult {
// ot2 should alwasy return unknown
status?: 'present' | 'absent' | 'unknown'
}

interface EvotipSealResult {
position: AddressableOffsetVector
tipVolume: number
tipLength: number
tipDiameter: number
}
interface EvotipUnsealResult {
position: AddressableOffsetVector
}

0 comments on commit b0b7b56

Please sign in to comment.