sequence acquisitions with XY stages

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

sequence acquisitions with XY stages

JonD
Administrator
Hello fellow listers,

I'm trying to run a "sequence acquisition" using TTL triggering of an XY
stage.  Does anyone have experience with this?

API calls exist in MMCore and the device adapter interface to make this
happen.  I have now implemented the required methods in my XY stage device
adapter (no code has been checked in though).  However I cannot seem to get
the sequence code to be called via the MDA.

Is in possible that the MDA doesn't support sequencing of XY stages?  I
noticed the clojure code contains calls to the 1D stage loadStageSequence()
method but not the corresponding 2D stage loadXYStageSequence().  Or perhaps
there is something else that I should be looking out for?

Thanks for any help or hints,

Jon



--
Sent from: http://micro-manager.3463995.n2.nabble.com/


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: sequence acquisitions with XY stages

Stuurman, Nico
Hi Jon,

> I'm trying to run a "sequence acquisition" using TTL triggering of an XY
> stage.  Does anyone have experience with this?
>
> API calls exist in MMCore and the device adapter interface to make this
> happen.  I have now implemented the required methods in my XY stage device
> adapter (no code has been checked in though).  However I cannot seem to get
> the sequence code to be called via the MDA.
>
> Is in possible that the MDA doesn't support sequencing of XY stages?  I
> noticed the clojure code contains calls to the 1D stage loadStageSequence()
> method but not the corresponding 2D stage loadXYStageSequence().  Or perhaps
> there is something else that I should be looking out for?

I think that you are on the right track, and also believe that support
in the acquisition engine is missing.  It may be best to first check
with a script if everything is working as expected, and maybe the script
is good enough for what you want to accomplish. Hacking the acquisition
engine is not for the faint of heart (I have managed a few times to make
tiny changes/additions).

Best,

Nico

_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: sequence acquisitions with XY stages

JonD
Administrator
Stuurman, Nico wrote
> I think that you are on the right track, and also believe that support
> in the acquisition engine is missing.  It may be best to first check
> with a script if everything is working as expected, and maybe the script
> is good enough for what you want to accomplish. Hacking the acquisition
> engine is not for the faint of heart (I have managed a few times to make
> tiny changes/additions).

Thanks for that Nico!  I got it working in a script and for now that's good
enough.

I do strongly suspect MDA support is lacking but I'm not willing to muck
with Clojure for now.

Any further ideas are most welcome.

Below is my script for reference.

Jon



// make sure TTL triggering is set up as needed, e.g. that XY card gives out
pulse when move complete (currently no MM property to set this up but maybe
there should be)

// load MM's position list into firmware's ring buffer
xyStageName = mmc.getXYStageDevice();
mmc.setProperty(xyStageName, "UseSequence", "Yes");
positionX = new DoubleVector();
positionY = new DoubleVector();
PositionList pl = gui.getPositionList();
int numPositions = pl.getNumberOfPositions();
for (int i=0; i<numPositions; ++i) {
  positionX.add(pl.getPosition(i).getX());
  positionY.add(pl.getPosition(i).getY());
}
mmc.loadXYStageSequence(xyStageName, positionX, positionY);
mmc.startXYStageSequence(xyStageName);  // sets up TTL triggering but
doesn't actually trigger it

// set up any other devices as needed

// following line required only if the acquisition is initiated by moving
the stage
// trigger the stage manually which will trigger everything else for whole
position list if configured correctly
mmc.setProperty(xyStageName, "RingBufferTrigger", "Do it");




--
Sent from: http://micro-manager.3463995.n2.nabble.com/


_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general