Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bringing qt3scan to parity with Matlab code #5

Closed
nyama8 opened this issue Oct 20, 2024 · 2 comments · Fixed by #10
Closed

Bringing qt3scan to parity with Matlab code #5

nyama8 opened this issue Oct 20, 2024 · 2 comments · Fixed by #10

Comments

@nyama8
Copy link
Contributor

nyama8 commented Oct 20, 2024

qt3scan needs to be brought to parity with the Matlab confocal scan code. This involves (but is not limited to) the following features:

  1. Separating the scans from the controls: the current application has both the scan image and the controls (e.g. buttons for go to position, launch a scan in x/y/z, etc.) in the same window. Ideally, these should be separated so that starting an individual scans pops out a new window (similar to the current implementation of qt3ple). In doing this, logic needs to be implemented to handle having multiple windows open and releasing hardware when not actively scanning or moving.
  2. Control GUI clean up: The current GUI is very crowded and hard to use. It should be simplified partially by the separation of the scan from the control panel but additional aesthetic improvements should be made as well.
  3. Scan GUI clean up: This includes adding a cursor to show pixel positions when selecting a target and or showing the current position (probably only should update the most recently taken scan to avoid slowdowns like in Matlab?). Also would like to include the full scan range being shown in np.nan values during the scan to enable right-click-based movement to positions not yet scanned.
  4. Setting the scan times: currently the scan times are set by choosing the DAQ clock rate and setting the number of batches. The qt3ple application added a DAQ digitial reader in which the user can instead specify a time for readout and the back end computes the number of cycles automatically (clock rate is part of the hardware configuration still, but does not affect the results).
  5. Pause and continue scans: Pause a scan in the middle, then continue scanning from where it left off. Probably should be implemented to finish the current line scan, then pick up from where it began -- it will be difficult to do otherwise.
  6. Decouple spectral confocal?: Not sure if this is a good idea, but it might be good to separate spectral confocal into another application due to the relative complexity of operating with completely different hardware. Spectral confocal is also not commonly used and may not need to be implemented in most setups (where it could cause errors).

Please add more suggestions for improvements/features below. Remember that the goal is for this code to be as lightweight as possible while maintaining easy functionality.

@nyama8
Copy link
Contributor Author

nyama8 commented Oct 22, 2024

After reviewing the qt3scan code a bit I think there's a fair amount of improvements that could be made. For example, we can likely decouple from the qt3uw/nipiezojenapy repo and keep the hardware level controllers within qdlutils. In addition it will likely require some more intensive restructuring which I don't mind doing.

@NnguyenHTommy
Copy link
Member

NnguyenHTommy commented Oct 23, 2024

I would definitely like this and in my eyes, the python code is less friendly to use b/c these changes are not implemented compared to the MATLAB code.

Some points I've been griping about for a while:

  • I would also like the right click functionality. Specifcally right click to go to position and to open the counter.
  • When opening a new scan in a new window, also be able to normalize each window seperately. Also a button to autonormalize
  • Like mentioned above, there needs to be a pause and resume button at the position it was paused at
  • Saving and stopping counter time traces for set amounts of time specified by the user
  • Exposure time at each pixel needs to be easily set by the user, and perhaps give limitations based on hardware. Remember that this need to be done for the optimize x,y,z cases too!
  • When saving a scan window, it should save the actual data. Then there should be some code to read in the data to plot the image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants