The Psyclone SDK
is the Software Development Kit for creating internal Psyclone
modules.
All internal modules have
to be fully specified in the psySpec configuration file
including in which third-party libraries to find their central crank function
which is run as an internal process inside Psyclone.
The specification includes information about which Whiteboards to
subscribe to, which additional messages to retrieve when woken up by a trigger
message, which parameters the crank function will be given and where to post
the output.
The Psyclone
SDK will enable you to create these crank functions which are run by the
internal modules. A crank function is very simply a normal C function is an
external library (a dll in Windows terms or shared
object in UNIX terms) which is called from within the Psyclone
executable and executed as if it resided inside. It is passed a Messenger
object with which it can communicate with the internal module about
new wakeup messages being received from a Whiteboard because of a
subscription as well as sending any output message, if any. The Messenger
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.
The Psyclone SDK
is downloaded inside a zip archive. Before you can use it you need to unpack it
and the supporting files. To do so you need to get a zip unpacker
such as WinZIP to help you unpack the archive.
This will create a
directory with the name
psyclonesdk[version]ncl.win32
where version is the Psyclone
AIR Plug version, such as 0.5.0.0.
Inside this you will find the SDK files and examples.
To compile the examples
you will need Microsoft Visual Studio .NET 2003 (versions for Visual Studio 6
and 2005 .NET can be made available).
To start up the project in
Visual Studio, double-click on the mycmdll.sln file.
Then build the solution.
This will compile and
build the library file
cm.dll
To include crank functions as part of an external library when running Psyclone you will need to create a psySpec and define a module using the specific crank function as a crank. For example, to define a module which uses the crank function testCrank located inside the example library called cm, you would specify the module like this
<module name="MyModule">
<description>This module is my first module</description>
<trigger after="100" type="Psyclone.System.Ready"/>
<crank name="cm::testCrank" />
<post to="WB1" type="Other.Message.Type" />
</module>
For more information on this, see the Psyclone Manual (psycloneManual.html).