The Telemetry Group (TG) of the Range Commanders Council (RCC) developed the Inter-range Instrumentation Group (IRIG) 106 standard for test range telemetry (TM). The primary purpose of the IRIG 106, published as RCC Document 106, Telemetry Standard, is to define a common framework for test range instrumentation to ensure test range interoperability. The RCC periodically revises and reissues IRIG 106. A specific version of IRIG 106 is suffixed with the last two digits of the year it was released. For example, IRIG 106-07 refers to the version of IRIG 106 released in 2007.
The IRIG 106 is composed of ten chapters, each devoted to a different element of the telemetry system or process. One of the major topics of the IRIG 106 standard is Chapter 10, the Digital Recording Standard. Chapter 10 defines the interfaces and operational requirements for digital data recording devices. Chapter 10 also references elements of Chapter 6 (Digital Cassette Helical Scan Recorder/Reproducer, Multiplexer/Demultiplexer, Tape Cassette, and Recorder Control and Command Mnemonics Standards) and Chapter 9 (Telemetry Attributes Transfer Standard).
Chapter 10 is comprehensive in its scope. The purpose of this programming handbook is to serve as an adjunct to the IRIG 106 standard to assist the computer programmer when writing software for operating IRIG 106 Chapter 10 standard digital recorders, and when analyzing data from these recorders. A prior working knowledge of Chapter 9, Chapter 10, and applicable sections of Chapter 6, is essential.
This programming handbook addresses specific topics of Chapter 6, Chapter 9, and Chapter 10 of IRIG 106 which are important to the programmer. Algorithms and data structures are presented to assist the programmer in correctly interpreting IRIG 106 and implementing software for use with digital data recorders. In particular, data structures are defined in American National Standards Institute (ANSI) C for data defined in IRIG 106.
In the sections that follow, example computer source code and data structures are presented. All computer code is written in ANSI C. Occasionally, C-like pseudo-code is used to demonstrate an algorithm more succinctly than strictly “legal” C. These instances will be obvious from the context.
Different programming languages have different default sized variables. Even different compilers for a single language like C will have different variable sizes. Many variables and structures need to be represented with specific sized variables. This document, with the source code that accompanies it, defines standard sized variable types. The variable type naming convention used is the same convention used in later versions of the GNU Compiler Collection (GCC) C run-time library. The variable type names used are shown in the table below.
|STANDARD SIZED VARIABLE TYPES|
|int8_t||integer, signed, 8 bit|
|int16_t||integer, signed, 16 bit|
|int32_t||integer, signed, 32 bit|
|int64_t||integer, signed, 64 bit|
|uint8_t||integer, unsigned, 8 bit|
|uint16_t||integer, unsigned, 16 bit|
|uint32_t||integer, unsigned, 32 bit|
|uint64_t||integer, unsigned, 64 bit|
Hungarian notation is used for variable and structure naming to help keep variable type and meaning clear. The Hungarian prefixes used in the example code are shown in the table below.
|HUNGARIAN NOTATION PREFIXES|
|sz||Null terminated array of char|
|m_||Variable with module scope|
|g_||Variable with global scope|