RTI Connext TSS
4.2.0
Contents
1. Introduction
1.1. What is FACE TSS?
1.2. What is RTI Connext TSS?
1.3. What are RTI Connext Professional and RTI Connext Micro?
1.4. About this Document
1.4.1. Paths Mentioned in Documentation
1.5. Support Resources
1.5.1. Community Forum
1.5.2. RTI Connext Documentation
1.5.3. Training and Professional Services
1.5.4. Technical Support
2. Installation
2.1. Installing Connext TSS
2.2. Package Contents
3. Building Connext TSS
3.1. Prerequisites
3.2. The Host and Target Environment
3.2.1. The host environment
3.2.2. The target environment
3.3. Building the Libraries
3.3.1. Optional CMake definitions
3.3.2. Compile-time configuration
3.4. Verifying Built Libraries
4. Getting Started
4.1. Building and Running the Example Application
4.1.1. Building the example
4.1.2. Running the example
4.1.2.1. Running as a publisher
4.1.2.2. Running as a subscriber
4.1.2.3. Running as both publisher and subscriber
4.2. Modifying the Example
4.2.1. Changing QoS
4.2.2. Adding connections
4.3. Troubleshooting the Example
4.3.1. Function returned an error
5. Porting Connext TSS
5.1. New CMake Platforms
5.1.1. Cross-compiling
5.2. New CMake Architectures
5.2.1. Variable definitions
5.2.1.1. General
5.2.1.2. Cross-compiling
6. Capabilities and Interfaces
6.1. Programming Language Support
6.2. Operating System Environment
6.3. TSS Capabilities
6.4. FACE Profiles
6.4.1. GeneralPurpose profile
6.4.2. SafetyBase profile
6.4.3. Limitations
6.5. Type Support
6.6. Type Abstraction Base and Typed interfaces
6.7. Configuring FACE 3.x for Connext Micro
6.7.1. Type Abstraction configuration implementation
6.7.1.1. Type Abstraction XML configuration elements
6.7.2. Transport Protocol Module configuration implementation
6.7.3. OSAPI configuration for Connext Micro
6.7.4. Configuration data types
6.7.4.1. System configuration
6.7.4.2. DDS DomainParticipant configuration
6.7.4.3. Type Support configuration
6.7.4.4. Connection configuration
6.7.5. How configuration data is used in C++
6.7.6. How configuration data is used in C
6.7.7. Extending the configuration interface
6.8. Configuring FACE 3.x for Connext Professional
6.8.1. Connext Professional data types
6.8.2. Registering data types
6.8.3. Adding new participants
6.8.4. Adding new DataReaders and DataWriters
6.8.5. Example
6.9. Dynamic Memory Allocation
6.10. Sequence Element Lifecycle Operations
6.10.1. C++ API
6.10.2. C API
6.10.3. Move Semantics in
FACE_sequence_append_elem
6.10.4. Enabling Sequence Element Operations
6.10.5. RTI FACE_string Reference Implementation
6.10.6. Generated Element Operations
6.10.7. Implementing Element Operations for Custom Types
7. Integrating a Third-Party TPM
7.1. Integration Steps
7.1.1. Wrap your TPM in the FACE interface
7.1.2. Register your TPM with the application
7.1.3. Declare your TPM in TSS.xml
7.2. Integration Constraints
7.2.1. Data format contract
7.2.2. Threading contract
7.2.2.1. Thread safety
7.2.2.2. Application responsibilities
7.2.3. Callback contract
7.2.4. Error code contract
7.2.5. SafetyBase profile constraints
7.3. Troubleshooting
7.3.1. Connection returns NOT_AVAILABLE
7.3.2. Send or receive silently produces corrupt data
7.3.3. Callback never fires on receive
7.3.4. Deadlock during send or receive
7.3.5. Crash or use-after-free during shutdown
7.3.6. Crash or segfault on first I/O call
7.3.7. GUID mismatch: connection not associated with TPM
7.3.8. SafetyBase build fails or aborts at runtime
7.3.9. Application receives TIMED_OUT unexpectedly
7.3.10. Application receives INVALID_PARAM on seemingly valid calls
7.3.11. Register_Callback returns NO_ACTION
7.3.12. Write or Read returns NOT_AVAILABLE
7.3.13. TPM returns NO_ERROR but application still reports an error
7.4. Validation
8. Troubleshooting
8.1. Community Forum
8.2. Connext Documentation
8.3. Professional Training and Services
8.4. Technical Support
9. API Reference
9.1. Thread Safety Model
9.1.1. API Thread Safety
9.1.2. Product Thread Safety
9.2. Typed TS Interfaces
9.2.1. Headers
9.2.2. Communication
9.2.2.1. Send_Message()
9.2.2.2. Receive_Message()
9.2.3. Callback Interface
9.2.3.1. Register_Callback()
9.2.3.2. Read_Callback::Callback_Handler
9.2.3.3. Unregister_Callback()
9.3. TSS TA Base
9.3.1. Headers
9.3.2. Initialization
9.3.2.1. Set_Reference() Configuration
9.3.2.2. Set_Reference() TPM
9.3.2.3. Set_Reference() Logging
9.3.2.4. Initialize()
9.3.3. Connections
9.3.3.1. Create_Connection()
9.3.3.2. Destroy_Connection
9.3.3.3. Enable_Runtime()
9.3.4. Communication
9.3.4.1. Send_Message()
9.3.4.2. Receive_Message()
9.3.5. Callback Interface
9.3.5.1. Register_Callback()
9.3.5.2. Read_Callback::Callback_Handler
9.3.5.3. FACE::TSS::BASE::Unregister_Callback()
9.4. TSS TPM Interfaces
9.4.1. Headers
9.4.2. Initialization
9.4.2.1. Set_Reference(Configuration)
9.4.2.2. Set_Reference(Serialization)
9.4.2.3. Set_Reference(Primitive_Marshalling)
9.4.2.4. Set_Reference(Logging_Interface)
9.4.2.5. Initialize()
9.4.3. Connections
9.4.3.1. Open_Channel()
9.4.3.2. Close_Channel
9.4.4. TPM Status and State
9.4.4.1. Request_TPM_State_Change
9.4.4.2. Is_Data_Available
9.4.4.3. Get_TPM_Status
9.4.5. Communication
9.4.5.1. Write_To_Transport()
9.4.5.2. Read_From_Transport()
9.4.6. Callback Interface
9.4.6.1. Register_Callback()
9.4.6.2. TPM_Callback::Data_Callback_Handler
9.4.6.3. TPM_Callback::Event_Callback_Handler
9.4.6.4. FACE::TSS::BASE::Unregister_Callback()
9.4.7. FACE String
9.4.7.1. Headers
9.4.7.2. FACE::String::String()
9.4.7.3. FACE::String::~String()
9.4.7.4. FACE::String::clear()
9.4.7.5. FACE::String::append()
9.4.7.6. FACE::String::reserve()
9.4.7.7. FACE::String::buffer()
9.4.7.8. FACE::String::length()
9.4.7.9. FACE::String::capacity()
9.4.7.10. FACE::String::bound()
9.4.7.11. FACE::String::is_managed()
9.4.7.12. FACE::String::is_bounded()
9.4.7.13. FACE::String::is_valid()
9.4.8. FACE Sequence
9.4.8.1. Headers
9.4.8.2. FACE::Sequence::Sequence()
9.4.8.3. FACE::Sequence::~Sequence()
9.4.8.4. FACE::Sequence::clear()
9.4.8.5. FACE::Sequence::append()
9.4.8.6. FACE::Sequence::reserve()
9.4.8.7. FACE::Sequence::buffer()
9.4.8.8. FACE::Sequence::length()
9.4.8.9. FACE::Sequence::capacity()
9.4.8.10. FACE::Sequence::bound()
9.4.8.11. FACE::Sequence::is_managed()
9.4.8.12. FACE::Sequence::is_bounded()
9.4.8.13. FACE::Sequence::is_valid()
9.5. Logging
9.5.1. Log_Text(LOGGING)
9.5.2. Log_Binary(LOGGING)
9.6. TSS Configuration Defaults
9.6.1. Type Bounds
9.6.2. Resource Limits
9.6.3. Buffer Sizes
9.6.4. Hash Table Tuning
9.6.5. DDS Defaults
9.6.6. Overriding Defaults
10. Release Notes
10.1. Language Support
10.2. Supported Platforms
10.3. What’s New in 4.2.0
10.3.1. Support for FACE 3.2 Technical Standard
10.3.2. Protect thread safety in TSS applications
10.3.3. Generate a single C/C++ output file, simplifying code management
10.3.4. FACE C APIs conform to FACE CR 1255 resolution
10.3.5. Initialize functions in generated code now comply with FACE 3.2
10.3.6. Generate FACE strings and sequences in example applications
10.3.7. Develop Connext Professional applications for FACE
10.3.8. Use
Connext Micro
Transport Protocol Module with
Connext TSS
4.2 architecture
10.4. What’s Fixed in 4.2.0
10.4.1. Memory leak when using sequence-of-sequence types in General Purpose profile
10.4.2. Missing or incorrect API documentation
10.4.3. Static tables that allocate memory for hash tables were determined at compile time
10.4.4. Examples caused compiler warnings on Windows systems
10.4.5. Unnecessary callback macro included in templates
10.4.6. Incorrect error handling within create_subscriber() and create_publisher() functions
10.4.7. FACE NO_ERROR collided with NO_ERROR definition on Windows systems
10.4.8. Generated C code did not support forward delcarations
10.4.9. Application discovery database corrupted by repetitive function calls
10.4.10. Register_Callback function signature differed from CTS GSL in C++
10.4.11. Increasing sequence length caused deserialization failures in SafetyBase profile
10.4.12. Generated code attempted to call the private default constructor upon instantiation of an enum class
10.4.13. RTI Code Generator replaced DM with TSS outside of namespaces
10.4.14. Common_Hash.h generated compiler warning
10.4.15. return_Code in Linux example compared return value instead of assigning it
10.4.16. Connext Professional C example generated compiler warnings
10.4.17. return_Code in Windows example compared return value instead of assigning it
10.4.18. Incorrect library name description and example code paths in User’s Manual
10.4.19. Possible memory leak when assigning values to sequences of strings
10.5. Previous Releases
10.5.1. What’s Fixed in 4.1.0.2-EAR
10.5.1.1. Incorrect symbol used for the pre-processor #define in the generated TypeAbstraction_Callback functions
10.5.1.2. TSSConfiguration::Initialize() did not return on failure to malloc in examples
10.5.1.3. Multiple nested IDL includes could generate incorrect include paths
10.5.1.4. C++ sequences “=” operator allocated extra memory
10.5.1.5. Connext TSS re-asserted remote publications and subscriptions for each CreateConnection() call
10.5.1.6. Error returned if create_publisher() or create_subscriber() returned a warning
10.5.1.7. Type-specific TypeAbstraction_callback not generated properly
10.5.1.8. Connext TSS did not generate FACE type definitions correctly
10.5.1.9. Connext TSS generated TypedTS includes by namespace instead of file path
10.5.1.10. Generated code contained extra “&” when assigning internal helper functions
10.5.1.11. Sequences of sequences or strings did not initialize inner objects
10.5.1.12. C++ TypedTS class template did not inherit from TA_Injectable
10.5.1.13. Generated C code did not support forward declarations
10.5.2. What’s Fixed in 4.1.0.1-EAR
10.5.2.1. Incorrect symbol used for the pre-processor #define in the generated TypeAbstraction_Callback functions
10.5.2.2. TSSConfiguration::Initialize() did not return on failure to malloc in examples
10.5.2.3. Multiple nested IDL includes could generate incorrect include paths
10.5.2.4. C++ sequences “=” operator allocated extra memory
10.5.2.5. Connext TSS re-asserted remote publications and subscriptions for each CreateConnection() call
10.5.2.6. Error returned if create_publisher() or create_subscriber() returned a warning
10.5.2.7. Type-specific TypeAbstraction_callback not generated properly
10.5.2.8. Connext TSS did not generate FACE type definitions correctly
10.5.3. What’s New in 4.1.0-EAR
10.5.3.1. Added support for FACE TSS C API
10.5.3.2. Added support for Transport Protocol Module
10.5.3.3. Implemented certifiable FACE String and Sequence classes
10.5.3.4. RTI logging replaced by FACE logging
10.5.3.5. Added support for LynxOS-178
10.5.3.6. Added support for FACE GUIDs
10.5.3.7. Added injectable interface for callbacks
10.5.3.8. Third-party software changes
10.5.4. What’s Fixed in 4.1.0-EAR
10.5.4.1. Sequences of arrays caused compile errors
10.5.4.2. Possible memory leak when RTI_TSS_Impl_new() did not check for NULL after allocation
10.5.4.3. No longer necessary to use #ifdef FACE_SEQUENCE_AND_STRING_IMPLEMENTED flag
10.5.5. What’s New in 3.1.2
10.5.5.1. Added support for Deos 653
10.5.5.2. Changed Logging verbosity to be set by command line switches
10.5.5.3. Renamed Cmake architecture files for VxWorks7 to include FACE_GP
10.5.6. What’s Fixed in 3.1.2
10.5.6.1. Compiler warnings on VxWorks 7 systems
10.5.6.2. Warning when loading hello_goodbye_dkm_static example
10.5.6.3. Build time FACE conformance warning message
10.5.6.4. Double quotation marks in command line contexts
10.5.6.5. Source file types.c was compiled when flag was set to true
10.5.6.6. Receive_Message() unable to retrieve multiple messages in the reader queue
10.5.7. What’s New in 3.1.1
10.5.7.1. Removed the Static Configuration API
10.5.7.2. Updated source files to meet RTI and FACE coding standards
10.5.7.3. Updated parameter checking and return codes
10.5.8. What’s Fixed in 3.1.1
10.5.8.1. Updated rtiddsgen to meet FACE 3.1 Conformance
11. Third-Party Software
11.1. Third-Party Software included in Connext TSS
11.1.1. XML Parser for C
11.2. Third-Party Software Used by RTIDDSGEN Code-Generation Utility
11.2.1. ANTLR
11.2.2. Apache Commons CLI
11.2.3. Apache Commons Lang
11.2.4. Apache Log4j 2
11.2.5. Apache Velocity
11.2.6. Gson
11.3. Open Source Software Licenses
11.3.1. Apache License version 2.0, January 2004 (http://www.apache.org/licenses/)
Copyrights and Notices
RTI Connext TSS
Index
Index