List of Todo’s

Todo

I’m using the “old” functions because these are documented. Switch to the “new” functions at some point.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/controller/devices/hamamatsu/hamamatsu_camera.py:docstring of pynta.controller.devices.hamamatsu.hamamatsu_camera, line 10.)

Todo

How to stream 2048 x 2048 at max frame rate to the flash disk? The Hamamatsu software can do this.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/controller/devices/hamamatsu/hamamatsu_camera.py:docstring of pynta.controller.devices.hamamatsu.hamamatsu_camera, line 12.)

Todo

Use lockbits (and unlockbits) to avoid memory clashes? This would probably also involve some kind of reference counting scheme.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/controller/devices/hamamatsu/hamamatsu_camera.py:docstring of pynta.controller.devices.hamamatsu.hamamatsu_camera.HamamatsuCameraMR, line 12.)

Todo

It does not always seem to block? The length of frames can be zero. Are frames getting dropped? Some sort of race condition?

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/controller/devices/hamamatsu/hamamatsu_camera.py:docstring of pynta.controller.devices.hamamatsu.hamamatsu_camera.HamamatsuCameraMR.getFrames, line 4.)

Todo

The coding style is not in line with the rest of PyNTA. The GEVSMOS class can be cleaned up and documented

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/controller/devices/photonicscience/scmoscam.py:docstring of pynta.controller.devices.photonicscience.scmoscam, line 9.)

Todo

It is also possible to define the methods as @abstractmethods which will automatically raise an exception. It may be worth exploring this possibility if there are several developers involved.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/docs/developers/index.rst, line 49.)

Todo

The camera defines plenty of parameters that are not used or that they are confusing later on. Rasing exceptions does not happen even if trying to extend beyond the maximum dimensions of the CCD.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/cameras/dummy_camera.py:docstring of pynta.model.cameras.dummy_camera, line 6.)

Todo

The parameters for the simulation of the brownian motion should be made explicitly here, in such a way that can be used from within the config file as well.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/cameras/dummy_camera.py:docstring of pynta.model.cameras.dummy_camera, line 9.)

Todo

Some of the methods do not return the same datatype as the real models

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/cameras/dummy_camera.py:docstring of pynta.model.cameras.dummy_camera, line 12.)

Todo

Implement this method

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/cameras/psi.py:docstring of pynta.model.cameras.psi.Camera.getParameters, line 7.)

Todo

pynta.controller.devices.photonicscience.scmoscam.GEVSCMOS.SetGainMode() behaves unexpectedly. One is forced to set the gain mode twice to have it right. So far, this is the only way to prevent the weird lines from appearing. Checking the meaning of the gains is a must.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/cameras/psi.py:docstring of pynta.model.cameras.psi.Camera.initialize, line 3.)

Todo

Include units for ensuring the proper exposure time is being set.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/cameras/psi.py:docstring of pynta.model.cameras.psi.Camera.set_exposure, line 3.)

Todo

not implemented

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/cameras/psi.py:docstring of pynta.model.cameras.psi.Camera.setupCamera, line 9.)

Todo

Think how to add noise, background, and intensity fluuctuations to the particles.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/cameras/simulate_brownian.py:docstring of pynta.model.cameras.simulate_brownian, line 15.)

Todo

Check whether the serialization of objects with cPickle may be a bottleneck for performance.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/experiment/base_experiment.py:docstring of pynta.model.experiment.base_experiment, line 16.)

Todo

In the current implementation, data is serialized for being added to a Queue, then deserialized by the publisher and serialized again to be sent. These three steps could be simplify into one if, for example, one assumes that objects where pickled. There is also a possibility of assuming numpy arrays and using a zero-copy strategy.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/experiment/publisher.py:docstring of pynta.model.experiment.publisher, line 8.)

Todo

Find a way to start the publisher on a different port if the one specified is in use.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/experiment/publisher.py:docstring of pynta.model.experiment.publisher.Publisher.start, line 3.)

Todo

The publisher’s port should be determined in a configuration file.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/experiment/publisher.py:docstring of pynta.model.experiment.publisher.publisher, line 6.)

Todo

Changes to config at runtime will have no effect on other processes. Find a way in which config can broadcast itself to all the instances of the class

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/experiment/config.py:docstring of pynta.model.experiment.config, line 6.)

Todo

Define how to load models from outside of PyNTA. E.g. from a user-specified folder.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/model/experiment/nanoparticle_tracking/np_tracking.py:docstring of pynta.model.experiment.nanoparticle_tracking.np_tracking.NPTracking.initialize_camera, line 5.)

Todo

Define the minimum structure that makes a controller

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/tests/test_controllers.py:docstring of pynta.tests.test_controllers, line 5.)

Todo

Implement tests to assert whether the controllers have the needed methods

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/tests/test_controllers.py:docstring of pynta.tests.test_controllers, line 6.)

Todo

Find a way of testing the UI, is it possible within Travis? may be useful to check what PyQtGraph is doing for the tests.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/tests/test_examples.py:docstring of pynta.tests.test_examples, line 3.)

Todo

Define minimum structure for each kind of model

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/tests/test_models.py:docstring of pynta.tests.test_models, line 4.)

Todo

Define tests for dummy-based models.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/tests/test_models.py:docstring of pynta.tests.test_models, line 5.)

Todo

QThreads are much handier than Python threads. Should we put Qt as a requirement regardless of whether the program runs on CLI or UI mode?

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/tools/worker_thread.py:docstring of pynta.tools.worker_thread.WorkerThread, line 4.)

Todo

Different wrappers of Qt for Python expose the same API in different ways. We should explore using an intermediate package to unify the use of Qt.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/view/GUI/__init__.py:docstring of pynta.view.GUI, line 19.)

Todo

Remove the printing to screen of the parameters once the debugging is done.

(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/python-nta/checkouts/latest/pynta/view/GUI/config_widget.py:docstring of pynta.view.GUI.config_widget, line 6.)