Closed EvanKirshenbaum closed 5 months ago
This issue was referenced by the following commit before migration:
Added
w : prepare to dispense
w : prepare to dispense(2 drops)
w : prepare to dispense(reagent "R")
w : prepare to dispense(10 drops of reagent "R")
w's fill level = 10uL
w's refill level = 1uL
w's requirement = 100 drops
I changed required
to requirement
because w's required
sounded weird.
While doing this, I changed the definition of Well.fill_to
from
@property
def fill_to(self) -> Volume:
def default_fill_line() -> Volume:
if self.required is None:
return self.capacity
return min(self.capacity, self.required)
return self.volume_from_spec(self._fill_to, default_fill_line)
to
@property
def fill_to(self) -> Volume:
def default_fill_line() -> Volume:
if self.required is None:
return self.max_fill
return min(self.max_fill, self.required+self.min_fill)
return self.volume_from_spec(self._fill_to, default_fill_line)
Two changes:
max_fill
rather than capacity
min_fill
left after dispensing when required
isn't None
.
Looking at the way OSU is doing macros, it's pretty clear that it's time to expose more of the internal volume control in the macro language.
What they really want to be able to do is to say simply
What this should do is to call
In addition, it would be useful to expose the following attributes on
well
:fill level
(max_volume
): the maximum volume to fill to.refill level
(min_volume
): the minimum volume (after a dispense) to trigger a refill.required
: the volume you expect to need to dispense. This is decremented every time a drop is dispensed (or fluid is otherwise transferred out).Migrated from internal repository. Originally created by @EvanKirshenbaum on Feb 28, 2023 at 12:33 PM PST. Closed on Feb 28, 2023 at 1:54 PM PST.