-
Notifications
You must be signed in to change notification settings - Fork 12
MicroDrop v1.0 software architecture
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.
-
Core plugins are included in
- 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
The following core plugins are included as part of the
microdrop>=1.0,<2.0
Python package:
App
ConfigController
DmfDeviceController
ExperimentLogController
MainWindowController
PluginManagerController
ProtocolController
ProtocolGridController
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.