Code Monkey home page Code Monkey logo

bakingtray's People

Contributors

raacampbell avatar vollrathf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bakingtray's Issues

Failed triggering caused acquisition to hang

This happened only once (Aptil 2017): The acquisition was sitting around waiting for a trigger and doing nothing. I soft-triggered it via RDP and it started again. No idea why. Never seen this before. It happened on AMo_17 section 30. The result was a lost a tile as a result and the section is out of sync. Not good but has only ever happened this one time. Can't do much about it right now.

Finish time is not accurate after a resume.

e.g. I resume adk_singRabies_01 and am on section 112 of 160 at 9am on the 12th. The main GUI claims the acquisition will take 30 days and 17 hours to complete. In the acquisition view the finish time is listed as 02:02 on the 12th (day of resumption; so 7 hours ago).

The ScanImage PMT Auto-On can cause a hard-crash

This seems to happen only if listeners are connected to ScanImage but I'm not sure which are the problematic ones. I've tried a fresh start of MATLAB and left ScanImage doing ~2000 grabs with PMT auto-on and nothing happened.

So this setting is dangerous. There are work-arounds, such as turning off the PMTs with an API command at the conclusion of bake.

With SIBT linear scanning the tile preview commonly contains duplicate tiles

Often the same tile is laid down two more more times on adjacent x/y positions. This hasn't been seen with resonant scanning ever. The actual data are not affected. Only the preview image looks wrong. This appears to be a bug in ScanImage that is causing the data not to update, but this isn't clear.
duplicate

At the moment the preferred solution to this is to upgrade the rig (even if it's linear scanners) to an FPGA.

The Z depth in ScanImage should be set as soon as the user enters these settings

The number depths, the step setting and so on should be set right away as the user loads the recipe and changes recipe settings. This is needed because the user should be able to hit Grab to check the depth adjust whenever they like. There should be no need for them to manually enter the Z-settings in the ScanImage window in order to test the illumination correction.

Fix laser serial command clashes

I think this only happens at the start of an acquisition. Figure out some way of avoiding this. e.g. maybe even have a lock variable that will queue a command or block a command?

Laser failed to turn off

From a fresh start of MATLAB, the laser did not switch off at the end of acquisition. There is no possibility that the leaveLaserOn flag was set to true. I added more logging messages to indicate the state of the laser and when it will be turned off (8f16fcd) in order to track down what is happening.

Handle resumption of old acquisition via the GUI

Handle the scenario where the user is resuming an old acquisition and has not gone through the preparation phase.

Currently it's possible to stop and resume an acquisition by entering a section start number one larger than the current section. The system then re-starts. We could automate this process by writing a method that finds the section ID and tile position of the last acquired data point. It then knows where to pick up. A GUI confirmation box will appear. The user selects if they want to carry on. The calculated values are applied to the recipe and and the position array and we begin.
If this works, there will be no reason for section start num to even be a setting in the mosaic file. So we could look to see if it's used elsewhere (even used by Stitchit). Then remove it if needed. We will only need the BT.currentSection (or whatever it is) property.

Loading an existing recipe file discards the front/left and cutting position. These need to be re-loaded if resumption is to be possible. However, the user should also be able to save a recipe for generic use. So if we select save, the recipe should save only the generic stuff. The system however should be able to write the full recipe to allow resumption.

In the event of the z-motor traveling back down again, the z positions are saved to the log file.

Acquisition dead-time

I have noticed when working on stress-testing that the dead-time in triggering the next tile is not always long. Early on in developing stressTestTilePreviewBuffer there was very little time between stacks. At some point something happened (I don't know what) and there was some 0.5 seconds or so of time between frames. Maybe more. Then it went back down again and is fast. I'm not sure right now what I saw. If it slows again I need to work out why this happened.

section numbering on resume is wrong

I stopped an experiment at ~section 33/120. Moved the front left pos. Changed the section start number to 34 and total sections to 80 then started again. The total number of sections in the acq view is wrong: 113.

Issue warnings before acquisition if commonly required settings aren't set

Report to screen if the following were not set to the expected values:

  • Bidirectional scanning
  • Z intensity correction

Not sure which module should do this (e.g. we might be imaging with a camera, so BT shouldn't raise this warning directly).

Could also provide a check-list that we can optionally disable in the user settings.

See also Issue #59

Preview tile image the wrong size

Don't know what led to this. I did a fresh start. Set everything up. Hit preview and the preview image was initially too small and the first row of tiles was of the screen. I closed and re-started the window and everything worked fine thereafter.

Have acq view not need to disable the setup window

It should be possible for the acquisition view to handle any changes in the recipe without needing to be restarted. I think this is the case now, TBH, but I need to double-check. Then we can remove the disabling of the main view when the acquisition view is present.

With SIBT resonant scanning, some tiles are laid down blank

This is similar to what I see with linear scanners (#20) but I don't think I've noticed duplicate tiles. I don't remember seeing this when I first started resonant scanning. By the time I noticed it, two major changes had happened:

  1. I dropped the user functions and switched to listeners (around 5th July 2017 -
    b5a9c9a)
  2. I began imaging with rectangular tiles (around 1st July)

The blank tiles appear in the preview window only and are not saved as such. No data are lost. However, they will be a problem, when we want to analyse incoming data for adaptive tile patterns. The first thing I'll do is write a test class to reproduce the problem for Vidrio. This will tell us if it's ScanImage itself that's serving empty data or if I'm somehow failing to copy the data to my buffer.

Prepare GUI contains a blocking operation that pauses all of MATLAB

Press Focus and open Prepare GUI. The image on screen pauses at regular intervals. Likely a regular serial command is blocking. Could run this in a parfeval to stop this bahavior or place in a timer. Alternatively, it might be possible to listen to one of the properties (such as currentPosition in linearstage). The problem with the latter approach is that a motion command does not currently cause currentPosition to be updated automatically. The former approach required the parrallel compute toolbox to be present and might be dangerous. Before proceeding, should check which axes are causing the problem.

Power apparently suddenly went up in CH120

This happened on section 75 of CH120.
power_switch

Never seen this before. Section 76 is fine. Should look through this sample and see if this pattern is seen elsewhere. I've seen this sort of effect happen when cracking open the door to the mesoscope. A little light creeping in is added as an offset to the real signal and it makes the signal look brighter.

However, what this really looks more like is that the deep depth is getting the power for the upper depth and the upper depth the power for the deep depth.

If this doesn't recurr, it's no big deal.

Explicitly turn off PMTs at the end of acquisition

At the moment this is done by ScanImage because of the auto-PMT feature. This has shown itself to be prone to crashing (#13) at least when listeners are attached to the ScanImage object. We therefore should just leave the PMTs set to non-auto and turn them off at the conclusion of bake. So we need the facility to do that. Need to decide if this should be done via ScanImage or we make a separate detector component. Contacting Vidrio to see if they can talk to the ThorLabs PMTs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.