Improvement: Removed all isControllingXXXClient condition callback functions. *IMPORTANT* Be sure to delete any isControlling…Client functions from your code if you have overridden them for implementation. We are now just using one isControllingClient function which is implemented in the Core components at the access control level.
Feature: Added support for On-Change Events. To use this feature, just publish the message as usual, then call the notifyChanged method when you wish subscribing components to be sent updates. You must pass in the corresponding command code id of the published message to the notifyChanged() method.
Feature: Added support for large message handling with JTCP. This improves robustness when trying to assemble large messages through a lossy data link. To use this feature, enable tcp support in both sending and receiving applications with the config file option: “EnableTCP=true” Then set the must arrive flag on your outgoing message to true: “myMessage.setMustArrive(true);”
Feature: Added toString() and << operator support for all JAUS Message classes Output format is: “SpecificMessageName [Hex Command Code Number]”
Feature: Removed Time and Date BitFields from all messages and replaced with model::fields::TimeStamp and model::fields::DateStamp classes. This allows consolidation of time and date functionality in one place. Added typedef information to classes which previously used the per-package BitField implementations of TimeStamp and DateStamp to reduce errors for end users.
Feature: Added command line option to load user specified named configuration file. Syntax format is: “–ojconf=MyConfFileName.conf” Note, this will NOT automatically create the file, you must rename an existing conf file. To automatically create a conf file, just run your component application without the –ojconf option and exit it (cleanly without crashing), a default conf file will automatically be generated in your working directory.
Feature: MAX_VALUE and MIN_VALUE of all scaled integer message fields are now public members that can be accessed for reference and bounds checking.
Feature: All set(value) methods for scaled integer message fields now return bool to indicate success. The return value is false if a value that is out of the allowed MIN and MAX is passed in.
Feature: Allow user to set the max supported periodic rate for published messages. Use the publish(uint16 messageId, double maximumRate_Hz, model::ConnectionType type) method The maximumRate_Hz and type arguments are optional. Their default values are -1 (infinity) and ALL_EVENTS (periodic and on-change), respectively. The publish(Message* msg) is now deprecated.
Feature: Added Discovery Client Service. Use the “EnableDiscoveryServer” option in the config file to determine if the Discovery Server behavior is enabled.
Feature: Added Dynamic Addressing using Node 1 Heartbeats. For use in the AEODRS system architecture, this dynamic JAUS Addressing technique uses static Node and Component IDs with the Subsystem ID being assigned at runtime via Report Heartbeat messages sent by Node 1 using broadcast.
Feature: Access Control Timeout. Use the “AccessControlTimeout_seconds” option in the config file to control the number of seconds for timeout of control. The controlling component is automatically removed unless a Request Control message is received within the specified number of seconds. The default value of 0 disables this feature.
Feature: ARM Cross-Complier support. Cross compiling for ARM processors is now supported using the Sourcery CodeBench toolchain in Windows. (http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/) To create makefiles for ARM compilation, use the “premake4 arm” command from the Windows command line then “cs-make”. ARM binaries should be compiled statically for portability.
Bug Fix: openjaus::system::Application::getChar() was not blocking when run in background mode in Linux, which caused busy loop.
Bug Fix: Timer objects previously were not stopped in Windows OS after being stopped, leaving unnecessary background work remaining.
Bug Fix: Messages are now properly passed through a priority queue based on the JAUS priority number in the message header.
Bug Fix: Projects now build correctly in VS2010 and beyond in Release mode (fixed issue with premake project generation)