Subject: Writing Igor experiment from Python?
In-Reply-To: <14fe8e0b-936b-06a5-0011-0ab8fc026f5c@virtuell-zuhause.de>
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>
<14fe8e0b-936b-06a5-0011-0ab8fc026f5c@virtuell-zuhause.de>
Message-ID: <F6901180-183D-4723-A679-AF3851F8E6C8@magnet.fsu.edu>
I was not going to dive into the C++ but use the already existing Sockit XOP.
https://www.wavemetrics.com/project/SOCKIT
But ZeroMQ could also work as a messaging platform. I was also looking for data to go the other way and to push collected data into Igor as a binary transfer. That was why I was thinking of a two channel system of one for command and one for data streams.
I will take a look at that code, it might work for what I want to do as well as Sockit XOP.
-Scott
> On Sep 3, 2018, at 2:47 PM, Thomas Braun <thomas.braun at virtuell-zuhause.de> wrote:
>
> 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/
> _______________________________________________
> Info-igor mailing list
> Info-igor at lists.info-igor.org
> http://lists.info-igor.org/listinfo.cgi/info-igor-info-igor.org