From thomas.braun at virtuell-zuhause.de Mon Sep 3 11:47:47 2018
From: thomas.braun at virtuell-zuhause.de (Thomas Braun)
Date: Mon, 3 Sep 2018 20:47:47 +0200


Subject: Writing Igor experiment from Python?
In-Reply-To: <B0943AF2-A92A-4472-87C4-0F58E6B0577A@info-igor.org>
References: <D7B2C354.72DF%francis.dalaudier@wanadoo.fr>
<b8013b5d-449f-7099-a285-2cf2568f60c2@freenet.de>
<21E1D892-35BD-427E-8D0C-34D6788D7FF5@anl.gov>
<B0943AF2-A92A-4472-87C4-0F58E6B0577A@info-igor.org>
Message-ID: <14fe8e0b-936b-06a5-0011-0ab8fc026f5c@virtuell-zuhause.de>

Am 03.09.2018 um 18:34 schrieb Scott Hannahs:
> The other method that I haven?t coded up, but keep thinking about is to use the TCP/IP xop to run in a background task. It listens for command strings and executes them. To transfer data, that special command would open an additional TCP channel and just dump data of a given type and length into a wave.
>
> This then means that the Igor plot/analysis server can exist on any machine and not just the local system.


I don't want to take away the fun of doing some C++ coding and having
fun with the OS TCP/IP stack, but I might have something usable already.

We are using an Igor Pro application and a python application together.
And the python application can execute Igor Pro user functions via [1]
and return their results. It uses ZeroMQ as messaging layer and can be
used either locally or over the network.

The following parameter/return types for Igor Pro functions are
currently supported:

###
Supported parameter types:

string (including pass-by-reference)
variable (including pass-by-reference)
datafolder reference

Supported return types:

string
variable
wave (without wave reference waves or datafolder reference waves)
datafolder reference
###

This is used like everyday and a lot and works pretty well.

Thomas

[1]: https://github.com/AllenInstitute/ZeroMQ-XOP/