Recommendations for integrating an IP Experiment into a work flow


I have developed an experiment for a client that analyzes an image and generates several statistics and output summary waves that get saved for further analysis in another program typically JMP. There are two methods of running the analysis first the user can select and image and the analysis runs and saves all the files. The other methods is have the user point to a top level directory and then the program traverses the subdirectories and finds the images and processes them in sequence, basically a version of a batch mode.

The client would now like to progress further and incorporate the analysis automatically when the image is generated. The image is generated in a tool built by the client and they have control of the software interface. It is my understanding that the interface that the operator uses is created in visuals C++ and runs on a windows based server. When the image is taken the host software has the path information to that image.

What would be the easiest way to integrate the analysis by IP7. Basically the experiment would need to know where the image file was located, run the analysis and then quit. I have never done this type of integration before and looking for tips. The client has control of the interface software and can makes changes as necessary.

How should we proceed?

Thanks in advance.

One option is to do it through shell commands. For example, under Windows you can launch Igor, open a PXP experiment, then have it run some function inside an experiment using a batch file containing:
start "C:\Program Files\WaveMetrics\Igor Pro 7 Folder\IgorBinaries_x64\Igor64.exe" /I "pathToPXPfile" & timeout/t 20 "C:\Program Files\WaveMetrics\Igor Pro 7 Folder\IgorBinaries_x64\Igor64.exe" /Q/X "FunctionName(arguments)"

The "timeout" parameter is just to give Igor 20 seconds to start before trying to run the procedure. For more info about the flags, look in the help: DisplayHelpTopic "Calling Igor from Scripts". If you really want Igor to quit once the analysis is done, you can include this line at the end of the function: Execute/Z "Quit/N".
Hi Ajleenheer,

Thank you I saw the section you referenced, but your example helped understand the process. I think this will work.

I think there are basically two ways of doing it:

1) Run Igor all the time, monitoring the directory in which the images are output, and on new images do the analysis.
2) Run a windows background service/ task, monitoring the directory in which the images are output, and on new images call Igor and do the analysis with this image.

Depending on how frequently images are output you would have to select some of these two, or some variation of these two choices.

thomas_braun wrote:
You can also give a shot. It allows to call user defined igor functions over the network and return their results.

I'm using that in one of my projects for interfacing with our igor data acquisition software from other programming languages.

Quite interesting. Thanks for sharing.

Correct me if I am wrong, but the ZeroMQ XOP would require Igor Pro to be running, right?

_sk wrote:
Correct me if I am wrong, but the ZeroMQ XOP would require Igor Pro to be running, right?


If that is a problem you would have to start Igor Pro explicitly and then let the ZeroMQ XOP start listening for incoming messages. Probably via a procedure file in "Igor Procedures".