User Tools

Site Tools




Chapter 9 of IRIG 106 defines the Telemetry Attributes Transfer Standard (TMATS). Historically, TMATS has been used as a shorthand way of documenting and describing recorded data to facilitate future data interpretation and reduction. In the context of Chapter 10, TMATS is still used to document recorded data, but is also used for recorder setup and configuration.

The TMATS text is designed to be user friendly and it is also structured to be machine parsable. Each attribute appears in the TMATS file as a unique code name and data item pair. The code name appears first, delimited by a colon. The data item follows, delimited by a semicolon. Therefore, an attribute has the form:


Note: Although not required, lines may be terminated with a carriage return and line feed to improve readability.

TMATS attributes are logically arranged in a hierarchical tree structure. Figure 9-1 in the IRIG 106 Chapter 9 standard shows this attribute tree structure. Unlike other markup languages, such as Extensible Markup Language (XML), the structure of the attribute tree is not inherent in the position, structure, or syntax of individual TMATS lines. Instead, the hierarchical connections are deduced by matching attribute names from different tree levels. For example, TMATS R attributes are linked to the corresponding TMATS G attribute by matching the R-m\ID attribute such as R-1\ID:MyDataSource; with the corresponding G\DSI-n attribute such as G\DSI-1:MyDataSource;. An example of a portion of a TMATS attribute tree is shown below. Chapter 9 defines the specific linking fields for the various levels of the TMATS attribute tree.

Example TMATS attribute tree

Attribute lines can be easily parsed using the string tokenizer function strtok() in the C run time library. An example approach outline for TMATS parsing is shown in the code example below. The TMATS attribute line is stored in the null terminated character array szLine[]. The code name string is pointed to by szCodeName and the data item value is pointed to by szDataItem. Specific parsers are called for specific attribute types, indicated by the first letter of the code name. After all TMATS attributes are read, they are linked into a hierarchical tree. A more complete example of TMATS parsing is presented in Appendix C.

char szLine[2048]; 
char * szCodeName; 
char * szDataItem; 
// Split the line into left hand and right hand sides 
szCodeName = strtok(szLine, ":"); 
szDataItem = strtok(NULL, ";"); 
// Determine and decode different TMATS types 
switch (szCodeName[0]) 
    case 'G' : // Decode General Information 
    case 'B' : // Decode Bus Data Attributes 
    case 'R' : // Decode Tape/Storage Source Attributes 
    case 'T' : // Decode Transmission Attributes 
    case 'M' : // Decode Multiplexing/Modulation Attributes 
    case 'P' : // Decode PCM Format Attributes 
    case 'D' : // Decode PCM Measurement Description 
    case 'S' : // Decode Packet Format Attributes 
    case 'A' : // Decode PAM Attributes 
    case 'C' : // Decode Data Conversion Attributes 
    case 'H' : // Decode Airborne Hardware Attributes 
    case 'V' : // Decode Vendor Specific Attributes 
    default : 
    } // end decoding switch 
// Now link the various records together into a tree 

TMATS attribute parser example code.

The two basic types of attribute code names are single entry and multiple entry. Single entry attributes are those for which there is only one data item and appear once in TMATS. For example:


Multiple entry attributes may appear multiple times. They are distinguished by a numeric identifier preceded by a hyphen. For example:


Some attributes can appear multiple times at multiple levels. For example, the Message Data Sub-Channel Name attribute R-x\MCNM-n-m may appear associated with multiple recorder groups (“x”), multiple message data channels (“n”), and with multiple subchannels (“m”).

Chapter 9 of IRIG 106 identifies quite a few required Recorder TMATS attributes. These attributes are necessary to ensure correct recorder setup, and subsequent data interoperability. For correct TMATS parsing and interpretation, an important required attribute is the G\106 attribute. This attribute identifies the version of IRIG 106 to use when interpreting the TMATS information. This attribute only identifies the TMATS version. The Chapter 10 standard version is specified in the TMATS setup record in the recorded data file described in Paragraph 6.5.2 of this document.

Chapter 9 states that attributes may appear in any order. Chapter 10, however, requires some specific TMATS comment attributes follow other specific modified TMATS attributes for modified data files. This requirement complicates TMATS machine parsing considerably. When reading and decoding TMATS, a parser must maintain the most recent recorder data channel state so that when a comment attribute is encountered, it can be associated with the correct recorder channel. When writing TMATS, the appropriate comments must follow the appropriate attribute records. See Chapter 10 for specific TMATS attribute position and order requirements.

ch10_handbook/recorder_setup_and_configuration.txt · Last modified: 2014/05/29 14:34 by bob

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki