forked from usnistgov/rcslib
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
first git commit, copied from svn+ssh://lamb.mel.nist.gov/mxproj/foun…
…dation/svn_repos/trunk/rcslib
- Loading branch information
0 parents
commit 8c4e2e7
Showing
2,010 changed files
with
673,466 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Will Shackleford -- [email protected] or [email protected] | ||
|
||
Several other people contributed long before this file was created. | ||
Please email me or use CVS to add your names here. | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,187 @@ | ||
|
||
|
||
------------------------------------------------------------------- | ||
|
||
2001 | ||
|
||
* Ported to QNX 6.0 and 6.1, Linux 2.4, | ||
|
||
* Added support for communications to processes under Rtlinux 3.0 and RTAI | ||
|
||
* Updated java support for JDK 1.3 | ||
|
||
* A variety of changes aimed at allowing the RCS-Design tool and Diagnostics | ||
applets work on low-resolution screens. | ||
|
||
-------------------------------------------------------------------- | ||
|
||
2002 | ||
|
||
Support for converting back and forth between XML and NML (binary) messages | ||
is almost complete. | ||
|
||
Support for building the RCS library using the GNU autotools configure/ | ||
autoconf/automake/libtool etc instead of static | ||
Makefiles and build scripts is almost complete . | ||
|
||
--------------------------------------------------------------------- | ||
|
||
2003 | ||
|
||
Support was added for converting back and forth between XML and | ||
NML (binary) messages. | ||
|
||
Support for building the RCS library using the GNU autotools configure/ | ||
autoconf/automake/libtool etc instead of static | ||
Makefiles and build scripts is almost complete. | ||
|
||
The RCS Library was modified so that it could be compiled with the MinGW, | ||
a free set of tools that allows one to compile programs on MS Windows. | ||
|
||
--------------------------------------------------------------------- | ||
|
||
2004 | ||
|
||
NML - the Neutral Messaging Language is one of the main components of the RCS | ||
library. OE - a standard "Operating Environment" being pursued by | ||
"Weapon System Technical Architecture Working Group"(WSTAWG). The integration | ||
effort included both wrapping the NML api with the OE api and the reverse. | ||
|
||
An NML configuration server was added to the RCS library which | ||
generates the data that would otherwise be stored in an NML configuration file | ||
as processes run and makes the data available through a TCP socket interface. | ||
Existing applications can use the server if the config file name is changed | ||
to "nmlcfgsvr:<hostname>" where hostname is the name or IP address of the | ||
host running the nmlcfgsvr. There is also an additional API: | ||
nmlcfgsvr_create(), nmlcfgsvr_check(), nmlcfgsvr_delete() that new applications | ||
could use to manipulate and query the configuration data with finer control | ||
than what occurs within the NML constructors/destructors. It may be useful in | ||
situations where maintaining a configuration file might be difficult. It was | ||
used to implement the OE NamingService for the oeim demonstration. | ||
|
||
Multireader queues were added. With multireader queues every reader will get | ||
every message (assuming the queue does not become full). With normal NML queues | ||
while multiple processes could read from the same queue only one process | ||
would get each message, removing it from the queue so that it is no longer | ||
available to the other processes. This is intended to be used with OE Endpoints | ||
and OE Endpoint Groups however neither of these has yet been implemented on | ||
topof NML. | ||
|
||
Priority based queues were added. Priority based queues can be written to with | ||
an new function NML::write_with_priority() which takes an additional integer | ||
priority. Messages with higher priority will be received by the reader before | ||
messages with lower priority if the high priority message was written while | ||
the low priority message was in the queue. | ||
|
||
A function was added to interrupt blocking reads and other blocking functions, | ||
that can be called from a second thread or signal handler. | ||
|
||
A large list of new blocking functions were added to support OE's heavy use of | ||
callbacks and triggers including: wait_for_anything(), wait_for_read(), | ||
wait_for_clear(),wait_for_write(),wait_for_queue_length_over(), | ||
wait_for_queue_length_under(). | ||
|
||
The DCS developed application called OEIM, (OE Instant Messenger) was compiled | ||
and run on top NML using the newly developed OE over NML wrapper replacing the | ||
DCS implementation of OE. Only a few trivial changes to the source code were | ||
required. All of the changes were related to dormant errors in the OEIM | ||
application. (Using functions not in the OE spec, argument types that were | ||
close but not correct, deleting objects more than once, etc.) | ||
|
||
The conformance tests developed at DCS for DataStores and MessageQueues were | ||
compiled and successfully run over the OE over NML wrapper. | ||
|
||
Software from DCS was integrated in to NML so that NML can be configured to | ||
exchange data by internally calling OE defined functions implemented in the | ||
separate DCS provided library. | ||
|
||
For the second phase of the project we built a proxy between a specific NML application and a specific OE application. The application selected was the connection between the Soldier Machine Interface(SMI), a graphical MS Windows program, | ||
originally developed by GDRS and now modified and maintained by DCS somehow related to VCAT and a linux program called the yoke driver. The yoke is a particular hand-held tethered input device that combines several small joysticks, switches and buttons. The current state of the switches and joysticks is read by a linux program and written to an NML buffer on a periodic basis. There was also a simulated version of this program that ran a graphical application on linux that displayed a picture of the yoke where the state of the switches and joysticks could be set using a normal desktop mouse. While the original SMI program was written to use NML it was modified to use OE so that a proxy would be necessary. I wrote a program that read from the NML buffer written to by the yoke program, converted that data structure to one that could be sent to the new SMI program over OE and then sent it. I also performed a number of performance tests using the proxy and found that while the DCS OE implementation is much slower than using NML, | ||
the overhead added by using a proxy versus using OE directly was extremely negligible. | ||
|
||
Since completing the OE-NML integration work I have updated the RCS Library | ||
web pages and source-code archives so that the NML dynamic configuration server could be used more widely. I have recieved some feedback from Steve Legowik who | ||
is testing using it with a new ANS. | ||
|
||
----------------------------------------------------------------------------- | ||
|
||
2005 | ||
|
||
Support was added to NML for IPv6, previously only IPv4 was supported. | ||
IPv6 is the internet standard low-level protocol which allows 2^128 addresses | ||
rather than 2^32 addresses possible with IPv4. | ||
GDRS and RoboticsResearch are apparently both working on proving their systems | ||
will be compatible with IPv6. | ||
|
||
Several new features were added the the RCS Diagnostics tool in support of | ||
MOAST, LAGR and the HMWWV ARL work, including the ability to modify status | ||
messages, view images, and plot arrays. | ||
|
||
A new way of recording separate variable logs was added to the NML server in | ||
support of higher time resolution plots in the diagnostics tool and | ||
potentially for other applications. The client tells the server which | ||
variable(s) is of interest, maximum log size to keep and frequency and the | ||
server logs only that variable until the client can request the entire log. | ||
This lessens the chance of change in a variable being missed in the plot and | ||
assuming the message is large compared to the number of variables being | ||
logged reduces bandwidth required. | ||
|
||
A number of additional plotting styles were added to the Diagnotics tools | ||
including the ability to display one plot vs another, the difference between | ||
two plots, the integral or derivative or to have the diag tool smooth the plot. | ||
All variables can now be displayed overlapping in a single area of the screen | ||
as before or each variable displayed in a separate section of the screen. | ||
|
||
--------------------------------------------------------------------------- | ||
|
||
2006 | ||
|
||
The notion of a cloned buffer which is basically a caching system | ||
was added to the configuration file. This allows | ||
a remote process to be configured to read from a local clone rather than the | ||
original remote buffer, a process that continually updates the local clone | ||
is spawned in the background. The read from a local clone is much | ||
faster than from the remote buffer. If multiple processes on the same host | ||
need to read from the same remote buffer, this can reduce the bandwidth | ||
required as the message is only sent once, rather than potentially once | ||
for each process. | ||
|
||
A function was added nmlSetIgnoreRemote(), if the function is called at the | ||
beginning of a program for any subsequent call to create a connection to a | ||
remote buffer will be silently ignored. This allows one to write a server that | ||
connects to every single buffer that might even potentially be used anywhere | ||
in the system, but at run time only create buffers appropriate for that host | ||
given the current configuration. For lagr this meant several different | ||
server programs could be combined into one easier to maintain program. | ||
|
||
At the request of GDRS, the library was ported to VxWorks 6.2 and | ||
LynxOs 4.0. | ||
|
||
|
||
------------------------------------------------------------------------- | ||
|
||
2007 | ||
|
||
We have continued to support GDRS with a number of bug-fixes. Rashmi Patel of | ||
GDRS has been particularly active in porting the latest RCS library to | ||
the latest versions of VxWorks and Windows CE. Neither operating system do we | ||
have development versions of to do the testing that can be done at GDRS. | ||
|
||
There is a new diagnostics tool using the latest Swing components and therefore a more modern appearance. | ||
|
||
------------------------------------------------------------------------- | ||
|
||
2008 | ||
|
||
|
||
* Automatically generate memory map description text files for data structure documentation. | ||
|
||
* Functions to save/read NML messages in files platform independant packed files in both C++ and Java. | ||
|
||
* Diagnostics tools can query NML configuration server for list of buffers. | ||
Diagnostics tool can parse C++ headers directly wihout need of a ".diag" or ".cfg" file. | ||
|
||
* NML Table now sortable by buffer name/host/ message count or connection status. | ||
|
||
* get_type() function retrieves the type of message without needing to read the whole message. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
The NIST RCS (Real-time Control Systems) | ||
library is public domain software, however it is preferred | ||
that the following disclaimers be attached. | ||
|
||
Software Copywrite/Warranty Disclaimer | ||
|
||
This software was developed at the National Institute of Standards and | ||
Technology by employees of the Federal Government in the course of their | ||
official duties. Pursuant to title 17 Section 105 of the United States | ||
Code this software is not subject to copyright protection and is in the | ||
public domain. NIST Real-Time Control System software is an experimental | ||
system. NIST assumes no responsibility whatsoever for its use by other | ||
parties, and makes no guarantees, expressed or implied, about its | ||
quality, reliability, or any other characteristic. We would appreciate | ||
acknowledgement if the software is used. This software can be | ||
redistributed and/or modified freely provided that any derivative works | ||
bear some notice that they are derived from it, and any modified | ||
versions bear some notice that they have been modified. | ||
|
||
Commercial Product Disclaimer | ||
|
||
Certain commercial software applications and libraries are identified in the | ||
source code, documentaion, build system etc to specify the build procedure | ||
adequately. Such identification is not intended to imply recommendation or | ||
endorsement by the National Institute of Standards and Technology, nor is it | ||
intended to imply that the software identified is necessarily | ||
the best available for the purpose. | ||
|
Oops, something went wrong.