Psyclone
AIR Plug for Cygwin (under Windows)
What
is the Psyclone AIR Plug?
The
Psyclone AIR Plug is the Software Development Kit for
creating external Psyclone modules.
All
external modules are usually specified in the psySpec with an
executable specification which tells Psyclone the command line
with which to start the executable containing the external module.
Normally one would fully specify subscription information here
too, although mechanisms exists to manually register from within
the external module when it is running.
The
Psyclone AIR Plug will enable you to create executables which
contain external modules by providing a basic AIRPlug object which
your object can either inherit from or use as an internal variable.
The AIRPlug object will facilitate all communication with the
Psyclone Server, including overwriting existing subscriptions
if needed, receiving wakeup messages from Whiteboards and posting
output messages back. The AIRPlug object is also used for
information about the module's parameters and even binary streams
- more information about this can be found in the Psyclone Manual.
How do
I unpack Psyclone AIR Plug?
Cygwin for Windows is almost identical
with most flavours of UNIX, such as Linux and BSD.
The Psyclone AIR Plug is downloaded
inside a tar archive. Before you can use it you need to unpack
it and the supporting files. To do so you need to be in the directory
where you downloaded the Psyclone AIR Plug to. In here
you enter the following command on the command line
tar xvfz cppair[version]ncl.cygwin.tgz
where version is the Psyclone AIR
Plug version, such as 0.5.0.0. This will create a directory
with the name
cppair[version]ncl.cygwin
inside which you will find the
Psyclone AIR Plug filesalong with the license file and the
quickstart readme file as well as three example external modules,
the Reader, Poster and Tester.
How do I
run Psyclone AIR Plug?
If you want to try the compiled
examples first, you can give the following command (for cpptester):
./cpptester psyclone=localhost
Make sure Psyclone is running first.
To compile the examples you merely
enter the following command on the command line
make
This will compile and build the
three examples, which you can run manually by first starting up
the Psyclone Server without a psySpec in one command window
./psyclone[version]ncl.exe
and in another command windows
run the Tester module
./cpptester.exe
If Psyclone is running on a port
other than 10000 you will have to specify this by
./cpptester.exe psyclone=localhost:12000
or if Psyclone is running on another
computer on the network
./cpptester.exe psyclone=mikescomputer:12000
To include an external module when
running Psyclone and have Psyclone help you by starting the module
for you automatically you will need to create a psySpec and
define a module which provides the full command line with which
to start up the external module. For example, to define a module
which uses an external module in the executable file
mymodule.exe, you would specify the module like this
<module
name="MyModule">
<description>This
module is
my first external module</description>
<parameter
name="maxcount"
type="Integer"
value="100"/>
<parameter
name="anotherparam"
type="double"
value="0.01"/>
<parameter
name="astringparam"
type="String"
value="Hello"/>
<executable
name="MyModuleName"
consoleoutput="yes">
./mymodule.exe
psyclone=%host%:%port% name=%name%
</executable>
<spec>
<context
name="Psyclone.System.Ready">
<phase
id="1">
<triggers
from="WB1">
<trigger
after="100"
type="Psyclone.System.Ready"/>
<trigger
type="Test.Message.Type"/>
</triggers>
<posts>
<post
to="WB1"
type="Other.Message.Type"
/>
</posts>
</phase>
</context>
</spec>
</module>
You can even specify multiple command
lines if the same psySpec is used on different computers and even
different operating systems
<executable
name="MyModuleName"
consoleoutput="yes">
<sys
hostname="mikescomputer">
./mymodule.exe
psyclone=%host%:%port% name=%name%
</sys>
<sys
hostname="brianscomputer">
./mymodule.exe
psyclone=%host%:%port% name=%name%
</sys>
<sys
ostype="Linux">
./mymodule.exe
psyclone=%host%:%port% name=%name%
</sys>
<sys
ostype="OSX"
hostname="johnscomputer">
./mymodule.exe
psyclone=%host%:%port% name=%name%
</sys>
</executable>