Skip to content

Event Server to receive Micro-Manager events in python via zeromq

License

Notifications You must be signed in to change notification settings

LEB-EPFL/pymm-eventserver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pymm-eventserver

Event Server to receive Micro-Manager events in python via zeromq

This module functions as a plugin for Micro-Manager and takes a lot of inspiration and some functionality from PycroManager (https://pycro-manager.readthedocs.io/en/latest/index.html)

The server follows the logic of Pycromanager:

Install using pip

pip install pymm_eventserver
python
>>> import pymm_eventserver.setup
>>> pymm_eventserver.setup.install_java_server()
sequenceDiagram
    MicroManager->>ZMQ: Event
    activate MicroManager
    Note over MicroManager: Store java object
    ZMQ->>PythonEventServer: Event-ID
    PythonEventServer->>Code: pyqtSignal
    Code-->>ZMQ: Function call (Event-ID)
    ZMQ-->>MicroManager: Call on Java object
    MicroManager->>ZMQ: Output
    ZMQ->>Code: Output
    Note over MicroManager: Keep object for <br> later calls
    deactivate MicroManager
Loading

The exception are events that contain image data. As keeping those object in memory on the java side will lead to pretty heavy memory usage in the ImageJ heap space pretty quickly. So these are sent directly over the zeromq bus. If they are not received correctly, the image data will be lost.

About

Event Server to receive Micro-Manager events in python via zeromq

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published