comp.lang.ada
 help / color / mirror / Atom feed
From: Markus E Leypold <development-2006-8ecbb5cc8aREMOVETHIS@ANDTHATm-e-leypold.de>
Subject: Re: Newbie Needs Ada Advice
Date: Tue, 08 May 2007 23:56:24 +0200
Date: 2007-05-08T23:56:24+02:00	[thread overview]
Message-ID: <yn1whrx9mf.fsf@hod.lan.m-e-leypold.de> (raw)
In-Reply-To: 1178659640.093325.10510@y5g2000hsa.googlegroups.com


ezkcdude <zamir.evan@gmail.com> writes:

> On May 8, 4:21 pm, Markus E Leypold
> <development-2006-8ecbb5cc8aREMOVET...@ANDTHATm-e-leypold.de> wrote:
>> ezkcdude <zamir.e...@gmail.com> writes:
>> > All helpful responses. Thanks. One idea that now makes some sense
>> > (having thought about it for all of a couple of hours), is that the
>> > GUI/interface could be a separate application that simply sets up the
>> > experiment (i.e. microscope configuration). For example, creating an
>> > XML document with appropriate hardware parameters, and then feeding
>> > this document to the "engine", which actually controls the microscope.
>>
>> Don't use XML for that. Overkill. Just plain old tagged data lines
>>
>>    param1  2342.2423
>>    param2  32423.234
>>
>> or even a 1-line per call
>>
>>    CALL function_name 1212 123123 123 1112
>>
>> will suffice and be more readable. Imap uses lispish lists as interface.
>>
>> Regards -- Markus
>
> Well, maybe if I explain the experiment better, it will make more
> sense, why I can't do this so simply. Basically, we do time-lapse
> imaging of several (living) specimens (usually quail embryos, but
> could also be cell culture) over the course of a few hours to days.
> For each specimen, there are several illumination modes (brightfield +
> 1 or more fluorescence channels). On top of  that the microscope stage
> is moved to several overlapping "tiles" for each specimen, so a
> widefield montage can be later stitched together in post-processing.
> Finally, we capture several slices in the z-direction, which can be
> collapsed according to a focus score (sort of like an auto-focus
> routine). Again, that can be done in post-processing. Anyway, to
> illustrate, here is a typical example:
>
> Experiment:
> 6 embryos
> 2x4 tiles
> 7 z-planes
> 3 illumination modes
> 12 minutes/frame (5 frames/h)
>
> Each grayscale image that is acquired is about 635K, so for one 12-
> hour experiment, we're acquiring 6*8*7*3*5*12*635K~38GB!
>
> And I need to mention that the embryos do not simply stay put, they
> can move around enough that periodic adjustments to the microscope
> must be made. That is why it is so important to have some graphical
> feedback. I must be able to make sure the embyro is positioned
> correctly, and this will obviously vary from embryo-to-embryo and
> between experiments. Well, if that still sounds easy to you...

Just think RPC and choose a suitable data format for your protocol.
Calling a "remote" function would just be writing a record in a given
format and waiting for an answering record.

I doubt XML will give you much benefit there, esp. with pcitures.

Concerning pictures: I suggest you write them into a picture queue in
the filesystem and don't pass them through the RPC interface. What you
pass through the interface would just be the file names. If your GUI
or tools want to manipulate images (i.e. removing them while encoding
them to another format), you need a protocol so that different tools
can operate on the image store, i.e. some way to lock the store and
make changes in it known to all participants. Recently I've been
playing with the idea to use the maildir protocol for something like
this, because it mostly eliminates the necessity of locking.

Regards -- Markus





  reply	other threads:[~2007-05-08 21:56 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-03 17:13 Newbie Needs Ada Advice ezkcdude
2007-05-03 18:24 ` Dmitry A. Kazakov
2007-05-03 22:14   ` ezkcdude
2007-05-04  4:07 ` tmoran
2007-05-04 12:57   ` Bob Spooner
2007-05-04 13:38     ` Dmitry A. Kazakov
2007-05-04 14:40       ` ezkcdude
2007-05-04 19:19       ` Bob Spooner
2007-05-04 19:48         ` Dmitry A. Kazakov
2007-05-06 21:46           ` ezkcdude
2007-05-07  7:31             ` Dmitry A. Kazakov
2007-05-07  7:42             ` Alex R. Mosteo
2007-05-07  9:15               ` Dmitry A. Kazakov
2007-05-08  2:58             ` Justin Gombos
2007-05-08 11:58               ` ezkcdude
2007-05-04  4:42 ` Jeffrey R. Carter
2007-05-04  6:48 ` Jacob Sparre Andersen
2007-05-07  8:01 ` Markus E Leypold
2007-05-08 14:40   ` ezkcdude
2007-05-08 15:07     ` Pascal Obry
2007-05-08 15:27       ` ezkcdude
2007-05-08 15:54         ` Pascal Obry
2007-05-08 16:07         ` Georg Bauhaus
2007-05-08 18:42           ` Markus E Leypold
2007-05-08 16:18         ` Ali Bendriss
2007-05-08 19:23         ` Michael Bode
2007-05-08 16:11     ` Markus E Leypold
2007-05-08 16:49       ` ezkcdude
2007-05-08 18:20         ` Ludovic Brenta
2007-05-08 21:17           ` Markus E Leypold
2007-05-08 18:45         ` Markus E Leypold
2007-05-08 18:28     ` Alex R. Mosteo
2007-05-08 18:51       ` ezkcdude
2007-05-08 19:31         ` Michael Bode
2007-05-08 19:43           ` Michael Bode
2007-05-08 20:02         ` Dmitry A. Kazakov
2007-05-08 21:26           ` Markus E Leypold
2007-05-08 21:21         ` Markus E Leypold
2007-05-08 21:27           ` ezkcdude
2007-05-08 21:56             ` Markus E Leypold [this message]
2007-05-09 13:25               ` Jacob Sparre Andersen
2007-05-09 15:58                 ` Markus E Leypold
2007-05-10 21:20                   ` Memory mapped files and shared memory (Was: Newbie Needs Ada Advice) Jacob Sparre Andersen
2007-05-11 16:38                     ` ezkcdude
2007-05-10 18:14     ` Newbie Needs Ada Advice Chip and Allie Orange
2007-05-27  5:50     ` adaworks
2007-05-29 12:54       ` ezkcdude
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox