Psyclone AIR Plug for Java

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?

The Psyclone AIR Plug is downloaded inside a zip archive. Before you can use it you need to unpack it and the supporting files.

This will create a directory with the name

      JavaAIRPlug

where version is the Psyclone AIR Plug version, such as 0.5.0.0.

Inside this you will find the Psyclone AIR Plug files along 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 try giving the following command (for JavaTester, UNIX):

      ./JavaTester psyclone=localhost

and for Windows:

      .\JavaTester.exe psyclone=localhost

Make sure Psyclone is running first.

If you need to compile you merely enter the following command on the command line (for JavaTester.java):

      javac -classpath JavaAIRPlug.jar JavaTester.java              (all platforms)

This will compile and build the JavaTester.class file, which you can run manually by first starting up Psyclone (in one terminal window):

      ./psyclone[version]ncl                 (all platforms)

and (in its own terminal window) run the Tester module

      java -cp .:JavaAIRPlug.jar JavaTester                (Linux and Mac OSX)

      java -cp .;JavaAIRPlug.jar JavaTester                (Windows command prompt)

      java -cp .\;JavaAIRPlug.jar JavaTester                (Cygwin command prompt)

If Psyclone is running on a port other than 10000, e.g. 12000, you will have to specify this by

      java -cp .:JavaAIRPlug.jar JavaTester psyclone=localhost:12000                (Linux and Mac OSX)

      java -cp .;JavaAIRPlug.jar JavaTester psyclone=localhost:12000                (Windows command prompt)

      java -cp .\;JavaAIRPlug.jar JavaTester psyclone=localhost:12000               (Cygwin command prompt)

or if Psyclone is running on another computer on the network

      java -cp .:JavaAIRPlug.jar JavaTester psyclone=mikescomputer:12000                (Linux and Mac OSX)

      java -cp .;JavaAIRPlug.jar JavaTester psyclone=mikescomputer:12000                (Windows command prompt)

      java -cp .\;JavaAIRPlug.jar JavaTester psyclone=mikescomputer:12000               (Cygwin command prompt)

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>
        <executable name="MyModuleName" consoleoutput="yes">
          
<sys ostype="Win32">
                java -cp .;JavaAIRPlug.jar MoModule psyclone=%host%:%port% name=%name%
          
</sys>
          
<sys ostype="Linux">
                java -cp .:JavaAIRPlug.jar MoModule psyclone=%host%:%port% name=%name%
          
</sys>
          
<sys ostype="OSX">
                java -cp .:JavaAIRPlug.jar MoModule psyclone=%host%:%port% name=%name%
          
</sys>
        
</executable>
        <trigger after="100" type="Psyclone.System.Ready"/>
        <post to="WB1" type="Other.Message.Type" />
    </module>