You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
11 KiB
206 lines
11 KiB
15 years ago
|
RELEASE NOTES: OpenJAUSv3.3 (07/10/08)
|
||
|
==========================================
|
||
|
|
||
|
OpenJAUSv3.3 beta is an open source implementation of the JAUS Reference
|
||
|
Architecture Version 3.3. The latest code, documentation and support groups
|
||
|
are available at the OpenJAUS web site: http://www.openjaus.com/.
|
||
|
|
||
|
This release contains the following projects:
|
||
|
|
||
|
libjaus: A C99 compliant library that contains JAUS constructs, data
|
||
|
types and messages.
|
||
|
libopenJaus: A C/C++ library containing a runtime JAUS node manager library,
|
||
|
node manager communication interface, and component framework
|
||
|
library.
|
||
|
ojNodeManager: The OpenJAUS node manager executable with text interface
|
||
|
ojVehicleSim: A collection of JAUS components that work together to simulate
|
||
|
a JAUS ground vehicle subsystem. These components provide a set
|
||
|
of services that are commonly used in real ground vehicle
|
||
|
implementations.
|
||
|
|
||
|
If you experience problems in compiling or developing with this code, please
|
||
|
read the tutorials and online FAQ before contacting the OpenJAUS development
|
||
|
group. Please attempt to locate where the problem exists and determine how the
|
||
|
problem can be replicated before seeking additional support. Code patches can be
|
||
|
uploaded at the OpenJAUS web site: http://www.openjaus.com.
|
||
|
|
||
|
|
||
|
Target Operating Environment:
|
||
|
-----------------------------
|
||
|
|
||
|
This software is designed to be cross platform compatible. The code base has
|
||
|
been tested on a variety of operating systems and development environments including:
|
||
|
Linux (Ubuntu & Fedora Core) w/gnu toolchain, Mac OS X w/gnu toolchain, and Windows w/MS
|
||
|
Visual Studio. All test machines have been little endian byte order based. The libjaus
|
||
|
library is C99 compliant and should be compatible with any standard C compiler for any
|
||
|
processing platform. The libopenJaus library has some operating system dependent
|
||
|
abstractions, which may require different implementations for systems not using Linux
|
||
|
or Windows. The library was implemented with POSIX standard programming interfaces where
|
||
|
applicable, to provide a more standardized approach to multi-threading and mutex
|
||
|
implementation.
|
||
|
|
||
|
|
||
|
Installation (GNU Toolchain / Linux & Macintosh OS X):
|
||
|
------------------------------------------------------
|
||
|
|
||
|
Requirements:
|
||
|
make
|
||
|
gcc
|
||
|
g++
|
||
|
|
||
|
To build the library and executable code:
|
||
|
Execute the command: "make" in the root OpenJAUSv3.3.0 directory. The make
|
||
|
command will use the Makefile found in that directory to recursively make each
|
||
|
of the subprojects. Individual Makefiles are located in each subproject
|
||
|
directory to allow for building one project at a time if desired.
|
||
|
|
||
|
Installation:
|
||
|
It is up to the individual developer to decide how to link their code with
|
||
|
the OpenJAUS libraries. Some developers may prefer to install the OpenJAUS
|
||
|
header files and libraries to globally accessible directories. For example, on a
|
||
|
Linux system: /usr/include/ and /usr/lib/. To minimize system invasiveness,
|
||
|
OpenJAUS does not install itself into system directories, rather, all code and
|
||
|
binaries remain in the folders included in the release download.
|
||
|
|
||
|
To execute code developed with these libraries it is recommended that the
|
||
|
developer configure the dynamic linker runtime bindings to reference the
|
||
|
OpenJAUS library directories /libjaus/lib/ and /libopenJaus/lib/. This is done
|
||
|
by editing the systems ld.so.conf (most likely located at /etc/ld.so.conf) to
|
||
|
include these directories and then by running the command: "ldconfig". Another
|
||
|
option to this method would be to simply include the files libjaus.so and
|
||
|
libopenJaus.so in the executable's working directory.
|
||
|
|
||
|
*Note: The default build of the libraries includes all symbols and debug
|
||
|
information within the shared object (.so) files. This is to facilitate
|
||
|
efficient development and use of a run-time debugger. To reduce the size of the
|
||
|
installed libraries, the information can be removed by using the "strip"
|
||
|
command.
|
||
|
|
||
|
|
||
|
Installation (Microsoft Visual Studio / Windows):
|
||
|
------------------------------------------------------
|
||
|
|
||
|
Requirements:
|
||
|
Microsoft Visual Studio
|
||
|
Pthreads-win32 (included in distribution)
|
||
|
pdcurses (included in distribution)
|
||
|
|
||
|
To build the library and executable code:
|
||
|
|
||
|
In the top level directory, open the Microsoft Visual Studio solution
|
||
|
file "OpenJAUSv3.3.0.sln." This solution contains 4 individual projects:
|
||
|
libjaus, libopenJaus, ojNodeManager and ojVehicleSim. These projects correspond
|
||
|
to the descriptions above. Once open, the solution should be able to be
|
||
|
built. Each project has the appropriate dependencies setup using relative paths,
|
||
|
therefore it should compile for the developer in any configuration. Also, project
|
||
|
references have been setup, so a referenced code base will be compiled prior to
|
||
|
the compilation of any child project.
|
||
|
|
||
|
Once built, the ojNodeManager should run in a console window if it is set
|
||
|
as the default project. Ensure that the nodeManager.conf file is configured correctly.
|
||
|
The ojVehicleSim should run as well if it is set to the default project, however it
|
||
|
is important that the ojNodeManager be running first.
|
||
|
|
||
|
The libraries libjaus and libopenJaus can be linked against other projects using
|
||
|
the .lib files. To run projects built against them, ensure the appropriate .dll
|
||
|
files are available either locally or globally on the system.
|
||
|
|
||
|
*Note: Use of these libraries has only been tested in the Debug configuration
|
||
|
to date. This is due to the added value of retaining debug information for developers
|
||
|
of both the OpenJAUS code base and applications based upon that. The creation of release
|
||
|
targets, if desired, is left up to the individual developer.
|
||
|
|
||
|
|
||
|
Configuring and Running the Node Manager:
|
||
|
-----------------------------------------
|
||
|
|
||
|
The node manager executable is currently designed to require manual
|
||
|
configuration. This means the user must edit the text file nodeManager.conf to
|
||
|
enter the appropriate JAUS identification numbers and names, and enter the
|
||
|
correct IP addresses for the intended hardware communication interfaces. The
|
||
|
user is also required to configure the node manager to enable or disable node
|
||
|
level and subsystem level communication. These configurations will vary
|
||
|
depending on the intended design of the JAUS system on which the node manager is
|
||
|
being used. Examples of different JAUS system setups are beyond the scope of
|
||
|
this document. The user is encouraged to read the JAUS reference architecture
|
||
|
and online OpenJAUS tutorials for a more detailed explanation.
|
||
|
|
||
|
Format:
|
||
|
The nodeManager.conf file is made up of section tags and key - value pairs.
|
||
|
The tags are identified within straight braces, ex: "[SECTION]". The key value
|
||
|
pairs are delimited by a colon and a space character, ex: "key: value".
|
||
|
|
||
|
To configure the JAUS node manager properties, edit the "SubsystemId" and
|
||
|
"NodeId" values found under the [JAUS] section tag. Each node manager on a
|
||
|
subsystem's node network should be configured with a unique NodeId number.
|
||
|
Likewise each subsystem on a network of JAUS subsystems should have a unique
|
||
|
SubsystemId number. Failure to make these values unique results in erratic and
|
||
|
undefined behavior when multiple node managers are running at the same time.
|
||
|
Only one node manager process should be run at any given time on a single node.
|
||
|
Set the "Subsystem_Identification" and "Node_Identification" values to any
|
||
|
text string that you would like for your particular system setup. These values
|
||
|
are not required to be unique, as they are only used for text description.
|
||
|
|
||
|
To configure communication interface settings the user is only required to
|
||
|
edit the [Node_Communications] and [Subsystem_Communications] sections. By
|
||
|
default, component communications are always on and the configuration needs to
|
||
|
be kept fixed to use the loopback IP address 127.0.0.1.
|
||
|
Each communications section has one or more sets of transport interfaces
|
||
|
settings, for example "JAUS_UDP" and "OpenJAUS_UDP". This allows for multiple
|
||
|
transport interfaces to be used at a given communications level (component,
|
||
|
node, or subsystem). At present only the JAUS_UDP interface type is used at the
|
||
|
node and component level. However, this allows for other common transport types
|
||
|
such as TCP or Serial to be included in the future.
|
||
|
The user has the option to enable/disable a given transport interface, or
|
||
|
enable/disable an entire level of communication either node or subsystem. The
|
||
|
node manager will startup a transport interface if both it and its
|
||
|
communications level is enabled. To enable a communications level, simply set
|
||
|
the value of the "Enabled" key to "true". To disable a level, set the value to
|
||
|
"false". These values are case sensitive, ex: "TRUE" or "True" would not work.
|
||
|
When each JAUS_UDP interface starts, it attempts to open the network
|
||
|
interface specified with the user configured IP address. If such an interface
|
||
|
exists on the system, the node manager will open the JAUS port 3794 on that
|
||
|
interface. If not, the node manager will fail at startup and an error message
|
||
|
will appear. To configure each JAUS_UDP interface simply set the key
|
||
|
"JAUS_UDP_IP" value to the IP address of the network interface that you would
|
||
|
like it to use. The remaining key values should be left configured as in the
|
||
|
release download. Changing these values will lead to undefined behavior. They
|
||
|
are included only for completeness, and allow for future changes to be made if
|
||
|
necessary.
|
||
|
|
||
|
|
||
|
Further Information:
|
||
|
--------------------
|
||
|
Tutorials: http://www.openjaus.com/tutorials.html
|
||
|
Forums: http://www.openjaus.com/trac/openjaus/discussion
|
||
|
Support contracting:
|
||
|
|
||
|
Known Issues:
|
||
|
-------------
|
||
|
|
||
|
* There is no standalone API documentation, which describes all data
|
||
|
structures, functions, or default behavior. Please read the tutorials for
|
||
|
detailed information on how to perform common tasks. The header files are
|
||
|
organized by function breakdown and allow for easy access to data structure
|
||
|
definitions and function prototypes. Often the functions you seek can be
|
||
|
found quickly by browsing the include/ directories.
|
||
|
|
||
|
* A "ToString" method for each JAUS message and data structure is lacking from
|
||
|
this implementation and thus makes displaying critical information to the
|
||
|
user more cumbersome.
|
||
|
|
||
|
|
||
|
Copyright Notices
|
||
|
-----------------
|
||
|
|
||
|
Portions of the Windows distribution are based on pdcurses and Pthreads-win32.
|
||
|
These binaries packages have their own copyright. They are redistributed with the
|
||
|
OpenJAUS codebase as a convenience to developers. More information about these
|
||
|
packages can be found on their respective websites below:
|
||
|
|
||
|
Pthreads-win32: http://sourceware.org/pthreads-win32/
|
||
|
pdcurses: http://pdcurses.sourceforge.net/
|
||
|
|
||
|
The remainder of the code is copyright OpenJAUS.com and is distributed under the
|
||
|
BSD license. See the LICENSE file for details.
|