MicroDrop v1.0 software architecture

Ryan Fobel edited this page Jan 5, 2017 · 2 revisions

Table of Contents generated with DocToc

See also: MicroDrop v2.0 software architecture

Key characteristics:

  • All code written in Python (version 2.7).
  • Single process executing GTK 2.0 main run loop.
  • All functionality added to main run loop through plugins.
    • Core plugins are included in microdrop package.
    • User plugins may optionally be installed to, for example, control hardware.
  • Each plugin:
    • is implemented as a Python class
    • optionally implements one or more callback methods corresponding to signals that may be emitted by any plugin
    • optionally specifies a set of application fields to persist across application launches (e.g., application window width and height).
    • optionally specifies a set of step fields to save for each step in a protocol (e.g., actuation voltage and frequency).
  • Note: All plugin callbacks are executed within the main run loop process.

TODO Add description (or link to description) to each core plugin; e.g., implemented methods

Core plugins

The following core plugins are included as part of the microdrop>=1.0,<2.0 Python package:

Featured plugin: dmf_control_board

While the core DmfDeviceController plugin keeps track of which electrode actuation channels are on/off during each protocol step, none of the core plugins interface with actuation control hardware.

The dmf_control_board plugin controls actuation parameters for the DropBot open-source Digital Microfluidic (DMF) control system (described in detail in "Fobel et al., Appl. Phys. Lett. 102, 193513 (2013); doi: 10.1063/1.4807118").

While not included as a core plugin in the microdrop>=1.0,<2.0 Python package, the dmf_control_board plugin may be installed using MicroDrop GUI.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.