Contents
1 Introduction
1.1 Benefits of Using REDHAWK
1.2 What Systems May Benefit from Using REDHAWK?
1.3 Relationship to the SCA
1.4 Overview of this Document
2 Installation
2.1 Introduction
2.2 Installing REDHAWK from RPMs
2.2.1 Configuring the Host System to Install REDHAWK Extra Packages for Enterprise Linux (EPEL) Dependencies
2.2.2 Downloading and Configuring the REDHAWK Yum Repository on the Host System
2.2.3 Installing the REDHAWK Software
2.2.4 Setting Up the User Environment
2.3 Configuring omniORB
2.3.1 Configuring omniORB for Distributed Systems
2.4 Configuring JacORB to Support the IDE
3 Components
3.1 Introduction
3.2 REDHAWK Core Assets
3.2.1 REDHAWK Basic Components
3.2.2 REDHAWK Basic Devices
3.2.3 REDHAWK Basic Waveforms
3.2.4 REDHAWK Shared Libraries
3.2.5 REDHAWK Device Dependencies
3.3 Creating a Component Project
3.3.1 Component Wizard
3.3.2 Component Descriptors
3.3.3 Ports
3.3.4 Properties
3.3.5 Logging
3.3.6 Generating Components
3.3.7 Installing Components
3.4 Creating Octave Components
3.4.1 Overview
3.4.2 The createOctaveComponent Script
3.4.3 Design Considerations
3.5 Running a Component
3.6 Sandbox
3.6.1 Python Sandbox
3.6.2 The IDE Sandbox
3.7 Creating and Running a Hello World Component
4 Component Structure
4.1 Introduction
4.2 Auto-Generated Component Files
4.2.1 Files Generated for All Components
4.2.2 Files Generated for C++ Components
4.2.3 Files Generated for Python Components
4.2.4 Files Generated for Java Components
4.3 Auto-Generated Component Methods
4.3.1 serviceFunction()
4.3.2 constructor()
4.4 Base Component Members
4.4.1 Ports
4.4.2 Properties
4.4.3 Domain Awareness
4.4.4 Network Interface
4.5 Component Implementations
4.6 Managing and Defining Properties
4.6.1 Property Change Listeners
4.6.2 Customizing Query and Configure
4.7 Creating a REDHAWK Shared Library Project
4.8 Including External Libraries
4.8.1 Adding a Library by Referencing a pkg-config File
4.8.2 Adding a Library Directly
5 Connections
5.1 Introduction
5.2 The Connection Process
5.3 Why Ports?
5.4 Port Access
5.5 Dynamic Connections
5.6 Standardized Data Interfaces
5.7 BulkIO
5.7.1 Data Transfers
5.7.2 Signal Related Information (SRI)
5.7.3 Stream API
5.7.4 Multi-out Ports
5.7.5 Working with Complex Data
5.7.6 Time Stamps
5.7.7 Port Statistics
5.7.8 Examples
5.8 BurstIO
5.8.1 Data Transfers
5.8.2 Burst Signal Related Information (SRI)
5.8.3 Multi-out Ports
5.8.4 Working with Complex Data
5.8.5 Time Stamps
5.8.6 Port Statistics
5.9 Messaging
5.9.1 Introduction
5.9.2 Message Producer
5.9.3 Message Consumer
5.9.4 Viewing Messages
5.9.5 Connecting Producers and Consumers
6 Waveforms
6.1 Waveform Editor
6.1.1 Overview Tab
6.1.2 Diagram Tab
6.1.3 SAD File Tab
6.2 Create and Deploy a Sample Waveform
6.2.1 Create a Sample Waveform
6.2.2 Export the Waveform
6.2.3 Run the Waveform on the Runtime Environment
6.3 Waveform Deployment and Computing Resources
6.3.1 GPP Device
6.3.2 Monitoring Computing Resources
6.3.3 Capacity Reservation
7 Working with Devices
7.1 Using Devices to Interact with Hardware
7.1.1 Creating an FEI Device in the IDE
7.1.2 Interacting with an FEI Device with the Python Package
7.1.3 Using an FEI Device in a Domain
7.2 Associating a Waveform with an FEI Device
7.3 Using Devices to Run Components
7.4 Using Devices to Interface with FPGAs
7.5 Functions and Data Structures Provided by the FrontEnd Interfaces Library and Code Generators
7.6 Miscellaneous FrontEnd Tuner Library Implementation Details
8 Services
8.1 Introduction
8.2 Management
8.3 Files Defining a Service
8.4 Service API
8.5 Finding a Service
9 Nodes
9.1 Introduction
9.2 Running a Node
9.2.1 Exploring the Running Node
9.2.2 Creating a Component that Consumes Resources
9.2.3 Create a Waveform for the New Component
9.2.4 Observe the Effect of Launching the Component
9.2.5 Creating a New Node
9.3 Distributed Computing and RF Devices
9.3.1 Dependencies
9.3.2 Allocation Properties
9.3.3 Allocation Usage
10 Sandbox
10.1 Introduction
10.2 Python Sandbox
10.2.1 Setup
10.2.2 Starting the Sandbox
10.2.3 Running the Sandbox
10.2.4 Working with Components, Devices, and Services
10.2.5 Devices
10.2.6 Example Sandbox Interaction
10.2.7 Built-in Sources and Sinks
10.2.8 Plotting Data
10.2.9 X/Y Plot
10.2.10 Miscellaneous
10.3 IDE Sandbox
10.3.1 Launching Components in the IDE Sandbox
10.3.2 Launching Devices in the IDE Sandbox
10.3.3 Launching Services in the IDE Sandbox
10.3.4 Launching Waveforms in the IDE Sandbox
11 The Runtime Environment
11.1 Overview
11.1.1 Launching a Domain
11.1.2 Shutting Down the Domain
11.2 The Domain Manager
11.2.1 Launching a Domain Manager from the command line
11.2.2 Registration
11.2.3 Core Framework Administration
11.2.4 Human Computer Interfacing
11.2.5 Persistence Store
11.3 File System
11.3.1 File Manager
11.4 Applications
11.4.1 Application Class
11.4.2 SAD File
11.4.3 Assembly Controller and Start Order
11.4.4 Host Collocation
11.4.5 External Ports
11.4.6 External Properties
11.4.7 Using the Find By Feature
11.4.8 usesdevice Relationship
11.5 The Application Factory
11.6 The Device Manager
11.6.1 Launching a Device Manager from the Command Line
11.6.2 DCD File
11.6.3 Nodes
11.6.4 Devices
11.7 The Allocation Manager
11.8 The Connection Manager
11.9 Events
11.9.1 Event Definition
11.9.2 Standard REDHAWK Events
11.9.3 Cleaning up the Event Service
11.9.4 Consuming Events
11.9.5 Writing Your Own Event Consumer
11.10 The Event Channel Manager
12 Runtime Environment Inspection
12.1 Introduction
12.2 REDHAWK Module
12.2.1 Attach
12.2.2 Starting a Domain from within a Python session
12.2.3 Domain State
12.2.4 Using With the Sandbox
13 Logging
13.1 Introduction
13.2 Configuring Logging Capabilities
13.2.1 Configuration Context Tokens
13.2.2 LOGGING_CONFIG_URI Resolution
13.2.3 Log Configuration Example - Simple Appender with a Named Logger
13.2.4 Log Configuration Example - Configuring a Component with Token Macros
13.2.5 Logging with Event Channels for Components, Devices and Services
13.3 Logging Within A Resource
13.3.1 C++
13.3.2 Java
13.3.3 Python
13.4 Adjusting Logging at Runtime
13.5 Viewing Logging Events
14 Using the REDHAWK IDE
14.1 Launching the REDHAWK IDE for the First Time
14.1.1 PyDev Overview
14.2 Configuring PyDev for REDHAWK Development
14.2.1 PyDev: Undefined variable or imports
14.3 The Workbench
14.3.1 Perspectives
14.3.2 The REDHAWK Perspective
14.3.3 Programming Language Specific Perspectives
14.4 Editors and Views
14.4.1 SoftPkg Editor
14.4.2 Waveform Editor
14.4.3 Node Editor
14.4.4 NeXtMidas Plot Editor
14.4.5 REDHAWK Explorer View
14.4.6 REDHAWK Plot View
14.4.7 Plot Settings Dialog
14.4.8 Event Viewer View
14.4.9 Data List and Statistics View
14.4.10 Port Monitor View
14.4.11 SRI View
14.4.12 Console View
14.4.13 Properties View
14.5 Creating REDHAWK Projects
14.5.1 REDHAWK Component Project
14.5.2 REDHAWK Control Panel Project
14.5.3 REDHAWK Device Project
14.5.4 REDHAWK Front End Device Project
14.5.5 REDHAWK IDL Project
14.5.6 REDHAWK Node Project
14.5.7 REDHAWK Octave Project
14.5.8 REDHAWK Service Project
14.5.9 REDHAWK Shared Library Project
14.5.10 REDHAWK Waveform Project
14.6 Adding/Changing/Removing REDHAWK Project Namespaces
14.7 Debugging REDHAWK Components and Devices with Eclipse
14.7.1 Running Unit Tests
14.7.2 Running a Component or Device from the REDHAWK Sandbox
14.7.3 Using the Debugger with the Sandbox
14.8 Deploying Projects to the SDRROOT
14.9 Snapshot Tool
14.10 Connect Wizard
14.11 Using the Octave Wizard
14.12 Plot Port Wizard
15 Sharing REDHAWK Projects With Others
15.1 REDHAWK Project Metadata Files
15.2 Exporting Projects as Source Code Archives
15.3 Importing Existing Projects
15.4 Importing Incomplete Projects
15.5 Collaborative REDHAWK Development Using a Version Control System
15.5.1 Managing Projects Outside of the Eclipse Workspace
15.6 Exporting Projects as a Deployable REDHAWK Project
16 Exploring SDRROOT Using the REDHAWK IDE
16.1 Browsing Installed SDR Objects
16.1.1 Components
16.1.2 Devices
16.1.3 Nodes
16.1.4 Services
16.1.5 Waveforms
16.2 Browsing Installed IDL Libraries
16.3 Getting Details About Error Conditions
17 Exploring a Running Domain Using the REDHAWK IDE
17.1 Connecting to a Domain
17.1.1 Launching and Connecting Using the IDE
17.1.2 Connecting to a Running Domain
17.2 Viewing the Contents of the Domain in the REDHAWK Explorer View
17.3 Working with Waveforms on a Running Domain
17.3.1 Launching a Waveform
17.3.2 Launching Additional Components into a Running Waveform
17.3.3 Stopping a Waveform
17.3.4 Releasing a Waveform
17.4 Plotting BulkIO Ports
17.5 Increasing the Bandwidth of BulkIO Connections
17.6 Displaying Port Statistics
17.7 Getting Details About Error Conditions
A REDHAWK Yum Repository and Packages
A.1 REDHAWK Yum Repository
A.1.1 REDHAWK Yum Groups
A.1.2 Dependencies Packaged with REDHAWK
A.2 Selective Installation
B External Dependencies
B.1 Installing the EPEL Repository
B.1.1 From the Fedora Downloads Site
B.1.2 Standalone EPEL from REDHAWK
B.2 Runtime-only Dependencies
B.2.1 Dependencies for RHEL/CentOS 6
B.2.2 Dependencies for RHEL/CentOS 7
B.3 Dependencies for Development and Building from Source
B.3.1 Dependencies for RHEL/CentOS 6
B.3.2 Dependencies for RHEL/CentOS 7
C Installing a Stand-alone IDE
D Building and Installing REDHAWK from Source
D.1 Building the Framework
D.1.1 Installing Build Dependencies
D.1.2 Installing the Framework from Source
D.1.3 Configuring omniORB
E Optimization
E.1 Introduction
E.2 Configuring omniORB
E.3 Packet Transfer Size
E.4 Messaging Latency
F FrontEnd Interfaces
F.1 Introduction
F.1.1 Theory of Operations
F.1.2 FEI Terminology
F.1.3 Required Properties
F.2 Types of Tuners
F.2.1 RX Tuner
F.2.2 RX_DIGITIZER Tuner
F.2.3 CHANNELIZER Tuner
F.2.4 DDC Tuner
F.2.5 RX_DIGITIZER_CHANNELIZER Tuner
F.2.6 TX Tuner
F.3 Allocation
F.3.1 ID
F.3.2 Tuner Allocation Overview
F.3.3 Tuner Allocation Properties
F.3.4 Listener Allocation Properties
F.3.5 Tuner Deallocation
F.4 Command and Control
F.4.1 Tuner Control IDL
F.5 Data Flow
F.5.1 Multi-Output
F.5.2 SRI and Keywords
F.6 Status
F.6.1 Status Elements
F.7 RFSource Interface
G REDHAWK Persona Device Pattern
G.1 Introduction
G.1.1 Potential Benefits
G.2 Theory of Operation
G.2.1 The Programmable and Persona Roles
G.2.2 REDHAWK Devices
G.2.3 Associating Programmable/Persona Devices
G.2.4 Hardware-Accelerated Components
G.3 Code-Generation Support
G.4 Persona Pattern Development
G.4.1 Programmable Device Development
G.4.2 Persona Device Development
G.4.3 System Developers
G.5 When to Use the Persona Pattern
G.6 Sharing Hardware Driver/API
G.6.1 Option 1: Modifying the construct Method
G.6.2 Option 2: Defining a Programmable Device Interface
H Troubleshooting
H.1 Introduction
H.2 Performing a Hard Reset Using the cleanomni Script
H.3 Diagnosing Problems Using the rh_net_diag Script
H.4 Performing a Soft Reset of omniNames and omniEvents
H.5 Setting Omni Log Levels
H.6 Common Causes for omniNames Failure
H.6.1 IP Version 6 Conflicts
H.6.2 Invalid IP Addresses in /etc/hosts
I List of Acronyms
Glossary
List of Figures
List of Tables
1.1 Benefits of Using REDHAWK
1.2 What Systems May Benefit from Using REDHAWK?
1.3 Relationship to the SCA
1.4 Overview of this Document
2 Installation
2.1 Introduction
2.2 Installing REDHAWK from RPMs
2.2.1 Configuring the Host System to Install REDHAWK Extra Packages for Enterprise Linux (EPEL) Dependencies
2.2.2 Downloading and Configuring the REDHAWK Yum Repository on the Host System
2.2.3 Installing the REDHAWK Software
2.2.4 Setting Up the User Environment
2.3 Configuring omniORB
2.3.1 Configuring omniORB for Distributed Systems
2.4 Configuring JacORB to Support the IDE
3 Components
3.1 Introduction
3.2 REDHAWK Core Assets
3.2.1 REDHAWK Basic Components
3.2.2 REDHAWK Basic Devices
3.2.3 REDHAWK Basic Waveforms
3.2.4 REDHAWK Shared Libraries
3.2.5 REDHAWK Device Dependencies
3.3 Creating a Component Project
3.3.1 Component Wizard
3.3.2 Component Descriptors
3.3.3 Ports
3.3.4 Properties
3.3.5 Logging
3.3.6 Generating Components
3.3.7 Installing Components
3.4 Creating Octave Components
3.4.1 Overview
3.4.2 The createOctaveComponent Script
3.4.3 Design Considerations
3.5 Running a Component
3.6 Sandbox
3.6.1 Python Sandbox
3.6.2 The IDE Sandbox
3.7 Creating and Running a Hello World Component
4 Component Structure
4.1 Introduction
4.2 Auto-Generated Component Files
4.2.1 Files Generated for All Components
4.2.2 Files Generated for C++ Components
4.2.3 Files Generated for Python Components
4.2.4 Files Generated for Java Components
4.3 Auto-Generated Component Methods
4.3.1 serviceFunction()
4.3.2 constructor()
4.4 Base Component Members
4.4.1 Ports
4.4.2 Properties
4.4.3 Domain Awareness
4.4.4 Network Interface
4.5 Component Implementations
4.6 Managing and Defining Properties
4.6.1 Property Change Listeners
4.6.2 Customizing Query and Configure
4.7 Creating a REDHAWK Shared Library Project
4.8 Including External Libraries
4.8.1 Adding a Library by Referencing a pkg-config File
4.8.2 Adding a Library Directly
5 Connections
5.1 Introduction
5.2 The Connection Process
5.3 Why Ports?
5.4 Port Access
5.5 Dynamic Connections
5.6 Standardized Data Interfaces
5.7 BulkIO
5.7.1 Data Transfers
5.7.2 Signal Related Information (SRI)
5.7.3 Stream API
5.7.4 Multi-out Ports
5.7.5 Working with Complex Data
5.7.6 Time Stamps
5.7.7 Port Statistics
5.7.8 Examples
5.8 BurstIO
5.8.1 Data Transfers
5.8.2 Burst Signal Related Information (SRI)
5.8.3 Multi-out Ports
5.8.4 Working with Complex Data
5.8.5 Time Stamps
5.8.6 Port Statistics
5.9 Messaging
5.9.1 Introduction
5.9.2 Message Producer
5.9.3 Message Consumer
5.9.4 Viewing Messages
5.9.5 Connecting Producers and Consumers
6 Waveforms
6.1 Waveform Editor
6.1.1 Overview Tab
6.1.2 Diagram Tab
6.1.3 SAD File Tab
6.2 Create and Deploy a Sample Waveform
6.2.1 Create a Sample Waveform
6.2.2 Export the Waveform
6.2.3 Run the Waveform on the Runtime Environment
6.3 Waveform Deployment and Computing Resources
6.3.1 GPP Device
6.3.2 Monitoring Computing Resources
6.3.3 Capacity Reservation
7 Working with Devices
7.1 Using Devices to Interact with Hardware
7.1.1 Creating an FEI Device in the IDE
7.1.2 Interacting with an FEI Device with the Python Package
7.1.3 Using an FEI Device in a Domain
7.2 Associating a Waveform with an FEI Device
7.3 Using Devices to Run Components
7.4 Using Devices to Interface with FPGAs
7.5 Functions and Data Structures Provided by the FrontEnd Interfaces Library and Code Generators
7.6 Miscellaneous FrontEnd Tuner Library Implementation Details
8 Services
8.1 Introduction
8.2 Management
8.3 Files Defining a Service
8.4 Service API
8.5 Finding a Service
9 Nodes
9.1 Introduction
9.2 Running a Node
9.2.1 Exploring the Running Node
9.2.2 Creating a Component that Consumes Resources
9.2.3 Create a Waveform for the New Component
9.2.4 Observe the Effect of Launching the Component
9.2.5 Creating a New Node
9.3 Distributed Computing and RF Devices
9.3.1 Dependencies
9.3.2 Allocation Properties
9.3.3 Allocation Usage
10 Sandbox
10.1 Introduction
10.2 Python Sandbox
10.2.1 Setup
10.2.2 Starting the Sandbox
10.2.3 Running the Sandbox
10.2.4 Working with Components, Devices, and Services
10.2.5 Devices
10.2.6 Example Sandbox Interaction
10.2.7 Built-in Sources and Sinks
10.2.8 Plotting Data
10.2.9 X/Y Plot
10.2.10 Miscellaneous
10.3 IDE Sandbox
10.3.1 Launching Components in the IDE Sandbox
10.3.2 Launching Devices in the IDE Sandbox
10.3.3 Launching Services in the IDE Sandbox
10.3.4 Launching Waveforms in the IDE Sandbox
11 The Runtime Environment
11.1 Overview
11.1.1 Launching a Domain
11.1.2 Shutting Down the Domain
11.2 The Domain Manager
11.2.1 Launching a Domain Manager from the command line
11.2.2 Registration
11.2.3 Core Framework Administration
11.2.4 Human Computer Interfacing
11.2.5 Persistence Store
11.3 File System
11.3.1 File Manager
11.4 Applications
11.4.1 Application Class
11.4.2 SAD File
11.4.3 Assembly Controller and Start Order
11.4.4 Host Collocation
11.4.5 External Ports
11.4.6 External Properties
11.4.7 Using the Find By Feature
11.4.8 usesdevice Relationship
11.5 The Application Factory
11.6 The Device Manager
11.6.1 Launching a Device Manager from the Command Line
11.6.2 DCD File
11.6.3 Nodes
11.6.4 Devices
11.7 The Allocation Manager
11.8 The Connection Manager
11.9 Events
11.9.1 Event Definition
11.9.2 Standard REDHAWK Events
11.9.3 Cleaning up the Event Service
11.9.4 Consuming Events
11.9.5 Writing Your Own Event Consumer
11.10 The Event Channel Manager
12 Runtime Environment Inspection
12.1 Introduction
12.2 REDHAWK Module
12.2.1 Attach
12.2.2 Starting a Domain from within a Python session
12.2.3 Domain State
12.2.4 Using With the Sandbox
13 Logging
13.1 Introduction
13.2 Configuring Logging Capabilities
13.2.1 Configuration Context Tokens
13.2.2 LOGGING_CONFIG_URI Resolution
13.2.3 Log Configuration Example - Simple Appender with a Named Logger
13.2.4 Log Configuration Example - Configuring a Component with Token Macros
13.2.5 Logging with Event Channels for Components, Devices and Services
13.3 Logging Within A Resource
13.3.1 C++
13.3.2 Java
13.3.3 Python
13.4 Adjusting Logging at Runtime
13.5 Viewing Logging Events
14 Using the REDHAWK IDE
14.1 Launching the REDHAWK IDE for the First Time
14.1.1 PyDev Overview
14.2 Configuring PyDev for REDHAWK Development
14.2.1 PyDev: Undefined variable or imports
14.3 The Workbench
14.3.1 Perspectives
14.3.2 The REDHAWK Perspective
14.3.3 Programming Language Specific Perspectives
14.4 Editors and Views
14.4.1 SoftPkg Editor
14.4.2 Waveform Editor
14.4.3 Node Editor
14.4.4 NeXtMidas Plot Editor
14.4.5 REDHAWK Explorer View
14.4.6 REDHAWK Plot View
14.4.7 Plot Settings Dialog
14.4.8 Event Viewer View
14.4.9 Data List and Statistics View
14.4.10 Port Monitor View
14.4.11 SRI View
14.4.12 Console View
14.4.13 Properties View
14.5 Creating REDHAWK Projects
14.5.1 REDHAWK Component Project
14.5.2 REDHAWK Control Panel Project
14.5.3 REDHAWK Device Project
14.5.4 REDHAWK Front End Device Project
14.5.5 REDHAWK IDL Project
14.5.6 REDHAWK Node Project
14.5.7 REDHAWK Octave Project
14.5.8 REDHAWK Service Project
14.5.9 REDHAWK Shared Library Project
14.5.10 REDHAWK Waveform Project
14.6 Adding/Changing/Removing REDHAWK Project Namespaces
14.7 Debugging REDHAWK Components and Devices with Eclipse
14.7.1 Running Unit Tests
14.7.2 Running a Component or Device from the REDHAWK Sandbox
14.7.3 Using the Debugger with the Sandbox
14.8 Deploying Projects to the SDRROOT
14.9 Snapshot Tool
14.10 Connect Wizard
14.11 Using the Octave Wizard
14.12 Plot Port Wizard
15 Sharing REDHAWK Projects With Others
15.1 REDHAWK Project Metadata Files
15.2 Exporting Projects as Source Code Archives
15.3 Importing Existing Projects
15.4 Importing Incomplete Projects
15.5 Collaborative REDHAWK Development Using a Version Control System
15.5.1 Managing Projects Outside of the Eclipse Workspace
15.6 Exporting Projects as a Deployable REDHAWK Project
16 Exploring SDRROOT Using the REDHAWK IDE
16.1 Browsing Installed SDR Objects
16.1.1 Components
16.1.2 Devices
16.1.3 Nodes
16.1.4 Services
16.1.5 Waveforms
16.2 Browsing Installed IDL Libraries
16.3 Getting Details About Error Conditions
17 Exploring a Running Domain Using the REDHAWK IDE
17.1 Connecting to a Domain
17.1.1 Launching and Connecting Using the IDE
17.1.2 Connecting to a Running Domain
17.2 Viewing the Contents of the Domain in the REDHAWK Explorer View
17.3 Working with Waveforms on a Running Domain
17.3.1 Launching a Waveform
17.3.2 Launching Additional Components into a Running Waveform
17.3.3 Stopping a Waveform
17.3.4 Releasing a Waveform
17.4 Plotting BulkIO Ports
17.5 Increasing the Bandwidth of BulkIO Connections
17.6 Displaying Port Statistics
17.7 Getting Details About Error Conditions
A REDHAWK Yum Repository and Packages
A.1 REDHAWK Yum Repository
A.1.1 REDHAWK Yum Groups
A.1.2 Dependencies Packaged with REDHAWK
A.2 Selective Installation
B External Dependencies
B.1 Installing the EPEL Repository
B.1.1 From the Fedora Downloads Site
B.1.2 Standalone EPEL from REDHAWK
B.2 Runtime-only Dependencies
B.2.1 Dependencies for RHEL/CentOS 6
B.2.2 Dependencies for RHEL/CentOS 7
B.3 Dependencies for Development and Building from Source
B.3.1 Dependencies for RHEL/CentOS 6
B.3.2 Dependencies for RHEL/CentOS 7
C Installing a Stand-alone IDE
D Building and Installing REDHAWK from Source
D.1 Building the Framework
D.1.1 Installing Build Dependencies
D.1.2 Installing the Framework from Source
D.1.3 Configuring omniORB
E Optimization
E.1 Introduction
E.2 Configuring omniORB
E.3 Packet Transfer Size
E.4 Messaging Latency
F FrontEnd Interfaces
F.1 Introduction
F.1.1 Theory of Operations
F.1.2 FEI Terminology
F.1.3 Required Properties
F.2 Types of Tuners
F.2.1 RX Tuner
F.2.2 RX_DIGITIZER Tuner
F.2.3 CHANNELIZER Tuner
F.2.4 DDC Tuner
F.2.5 RX_DIGITIZER_CHANNELIZER Tuner
F.2.6 TX Tuner
F.3 Allocation
F.3.1 ID
F.3.2 Tuner Allocation Overview
F.3.3 Tuner Allocation Properties
F.3.4 Listener Allocation Properties
F.3.5 Tuner Deallocation
F.4 Command and Control
F.4.1 Tuner Control IDL
F.5 Data Flow
F.5.1 Multi-Output
F.5.2 SRI and Keywords
F.6 Status
F.6.1 Status Elements
F.7 RFSource Interface
G REDHAWK Persona Device Pattern
G.1 Introduction
G.1.1 Potential Benefits
G.2 Theory of Operation
G.2.1 The Programmable and Persona Roles
G.2.2 REDHAWK Devices
G.2.3 Associating Programmable/Persona Devices
G.2.4 Hardware-Accelerated Components
G.3 Code-Generation Support
G.4 Persona Pattern Development
G.4.1 Programmable Device Development
G.4.2 Persona Device Development
G.4.3 System Developers
G.5 When to Use the Persona Pattern
G.6 Sharing Hardware Driver/API
G.6.1 Option 1: Modifying the construct Method
G.6.2 Option 2: Defining a Programmable Device Interface
H Troubleshooting
H.1 Introduction
H.2 Performing a Hard Reset Using the cleanomni Script
H.3 Diagnosing Problems Using the rh_net_diag Script
H.4 Performing a Soft Reset of omniNames and omniEvents
H.5 Setting Omni Log Levels
H.6 Common Causes for omniNames Failure
H.6.1 IP Version 6 Conflicts
H.6.2 Invalid IP Addresses in /etc/hosts
I List of Acronyms
Glossary
List of Figures
List of Tables

REDHAWK Documentation is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.