|
New Release: OpenJAUS v3.3.0b |
|
|
|
|
Thursday, 10 September 2009 00:00 |
|
Over the past year, a number of bugs and issues have been identified by OpenJAUS users. Thank you to everyone that has submitted a ticket or emailed us or posted on our forums about a bug they have found. OpenJAUS v3.3.0b is a mostly maintenance release which addresses the bugs and issues identified in the OpenJAUS toolkit over the past year. However, two important new features are added as well and documented below.
Support for QNX
OpenJAUS wants to thank Tim Sowden of Perry Singsby Systems for his efforts in porting the OpenJAUS SDK to QNX. The minor changes required to support QNX have been added to the OpenJAUS trunk and moving forward with release 3.3.0b, support for an OpenJAUS release for QNX. QNX support was developed and tested on QNX Neutrino 6.3 with gcc 3.3.5
Introducing toString()
An often asked for but missing feature of libjaus was the ability to easily create a human-readable string of the contents of a JAUS message. Thanks to Luke Rosenberry and Mountain Top Technologies, OpenJAUS now supports toString() functions for every message! These will create a character buffer and populate it with the contents of the given message including the Header fields and the contents of the message data.
Download OpenJAUS v3.3.0b at the Google Code repository!
Change Log:
New Features
- QNX Support: Thanks to Tim Sowden of Perry Singsby Systems, OpenJAUS has been ported to and tested to run on QNX Neutrino 6.3 and gcc 3.3.5. Changes to the codebase are now incorporated in the main OpenJAUS trunk.
- libjaus: Added toString functions for all messages and types
- jausTime: Added the ability to explicitly set a JausTime from a time_t structure using jausTimeSetTime()
- ojCmpt:
- Added the ability to terminate a controller with ojCmptTerminateController()
- Added a mutex for the userData which can be locked and unlocked using the new functions: ojCmptUnlockUserData() and ojCmptLockUserData()
- libopenJaus: Added a function to the nodeManagerInterface to check if a node manager is up and running and ready to be used, ojNodeManagerIsReady() This can be configured to block, not block or wait a given timeout period for a nodemanager response. Uses two new NMI messages: READY_CHECK(0x0E) and REPORT_READY(0x0F)
- scManager: Added significantly more mutex locking behavior, also identified an issue with deletion of sc pointers which were in the scm->incomingSC list.
NOTE: serviceConnectionDestroy() now requires a pointer to the ServiceConnectionManager object to check the scm->incomingSC list for possible lost pointers
Bug Fixes / Tickets
- hashmap.h: Made a change to support gcc 4.x and greater which supports the new <unordered_map> class
- jausLong.c & jausUnsignedLong.c: fixed fromBuffer() methods not allocating enough memory
- Ticket #19, OjUdpComponentInterface.cpp: Interface no longer fails when a component with invalid id checks in
- Ticket #20, scManager.c: Added missing mutex lock in service connection manager
- Ticket #8: Fixed missing cases in jausCommandCodeToString()
- Ticket #10, reportImageMessage.c: Allocated memory for image data buffer during parsing
- Ticket #26, multicastSocket.c: Fixed possible Linux packet loss bug
- Ticket #7: Added missing jaus export in jausInteger.h
- Ticket #17, defaultMessageProcessor.c: Added support for query component control message
- Ticket #13 & Ticket #14: Fixed world model message errors
- Ticket #12: SystemTree.cpp: Fixed Possible segmentation fault in node id string copy
- Ticket #9: eventMessage.c: Fixed improper report message destination address copy
- Ticket #11, setCameraCapabilitiesMessage: Corrected use of incorrect presence vector bit
- Ticket #25, reportPayloadInterfaceMessage.c: Added check for required payloadInterface struct
- Ticket #15: jausPayloadInterface.c: Fixed payload string parsing error
- Ticket #18, NodeManagerComponent.cpp: Fixed address copy bug, caused NM not to respond to a subsystem query config
- Ticket #16: Added fix to component framework that allows state change from external command message by default
- Ticket #21, jausComponentCommunicationManager.cpp: Added mutex lock around interfaceMap to fix possible component timeout problem
- Ticket #22: Fixed possible memory leak in payload data element
- Ticket #23: Fixed possible memory leak in Communicator and Node Manager Components
- Ticket #27, QNX Support: Added header required header files and code change in nodeManagerInterface.c
- Ticket #24, reportManipulatorSpecificationsMessage.c: Fixed bug that caused user data to be overwritten
|