Quantcast

Device-accessible variable for acq order?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Device-accessible variable for acq order?

John James

Hello all,

I am trying to modify a device adapter for hardware sequencing, and need to be able to change the code depending on whether the acq order is "Slice, Channel" or "Channel, Slice". Is there a global variable or flag that the MDA ComboBox changes that I would have access to in C++ layer? Nothing obvious comes from the CoreLog and I can't find the java code that creates the MDA box. 

Any help on this much appreciated! 
Thanks,
John




--
Dr John R. James
University of Cambridge
MRC-LMB (1S429)
Francis Crick Avenue
Cambridge
CB2 0QH

+44 (0) 1223 267280

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Device-accessible variable for acq order?

Nico Stuurman-2
Hi John,


> I am trying to modify a device adapter for hardware sequencing, and
> need to be able to change the code depending on whether the acq order
> is "Slice, Channel" or "Channel, Slice". Is there a global variable or
> flag that the MDA ComboBox changes that I would have access to in C++
> layer? Nothing obvious comes from the CoreLog and I can't find the
> java code that creates the MDA box.

Indeed, there is no such thing.  MM tries to keep the different software
layers well separated, and devices have no knowledge of the actual
acquisition strategy (i.e., they are only told to do things the device
knows about).  I am wondering why your device needs this information,
and why it can not leave it up to the MDA to generate the correct
sequence.  It seems that your device controls both a z-drive and a
channel switcher at the same time.  Is it possible to split those in
two, i.e. one device to control channels, and one device to control your
z-drive?  That is the way MM thinks the world works...

Best,

Nico


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Device-accessible variable for acq order?

John James
Hi Nico!

Hi John,


> I am trying to modify a device adapter for hardware sequencing, and
> need to be able to change the code depending on whether the acq order
> is "Slice, Channel" or "Channel, Slice". Is there a global variable or
> flag that the MDA ComboBox changes that I would have access to in C++
> layer? Nothing obvious comes from the CoreLog and I can't find the
> java code that creates the MDA box.

Indeed, there is no such thing.  MM tries to keep the different software
layers well separated, and devices have no knowledge of the actual
acquisition strategy (i.e., they are only told to do things the device
knows about).  I am wondering why your device needs this information,
and why it can not leave it up to the MDA to generate the correct
sequence.  It seems that your device controls both a z-drive and a
channel switcher at the same time.  Is it possible to split those in
two, i.e. one device to control channels, and one device to control your
z-drive?  That is the way MM thinks the world works..

I'm using Austin's TriggerScope, to do exactly as you say. For some reason though, when I use "Channel, Slice" uM only sequences the slices but if I do "Slice, Channels" it does both as sequences. 
This means in the Arduino code I can't really use the same approach as the TTL sequence array is empty in the first case and turns off all lasers. 
I have written two different loops in the arduino code to step through each variant and Austin passes a flag for channel slave or not, and I was really hoping just to use this - clearly not!
I would rather not have to re-write a lot of code but it seems this maybe the safest option, although as I am typing I've just thought of a hack to potentially work out the imaging order...

Thanks for letting me know, I'll change tack accordingly!
Cheers,
John



--
Dr John R. James
University of Cambridge
MRC-LMB (1S429)
Francis Crick Avenue
Cambridge
CB2 0QH

+44 (0) 1223 267280

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Device-accessible variable for acq order?

Nico Stuurman-2
Hi John,


>     > I am trying to modify a device adapter for hardware sequencing, and
>     > need to be able to change the code depending on whether the acq
>     order
>     > is "Slice, Channel" or "Channel, Slice".
>
>
>
> I'm using Austin's TriggerScope, to do exactly as you say. For some
> reason though, when I use "Channel, Slice" uM only sequences the
> slices but if I do "Slice, Channels" it does both as sequences.

Seems like a bug in the TriggerScope adapter code. Maybe Austin can fix it?

> This means in the Arduino code I can't really use the same approach as
> the TTL sequence array is empty in the first case and turns off all
> lasers.
> I have written two different loops in the arduino code to step through
> each variant and Austin passes a flag for channel slave or not, and I
> was really hoping just to use this - clearly not!
> I would rather not have to re-write a lot of code but it seems this
> maybe the safest option, although as I am typing I've just thought of
> a hack to potentially work out the imaging order...

Good luck!

Best,

Nico



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Device-accessible variable for acq order?

Austin
Hi Nico & John,

In the most recent firmware, this (should) be addressed. As you note the “master” of operation was hitting a problem in the firmware, where the priority was ignored. 
John if the newer firmware doesn’t address the problem please let me know, as it needs to work for both methods!



Austin Blanco
Advanced Research Consulting Corporation
c. 510.708.2995








On Jan 17, 2017, at 10:17 AM, Nico Stuurman <[hidden email]> wrote:

Hi John,


I am trying to modify a device adapter for hardware sequencing, and
need to be able to change the code depending on whether the acq
   order
is "Slice, Channel" or "Channel, Slice".



I'm using Austin's TriggerScope, to do exactly as you say. For some
reason though, when I use "Channel, Slice" uM only sequences the
slices but if I do "Slice, Channels" it does both as sequences.

Seems like a bug in the TriggerScope adapter code. Maybe Austin can fix it?

This means in the Arduino code I can't really use the same approach as
the TTL sequence array is empty in the first case and turns off all
lasers.
I have written two different loops in the arduino code to step through
each variant and Austin passes a flag for channel slave or not, and I
was really hoping just to use this - clearly not!
I would rather not have to re-write a lot of code but it seems this
maybe the safest option, although as I am typing I've just thought of
a hack to potentially work out the imaging order...

Good luck!

Best,

Nico



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Loading...