HPInc / HP-Digital-Microfluidics

HP Digital Microfluidics Software Platform and Libraries
MIT License
2 stars 0 forks source link

Add manual pipettor #163

Open EvanKirshenbaum opened 5 months ago

EvanKirshenbaum commented 5 months ago

Omer Gila pointed out that for installations that don't have robots, it will be important to support manual pipetting.

The straightforward approach is to have a ManualPipetting subclass of Pipettor, such that whenever the pipettor logic gets to perform(), it

  1. Tells the user what needs to happen, e.g.,
    Please add 1uL of Fragment-24 to hole 2
  2. Optionally allows the user to signal when they are ready to do so.
    • This would be needed in a free-running system in which drops are moving around the extraction point so that we know when to lock down the splash zone. If the user chooses not to enable this option, the lock down would happen at the request.
  3. Allows the user to signal when they're done.

This interaction would, ideally, take place via a dialog box if the monitor is running, otherwise it could be done via the command line.

Migrated from internal repository. Originally created by @EvanKirshenbaum on Jun 09, 2022 at 11:27 AM PDT.
EvanKirshenbaum commented 5 months ago

A basic ManualPipettor is in the code now.

The protocol logic is that for each target in the requested transfer it

  1. calls in_position() to lock the splash zone down,
  2. prints a message identifiying the direction, reagent, volume, and target.
  3. Waits for (any) keyboard input.
  4. Calls finished().

After all targets have been dealt with, it calls finished_overall_transfer() on each target.

This still needs

  1. Integration into the GUI.
    • I don't want to do that until Mark is further along on #52.
  2. A way to specify that a different volume than requested was transferred.
    Migrated from internal repository. Originally created by @EvanKirshenbaum on Jun 20, 2022 at 10:07 AM PDT.
EvanKirshenbaum commented 5 months ago

This manual pipettor is the default one to be used for the interactive #176 tool. It's always available for other platform-dispatch exercisers.

Migrated from internal repository. Originally created by @EvanKirshenbaum on Jun 20, 2022 at 10:08 AM PDT.