Lunar Reconnaissance Orbiter

Lunar Orbiter Laser Altimeter

Experiment Data Record

Software Interface Specification










Version 2.42

March 31, 2011

SIGNATURE PAGE

Prepared by:



_________

Gregory A. Neumann Date

LOLA Instrument co-Investigator

GSFC Code 698



Reviewed by:



_________

David E. Smith Date

Principal Investigator, LOLA Instrument

GSFC Code 690.5





Approved by:



_________

Stan Scott Date

LRO Project Science Data Manager

GSFC Code 451



Concurred by:



_________

Susan Slavney Date

PDS Geosciences Discipline Node





_________

Ed Grayzek, PDS Program Manager Date


TABLE OF CONTENTS


1. Introduction 1

1.1. Purpose and Scope 1

1.2. Contents 1

1.3. Applicable Documents and Constraints 2

1.4. Relationships with Other Interfaces 2

2. Data Product Characteristics and Environment 3

2.1. Instrument Overview 3

2.2. Data Product Overview 6

2.3. Data Processing 7

2.3.1. Data Processing Levels 7

2.3.2. Data Product Generation 8

2.3.3. Data Flow 8

2.3.4. Labeling and Identification 8

2.4. Standards Used in Generating Data Products 9

2.4.1. PDS Standards 9

2.4.2. Time Standards 9

2.4.3. Coordinate Systems 9

2.4.4. Data Storage Conventions 9

2.5. Data Validation 10

3. Detailed Data Product Specifications 10

3.1. Data Product Structure and Organization 10

3.2. Data Format Descriptions 10

3.3. Label and Header Descriptions 10

4. Applicable Software 11

4.1. Utility Programs 11

4.2. Applicable PDS Software Tools 11

4.3. Software Distribution and Update Procedures 12

5. Appendices 12

5.1. Contents of the LOLAEDR.FMT file 12

5.2. Contents of the LOLAHKCT.FMT file 40

5.3. Contents of the LOLASCCT.FMT file 42



TABLES AND FIGURES



Table 1: Processing Levels for Science Data Sets. 1

Figure 1: LOLA Optical Transceiver Assembly. 4

Table 2: LOLA Instrument Technical Details. 5

Table 3: Instrument Modes. 6

Table 4: Standard Product Sizes and Delivery Rates 7

DOCUMENT CHANGE LOG


Sections

Date

Changes

2.4.3, 3.1

12/24/07

Add Lunar Data Working Group and Lunar Geodesy and Cartography Working Group acronyms

3.3, Appendix 5.1

2/14/08

Update sample LBL and FMT files

Version 1.2

2/22/08

Incorporate reviewer comments, update acronym list with HK and LR, remove unused acronyms

Section 2.3.4 Labeling and Identification

2/22/08

Telemetry and EDR filenames clarified

Section 2.2, par. 3, and Table 3.

3/11/08

Clarify orbit numbering, product size

Section 3.1

3/18/08

Clarify monthly cycle, product name

Appendix 5.1

3/21/08

Fix typos, #columns = 1563

Section 3.3

4/30/08

STANDARD_DATA_PRODUCT_ID changed to “LOLAEDR”

Appendix 5.2, 5.3

5/06/08

Update TBD items

Appendices

8/05/08

Update timing information

Section 4

8/22/08

Add utility program edr2csv

Section 2.1

9/22/08

Revise shot figure

Appendices

10/26/08

Update telemetry descriptions

1.3

10/26/08

Update versions of applicable documents

2.1

4/28/09

Revise Figure 1 based on Post-ship survey

2.2

6/28/09

Correct Phase_AB description

2.3

7/28/09

Revise product rate/size table

2.4

8/28/09

Revise Figure 1 again based on correction

All

03/31/11

Updated to present/past tense, some corrections


ITEMS To be determined


Section

Description

Resolution Date

Appendix 5.1 - LOLAEDR.FMT

Telemetry point descriptions are complete based on commissioning activities.

Mapping orbit + 1 month





ACRONYMS AND ABBREVIATIONS

ASCII

American Standard Code for Information Interchange

CODMAC

Committee on Data Management and Computation

DVD-ROM

Digital Video Disk - Read-Only Memory

EDR

Experiment Data Record

FSW

Flight Software

GDR

Gridded Data Record

GSFC

Goddard Space Flight Center

HK

Housekeeping

ICD

Interface Control Document

ISO

International Standards Organization

JPL

Jet Propulsion Laboratory

LGCWG

Lunar Geodesy and Cartography Working Group

LOLA

Lunar Orbiter Laser Altimeter

LR

Laser Ranging

LRO

Lunar Reconnaissance Orbiter

LSB

Least Significant Byte

MOC

LRO Mission Operations Center, B32, NASA-GSFC

MSB

Most Significant Byte

NASA

National Aeronautics and Space Administration

NAIF

Navigation and Ancillary Information Facility Node of PDS

NSSDC

National Space Science Data Center

PDS

Planetary Data System

RDR

Reduced Data Record

S/C

Spacecraft

SHADR

Spherical Harmonic Analysis Data Record

SIS

Software Interface Specification

SOC

Science Operations Center

TBD

To Be Determined

TEC

Thermoelectric Cooler

GLOSSARY


Archive – An archive consists of one or more data sets along with all the documentation and ancillary information needed to understand and use the data. An archive is a logical construct independent of the medium on which it is stored.

Archive Volume, Archive Volume Set – A volume is a unit of media on which data products are stored; for example, one ISO 9660 CD-ROM or DVD-ROM (applicable document #3). An archive volume is a volume containing all or part of an archive; that is, data products plus documentation and ancillary files. When an archive spans multiple volumes, they are called an archive volume set. Usually the documentation and some ancillary files are repeated on each volume of the set, so that a single volume can be used alone.

Catalog Information – Descriptive information about a data set (e.g. mission description, spacecraft description, instrument description), expressed in Object Description Language (ODL) which is suitable for loading into a PDS catalog.

Data Product – A labeled grouping of data resulting from a scientific observation, usually stored in one file. A product label identifies, describes, and defines the structure of the data. An example of a data product is a planetary image, a spectrum table, or a time series table.

Data Set – An accumulation of data products. A data set together with supporting documentation and ancillary files is an archive.

KiloByte, MegaByte, GigaByte – A unit of storage denoting a power of 1000 octets.

Profile – A time-ordered set of altimetry and allied data.

Standard Data Product – A data product generated in a predefined way using well-understood procedures, processed in "pipeline" fashion. Data products that are generated in a nonstandard way are sometimes called special data products.


1.Introduction

1.1.Purpose and Scope

The purpose of this Software Interface Specification document is to provide users of the Lunar Reconnaissance Orbiter (LRO) Lunar Orbiter Laser Altimeter (LOLA) Experiment Data Record (EDR) data product (CODMAC Level 2) with a detailed description of the product and a description of how it was generated, including data sources and destinations. Table 1 gives descriptions of product levels. The document is intended to provide enough information to enable users to read and understand the format and content of the LOLA Archive. Typically, these individuals would be software engineers, data analysts, or planetary scientists. The specifications in this document apply to all LOLA standard product archive volumes that are generated by the LRO Project. The EDR data product contains the LOLA housekeeping and measurement data in raw telemetry form.


Table 1: Processing Levels for Science Data Sets.

NASA

CODMAC

Description

Packet data

Raw – Level 1

Telemetry data stream as received at the ground station, with science and engineering data embedded.

Level 0

Edited – Level 2

Instrument science data (e.g., raw voltages, counts) at full resolution, time ordered, with duplicates and transmission errors removed.

Level 1A

Calibrated - Level 3

Level 0 data that have been located in space and may have been transformed (e.g., calibrated, rearranged) in a reversible manner and packaged with needed ancillary and auxiliary data (e.g., radiances with the calibration equations applied).

Level 1B

Resampled - Level 4

Irreversibly transformed (e.g., resampled, remapped, calibrated) values of the instrument measurements (e.g., radiances, magnetic field strength).

Level 2

Derived - Level 5

Geophysical parameters, generally derived from Level 1 data, and located in space and time commensurate with instrument location, pointing, and sampling.

Level 3

Derived - Level 5

Geophysical parameters mapped onto uniform space-time grids.


1.2.Contents

This section describes the contents of the LOLA EDR Archive Volume, including the file names, file contents, file types, and organizations responsible for providing the files. This Data Product SIS describes how the EDR data product is acquired by the LOLA instrument, and how it is processed, formatted, labeled, and uniquely identified. The document discusses standards used in generating the product and software that may be used to access the product. The data product structure and organization is described in sufficient detail to enable a user to read the product. Finally, an example of a PDS compliantproduct label is provided.


1.3.Applicable Documents and Constraints

This EDR SIS is intended to be consistent with the following documents:

  1. Planetary Science Data Dictionary Document, JPL D-7116, Rev. E, August 28, 2002.

  2. Lunar Reconnaissance Orbiter Project Data Management and Archive Plan, 431-PLAN-00182.

  3. ISO 9660-1988, Information Processing - Volume and File Structure of CD-ROM for Information Exchange, April 15, 1988.

  4. Planetary Data System Archive Preparation Guide, August 29, 2006, Version 1.1, JPL D-31224.

  5. Planetary Data System Standards Reference, March 20, 2006, Version 3.7, JPL D-7669, Part 2.

  6. LRO LOLA Science Team and PDS Geosciences Node ICD, October 9, 2006.

  7. Lunar Reconnaissance Orbiter Project LOLA Instrument Team Data Management and Archive Plan, April 1, 2007.

  8. LOLA Archive Volume Software Interface Specification, v 2.5, March 15, 2011.

  9. Memorandum of Agreement between the PDS Geosciences Node and the LRO LOLA Data Node, Washington University, St. Louis, Missouri, and the LRO LOLA Instrument Team, Goddard Space Flight Center, Greenbelt, Maryland, October 27, 2006.

  10. A Standardized Lunar Coordinate System for the Lunar Reconnaissance Orbiter, LRO Project White Paper, 451-SCI-000958, Version 3, January 30, 2008.

  11. Lunar Reconnaissance Orbiter Lunar Orbiter Laser Altimeter Reduced Data Record Software Interface Specification (LOLA RDRSIS), V.2.42, February 28, 2010.

1.4.Relationships with Other Interfaces

The EDR products described in this SIS are used in the production of other archived products of the LRO mission, so that changes to their content and format may result in an interface impact. In particular the RDR SIS (Applicable Document #11) could be affected by changes to the design of the LOLA EDR standard data product. Depending on mission phase and orbit, the frequency of generating daily products can change. No flight software changes have taken place or are envisioned that might affect the design of the EDR.

2.Data Product Characteristics and Environment

2.1.Instrument Overview

The LOLA instrument was designed, assembled and tested at the NASA Goddard Space Flight Center (GSFC). LOLA has two primary objectives. It is the process of collecting data that has allowed the LOLA SOC to produce high-resolution global topographic models and geodetic frameworks that will assist with precise targeting, safe landing, and surface mobility for future scientific and exploration activities. LOLA has allowed us to characterize the polar illumination environment and image the Moon’s permanently-shadowed regions (PSRs) to identify possible locations of surface ice crystals in shadowed polar craters. To achieve these primary objectives, LOLA makes three measurements:

1) the distance between the surface and the spacecraft,

2) the spreading of the returned laser pulse, and

3) the transmitted and returned laser energies.

LOLA is a pulse detection time-of-flight altimeter that incorporates a five-spot pattern that measures the precise distance to the lunar surface at 5 spots simultaneously, thus providing 5 profiles across the lunar surface (Figure 1). LOLA fires at a fixed, 28-Hz rate, so that for a nominal 1600 m/s ground track speed there is one shot approximately every 57 m. At a nominal 50-km altitude, each spot within the five-spot pattern has a diameter of 5 m while each detector field of view has a diameter of 20 m; the spots are 25 meters apart, and form a cross pattern canted by 26 degrees counterclockwise to provide five adjacent profiles.

Figure 1. LOLA ground spot pattern sample of four successive shots, with channels numbered. Spacecraft may fly in either +X or -X direction.

The 5-spot pattern determines the surface slope in the along-track and across track directions. LOLA’s instrument design is similar to the designs of the Mars Orbiter Laser Altimeter and the Mercury Laser Altimeter, augmented by a novel diffractive optic element (DOE). LOLA has five beams, five independent detectors, coupled via fiber optics to the receiver telescope, and five receiver channels (1-5). Channel 1 is also fiber-optic-coupled through a dichroic beamsplitter to a Laser Ranging (LR) telescope mounted on the High-Gain Antenna. Unlike the previous planetary altimeters, no matched bandpass filters are applied to the detector output prior to the threshold discriminators, but an R-C filter with a decay time constant of 3.4 ns is employed for noise suppression.

Figure 2: LOLA Optical Transceiver Assembly.



Because LOLA makes global observations, the LOLA altimetry data is used to improve the spacecraft orbit and our knowledge of far side lunar gravity – which hs been extremely poorly known but is required for precise landing and low-altitude navigation. Timing of one-way pulses fired from Earth to the LR will also be employed to improve navigation and gravity determination. The LOLA instrument is a pulsed laser time-of-flight altimeter, operating continuously during mapping orbit to produce altimetric ranges that are stored on the LRO S/C for playback. Its housekeeping data are also provided in a realtime data stream and contain information regarding the flight software status and the Laser Ranging signals from Earth stations. The housekeeping and science data comprise a single record each second that forms the EDR.

The instrument hardware consists of transmitter, receiver, and passive radiator subsystems mounted in an Optical Transceiver Assembly (Figure 1), together with a Power Converter Assembly and Digital Unit mounted in the Main Electronics Box. There are two redundant lasers coupled to the transmit optics, selectable by software command. Transmit and receive pulses are measured with independent leading and trailing edge times using ACAM TDC-S1 chips designed for space docking applications, offset by a 5 MHz coarse count. Energy is monitored via a gated charge-time measurement circuit with digitizer. The instrument is co-boresighted with the LRO Cameras on the spacecraft +Z optical bench. The main technical details regarding the instrument are given in Table 2.

Table 2: LOLA Instrument Technical Details.

Variable

Value

Notes

Mass

11.7 kg

at launch

Power

30 W

at launch

Data rate

27 kbps

3424 Bytes, 1 packet per second

Lasers

2 (1 cold spare)

Cr:Nd:YAG cross-Porro resonator, TEM00, TEC cooled

Wavelength

1064.3 ± 0.1 nm


Diode bars

2

60 A, 140-160 μs pump, with passive Cr4+:YAG Q-switch

Pulses

28 Hz, 2.7±0.3 mJ

6 ns FWHM

Thermal

passive radiator

Laser operating range: 5°C to 35°C

Detectors

5 Si-APDs

preamp bandwidth 100 Mhz, followed by R-C 3.4 ns filter

Quantum Eff.

0.4

@1064 nm

Det. noise

0.05 pW/Hz1/2

Noise equivalent power

Optics

Receiver

Transmitter after 18x Beam Expander and DOE

Objective

Sapphire

BK7G18/fused silica DOE

Diameter (cm)

14 cm

3.24 cm

Area

0.015 m2

8.245 cm2

Transmission

>70%

>95%

E. F. L. (cm)

50.0

16.2

F.O.V. 1/e2

400 μrad

100 μrad, separation between adjacent beams is 500 μrad

Fiber Optic

200 μm, 0.22NA

LR is a 7x400um core, 0.22NA, step-index, 1.28mm bundle

Bandpass filter (FWHM)

dichroic beamsplitter

Δλ=0.7nm, λ=1064.45 nm; LR λ =532.15 nm, Δλ= 0.3 nm


Instrument modes (Table 3) are controlled by ground command. The digital unit outputs data directly to the S/C over the 1553 bus, even if the flight software is commanded to a reset state. Thresholds, gains, and range gates are normally controlled by the FSW algorithm. The algorithm seeks to maximize the probability of detection under varying background noise conditions, by utilizing hardware noise counters in a fashion similar to that employed on the MOLA and MLA instruments. A variable range gate setting allows only triggers during the window of time that returns are expected from the surface, according to the FSW return histograms. To accommodate the large dynamic range of lunar return strength, a variable gain amplifier is implemented in hardware prior to the discriminator input. The gain is set according to tables of gain vs. lunar range, one for each detector. Earth laser ranges are recorded by detector 1 during the 8 ms preceding each laser fire, using the same threshold and gain settings as for lunar ranges. Owing to higher background Earth counts, especially during New Moon phases, the detector 1 thresholds are generally higher than those of the detector 2-5 channels.


Table 3: Instrument Modes.

MODE

TELEMETRY

LASER

DETECTOR

Measurement

Housekeeping (HK), Science

Firing enabled, 28Hz trigger

Active-LR+lunar return

Standby 2

HK, Science

Firing enabled, cap. charged

Active-LR and noise

Standby 1

HK, Science

Laser TEC active

Active-LR and noise

Off

Analog temps

Survival heaters enabled

Inactive


2.2.Data Product Overview

The LOLA EDR data product consists of time-ordered, round-trip, time-of-flight ranges to the lunar surface, preceded by housekeeping and ancillary data. The EDR will consist of raw, uncalibrated data. After range calibration and orbital processing, the range to each laser spot may be located on the surface using a spacecraft trajectory, attitude history, and a lunar orientation model, to produce an altimetric datum. The range profiles are organized into a raw experiment data product (EDR), a reduced data record (RDR) containing calibrated, geolocated pulse returns, altitudes, and reflectivities; and higher-level gridded and transformed data products. The EDR data product is stored in a binary table with fixed-length records. Record columns consist of status flags and counts, 1-4 bytes in length, generally stored in MSB order. The noise counters, which are 2-byte LSB integers, are an exception.

The LRO S/C stores LOLA science data in a file on the S/C data recorder in a subdirectory called “SSR/LOLA/”. Prior to powering on the instrument, the S/C opens the data file and writes the LRO standard file header data. As new data frames are read over the 1553 bus, the S/C writes them to the file without modification. The S/C closes the file, opens a new file, and writes another LRO standard file header when commanded to do so by the ground controllers (this is nominally scheduled to occur once per lunar orbit at ascending equator crossings, roughly 6785 seconds apart). Files are always closed on a packet boundary so that packets will not be divided between files. During the daily downlink tracking passes these files are transmitted from the S/C to the LRO Ground Data System and are pushed by the LRO MOC to the LOLA Science Operations Center (SOC) computer. Each such file is then processed in a pipeline when it is received by the SOC.

The orbital period of the LRO spacecraft varies somewhat depending on mission phase, and is approximately 90 minutes in duration. The Ground Data system will determine the precise number of EDR files, but they number approximately 12.7 per day. The processing cycle aggregates the data records into daily batches in order to facilitate analysis. The LRO Project implements an orbital numbering convention whereby the orbit number increments from 0 to 1 on the first ascending node after completion of the LOI-1 lunar insertion maneuver, and increments by 1 on every ascending node after that.

Table 4 summarizes expected sizes and production rates for the LOLA Standard Pipeline data products.


Table 4: Standard Product Sizes and Delivery Rates

Product

Product Size

Production Rate per Day, average

Expected Number of Products for Nominal Mission (366 days)

Expected Total Data Volume for Nominal Mission

LOLA_EDR

23 - 24 MByte

12.1 – 12.7

4546

108 GB

LOLA_RDR

~50 MByte

same

4546

225 GB


2.3.Data Processing

The pipeline data processing consists of generating an EDR product with a detached PDS label, in one-to-one correspondence with the files generated by the instrument on the LRO spacecraft, corrected for transmission errors, gaps and duplicates where possible. The format of the files is identical to that on the spacecraft. LOLA operates continuously, generating one 3424-byte record each second, with an associated 12-byte telemetry header. The telemetry header information is captured in a detached "PDS3" Version ASCII label. During tracking passes, the housekeeping portion of the telemetry is transmitted via a real-time connection for use by the LR ground system, but is not archived since it is duplicated in the EDR product. The aggregate data rate is approximately 300 MBytes per day.

2.3.1.Data Processing Levels

The EDR product is CODMAC level 2, consisting of raw counts, edited to correct transmission errors and eliminate duplicates. In order to be useful for measurement and geological investigations, the data must be classified to determine whether individual laser shots are valid pulses and produce ground returns above the background noise level of detection. These data must be calibrated to engineering and physical units, and located in a selenodetic, center-of-mass coordinate system. This processing creates the RDR data product, which is CODMAC level 3. Binned and interpolated data on a uniformly-spaced grid comprise the level 4 data products, while transformed spherical harmonic coefficients comprise level 5.

2.3.2.Data Product Generation

All data products are generated by the LOLA SOC. Raw data are not subject to corrections or decompression, as the full instrument hardware output is stored in the telemetry packets. This stage of processing is reversible. Following EDR generation, software algorithms perform calibration, geolocation, and editing to eliminate noise. Calibration consists of conversion of raw counts into laser time-of-flight ranges, pulse widths, and energies, using tables based on ground test data generally hardwired into software arrays. Editing consists of generating reversible flags for each laser pulse return as a separate file, to be eventually incorporated into the RDR product. Software, algorithms, and ancillary data needed to reverse the RDR processing will be described in the RDR SIS document. A single version of the EDR product will be generated.

During the primary mission, referred to as the Nominal, Science, or Extended mission phases, the LRO spacecraft performs propulsive orbital adjustment maneuvers at monthly intervals. These maneuvers terminate the dynamical orbital solutions and provide a natural breakpoint for altimetric reprocessing. Multiple versions of the RDR and higher-level products are generated based on a monthly reprocessing and validation step, as orbit knowledge improves and refined crossover adjustments are performed.

2.3.3.Data Flow

Data are pushed directly from the LRO MOC through the GSFC Internet backbone to the LOLA SOC, where processing occurs. The LOLA SOC serves as a Data Node of the Planetary Data System. Data products and catalogs are made available to the PDS via a Query Server connection as well as by other electronic means. Sizes and volumes of all the data products generated over the course of the primary mission are given in Table 4. The data products cover variable time spans according to their processing level. A monthly reprocessing cycle is applied to all Level 3 and higher products, following which new versions of current and previous products are redelivered to the Data Node. At quarterly intervals as specified in the Data Management and Archive Plan (Applicable Document 2), validated releases of a cumulative archive are made, in which only the current version of data products will be maintained after each release. The ERRATA.TXT file contains a record of major changes between releases.

2.3.4.Labeling and Identification

The data set ID provided by the PDS for the LOLA EDR data product is:

"LRO-L-LOLA-2-EDR-V1.0".

The file naming convention for LOLA EDR files will be

LOLAEDR_YYDDDHHMM.DAT according to the UTC start time of observations, rounded to the minute. PDS labels follow the same convention with a suffix of “.LBL”. Details about label and header formats are specified in section 6. Each individual product has a unique identifier; if more than one file is received from the MOC within a single minute, the telemetry will be concatenated. The LRO MOC adopts a sequential file naming convention, with a seven-digit sequence number, i.e., LOLAYYYYDDD_NNNNNNN.sci. These files are the Level 1 source product for the EDRs. Apart from the exception noted above, the EDR's will be in one-to-one correspondence with the Science files pushed from the MOC, and will have their header information removed, leaving the binary data packets as they are delivered by the LOLA instrument over the spacecraft IEEE-1553 data bus. As such, they are not subject to revision after the spacecraft downlink has been verified.

2.4.Standards Used in Generating Data Products

2.4.1.PDS Standards

LOLA data products comply with Planetary Data System standards for file formats and labels, as described in the PDS Standards Reference, Applicable Document 5.

2.4.2.Time Standards

All time tags are related to the LRO spacecraft internal clocks, whose performance is monitored by the Project. The PDS labels for LOLA products use keywords denoting time values, such as start time, stop time, start spacecraft clock count, and stop spacecraft clock count. Each time value standard is defined according to the PDS keyword definitions. Project-supplied conversions from Mission Elapsed Time (MET) to Coordinated Universal Time (UTC) are required to be accurate within 3 ms absolute deviation, during which period the S/C ground track travels approximately 5 meters or one laser spot diameter. Geolocation software is based rigorously on Barycentric Dynamical Time, a convention that is realized through Terrestrial Dynamical Time and orbital theories. At the Project level, the conversions of MET to UTC are specified to be accurate within 3 ms, although higher accuracy is obtained using Laser Ranging and orbital analysis.

2.4.3.Coordinate Systems

The EDR data product contains no spatial information. Such information is applied in subsequent processing of the higher-level products. Geolocation of laser altimetric bounce points in lunar body-fixed coordinates is in accordance with the IAU 2006 Working Group Report on Cartographic Constants and Rotational Elements. In particular, LOLA adopts the Mean-Earth/polar axis convention, with a canonical transformation from the Principal Axis system, embodied in the JPL DE421 Lunar Ephemeris, or subsequent standard ephemeris selected by the LRO Data Working Group, and rotation matrices supplied by the Navigation and Ancillary Information Facility (NAIF) Node of the PDS. In particular, the LOLA products will adhere to conventions adopted by the Lunar Geodesy and Cartography Working Group (LGCWG) being formed by NASA.

2.4.4.Data Storage Conventions

The LOLA Digital Unit emulates an 8-bit microprocessor and does not adhere to multi-byte alignment conventions. Some of the raw telemetry is specified in most-significant-byte (MSB) order, but the actual storage order of individual telemetry points is defined in the PDS label and pointers. Therefore some values are described as an array of several bytes, with abbreviations B0, ..., B3 corresponding to the least significant byte to most significant byte, respectively, by increasing by factors of 256. The RDR product will adopt a consistent integer byte order.

2.5.Data Validation

Data validation shall be applied to data products by the LOLA Measurement Team to ensure that their contents and format are free of errors and comply with PDS archive standards (Applicable Document 5). For the EDR product this will consist of a brief packet checksum and performance report. Following editing, a preliminary geolocated profile will be manually inspected for each data product and anomalies noted. A more extensive validation will be performed as part of a combined orbit-determination and crossover residual analysis. The RDR and higher level products will be re-released monthly after such analysis is completed.

3.Detailed Data Product Specifications

The LOLA EDR data products are stored as fixed-length, fixed-format binary tables. The detached PDS labels for LOLA EDR's are stored as ASCII text. The product labels will point to the corresponding data files, and contain pointers to format files.

3.1.Data Product Structure and Organization

The DATA/LOLA_EDR directory will have subdirectories for each monthly orbital maneuver cycle named LRO_PP_NN, where PP refers to the first two letters of mission phase (CO = Commissioning, NO = Nominal, EX = Extended), and NN is cycle number, starting with 01 which contain the individual EDR products. Typical file paths will therefore be

/DATA/LOLA_EDR/LRO_PP_NN/LOLAEDR_YYDDDHHMM.DAT.

3.2.Data Format Descriptions

The LOLA EDR table format descriptions are given in Appendices 1-3. The PDS format file uses CONTAINER objects to avoid repeating the lengthy 28-Hz housekeeping and measurement data definitions. The EDR format file is “LOLAEDR.FMT” with pointers to “LOLAHKCT.FMT” and “LOLASCCT.FMT”. These column definition files are themselves lengthy and are stored in the LABEL directory of the EDR archive.

3.3.Label and Header Descriptions

An example of a detached PDS label follows.


PDS_VERSION_ID = "PDS3"


/*** FILE FORMAT ***/

FILE_RECORDS = 112

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 3424


/*** GENERAL DATA DESCRIPTION PARAMETERS ***/

PRODUCT_ID = "LOLAEDR_083070000_DAT"

PRODUCT_VERSION_ID = "V1"

PRODUCT_CREATION_TIME = 2008-11-04T12:00:00

PRODUCT_TYPE = "EDR"

SOURCE_PRODUCT_ID = "LOLA_2008307_0000000.sci"

STANDARD_DATA_PRODUCT_ID = "LOLAEDR"

SOFTWARE_NAME = "LOLA_EDR"

SOFTWARE_VERSION_ID = "2.0"

INSTRUMENT_HOST_NAME = "LUNAR RECONNAISSANCE ORBITER"

INSTRUMENT_NAME = "LUNAR ORBITER LASER ALTIMETER"

INSTRUMENT_ID = "LOLA"

DATA_SET_ID = "LRO-L-LOLA-2-EDR-V1.0"

DATA_SET_NAME = "LRO MOON LASER ALTIMETER 2 EDR V1.0"

MISSION_PHASE_NAME = "COMMISSIONING"

ORBIT_NUMBER = 00000

TARGET_NAME = "MOON"

START_TIME = 2008-11-02T00:00:00.000

STOP_TIME = 2008-11-02T00:01:52.000

SPACECRAFT_CLOCK_START_COUNT = "212080364"

SPACECRAFT_CLOCK_STOP_COUNT = "212080475"

^TABLE = "LOLAEDR_083070000.DAT"


OBJECT = TABLE

COLUMNS = 1563

INTERCHANGE_FORMAT = BINARY

ROW_BYTES = 3424

ROWS = 112

DESCRIPTION = "

This table contains instrument science and engineering data from

the LRO Lunar Orbiter Laser Altimeter (LOLA) telemetry packets.

The complete column definitions are contained in a structure file

LOLAEDR.FMT. Additional details are contained in the EDR SIS document.”

^STRUCTURE = "LOLAEDR.FMT"

END_OBJECT = TABLE

END

4.Applicable Software

Because the LOLA EDR data products are formatted as binary tables, they must be read by specialized software that can manipulate byte-order-dependent fields. The primary access to the data product is through the table definitions herein described. Software to read, display, and process the raw data will be used internally by the SOC. Software that outputs calibrated housekeeping data will be distributed for research purposes but it is not intended that such software be used by the general public. Calibration software will be distributed with the RDR data set.

4.1.Utility Programs

NASAView is a program supplied by the PDS for inspection of arbitrary PDS products, but has not been certified for use with the EDR product. A stand-alone utility 'edr2csv' converts the 1-Hz instrument status and engineering data in the EDR product into a Comma Separated Values-style text file that may be read into spreadsheets.

4.2.Applicable PDS Software Tools

The PDS-D query software is designed to extract metadata from catalogs and download specific data products.

4.3.Software Distribution and Update Procedures

Software will be provided as source code and stand-alone binaries, maintained by the LOLA Team. Only the source code is distributed as part of the LOLA Archive. Executable binaries suitable for commonly-used platforms and updates will be made available at the PDS Geosciences Node.

5.Appendices

5.1.Contents of the LOLAEDR.FMT file


/* LOLAEDR.FMT v. 19 AUG 2008 */

/* corrected diode_1 & 2 readback temps v. 15 JUL 2009 */

/* added configuration register descriptions v. 26 JUL 2009 */

/* File characteristics of LOLA science telemetry, the source of */

/* the Lunar Orbiter Laser Altimeter Experiment Data Record (EDR) */

/* for 28 laser shots, repeated once per second: */

/* Primary telemetry header = 6 bytes or 48 bits */

/* Secondary header = 6 bytes */

/* Housekeeping data = 736 */

/* Science data = 2688 */

/* COLUMNS = 1563= 135+28*11+28*40 */

/* Header information is not delivered by Mission Operations Center */

/* in the science telemetry, but is delivered in the housekeeping */

/* data packets. The housekeeping comprises the first 736 bytes of */

/* the science telemetry but is also delivered in a realtime stream.*/

/* The header information is given for reference. */

/* */

/* Primary Header, 48 bits: */

/* 4 bit version/type (0's) 1 bit flag (1), 11 bit APID */

/* 2 bits set for unsegmented, 14 bit sequence counter */

/* 16 bits packet length in octets,minus 7 */

/* Secondary Header, 48 bits applied to Housekeeping telemetry only.*/

/* OBJECT = COLUMN */

/* COLUMN_NUMBER = 1 */

/* BYTES = 4 */

/* NAME = TELEMETRY_SECONDARY_HEADER_MET */

/* DATA_TYPE = MSB_UNSIGNED_INTEGER */

/* START_BYTE = 1 */

/* DESCRIPTION = "Telemetry seconds since epoch." */

/* END_OBJECT = COLUMN */

/* */

/* OBJECT = COLUMN */

/* COLUMN_NUMBER = 2 */

/* BYTES = 2 */

/* NAME = TELEMETRY_SUBSECONDS */

/* DATA_TYPE = MSB_UNSIGNED_INTEGER */

/* START_BYTE = 5 */

/* DESCRIPTION = "Subseconds, 0-65535." */

/* END_OBJECT = COLUMN */

/* Total packet header size is 12 bytes. The EDR comprises only */

/* the information that comes from the instrument data unit. */

/*************************************************************************/

/* DEFINITIONS AND ABBREVIATIONS: */

/* B0, B1, B2, B3 */

/* Several of the engineering values are arranged in multiple-byte */

/* fields that do not conform to PDS standards for UNSIGNED_INTEGER types. */

/* Since the values are generated by programmable gate arrays, they are not */

/* in a standard computer multi-byte format. */

/* The least significant byte value is abbreviated 'B0' */

/* The next byte value (x256) is abbreviated 'B1', and so forth. */

/* A three-byte field is equivalent to the value 65536*B2 + 256*B1 + B0 */

/* */

/* T0 */

/* Shot reference time, the clock tick starting each 1/28-s minor frame */

/****************************************************************************/

/* start of LOLA telemetry */

OBJECT = COLUMN

COLUMN_NUMBER = 1

BYTES = 4

NAME = TIME_STAMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

ITEMS = 4

ITEM_BYTES = 1

DESCRIPTION = "DU time stamp in B1, B0, B3, B2 order,

equivalent to the value 16,777,216*B3 + 65,536*B2 + 256*B1 + B0. The

value generates the SPACECRAFT_CLOCK count keywords in the label.

LOLA uses this value, together with a spacecraft time correction factor

that is uplinked from the ground and a clock correlation file to relate

this time stamp to terrestrial Atomic Time."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

BYTES = 2

NAME = SEQUENCE_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Packet sequence counter,

reset to 0 on power-up."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

BYTES = 1

NAME = PHASE_A_LOCK

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 7

DESCRIPTION = "There are 6 phase A and 6 phase B

Time-Digital-Converters. Each TDC has a phase-locked-loop to control the

gate delay time. A 1 in bits 0-5 indicates whether a corresponding phase A

TDC has lost PLL lock. Any bit = 1 indicates a fault."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 4

BYTES = 1

NAME = PHASE_B_LOCK

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 8

DESCRIPTION = "Same as PHASE_A_LOCK for the phase B TDCs.

"

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 5

BYTES = 1

NAME = UART_ERROR

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

DESCRIPTION = "UART error count (7..4) & Conf_Reg_3(3..0)

The configuration bits (high=7,low=0) are as follows (0=FSW, 1=ground):

LOSRCSWINPUTS 3 Source of SW INPUTs

LOSRCRGS 2 Source of range gates

LOSRCTHRESHOLDS 1 Source of thresholds

LOSRCGAINS 0 Source of gains

while bits 7-4 are the uart error count."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 6

BYTES = 3

NAME = DUTY_CYCLE

DATA_TYPE = MSB_SIGNED_INTEGER

START_BYTE = 10

ITEMS = 3

ITEM_BYTES = 1

DESCRIPTION = "Duty Cycle of the 12 TDC chips as counts,

in B2, B1, B0 order, subcommutated over 16 packets. This 24-bit value

samples the TDC given by the packet sequence number modulo 16, plus 1,

for TDC numbers 1-12, while 13-16 are invalid.

The 24-bit value is a signed integer. That is, if it reads xFFFFFF,

the actual value is -1. The full scale is plus or minus 199993 counts.

The maximum positive number is x030D39 (100% duty cycle);

xFCF2C7 is the full scale negative number (0% duty cycle)."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 7

BYTES = 2

NAME = LEA_DISCRETES

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Laser Electronics Assembly Discretes are the

16 bits writeable to subaddress 3.

The bitwise functional breakdown is

0 - laser state (0=disable, 1=enable)

1 - laser select (0=Laser 1, 1=Laser 2)

2 - laser fire state (1=enable)

3 - TEC 1 state (0=disable, 1=enable)

4 - TEC 2 state (0=disable, 1=enable)

5 - cpu reset enabled (0=disable, 1=enable)

6 - cpu reset state (0=idle, 1=active)

7 - unused

8 - EEPROM protect (0=protected, 1=writeable)

9 - unused

10 - unused

11 - unused

12 - LOLA 1pps state 1 (0=enabled) controls for resynchonization

13 - LOLA 1pps state 2 (0=enabled) of T0 with the 1pps RS422 pulse

14 - unused

15 - diagnostic bit, MUST NOT BE MODIFIED-can lead to overcurrent.

"

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 8

BYTES = 2

NAME = DRIVE_WIDTH

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 15

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Measured drive pulse width in 200-ns

counts."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 9

BYTES = 3

NAME = RANGE_GATE_START

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

ITEMS = 3

ITEM_BYTES = 1

DESCRIPTION = "Range gate start from T0

as B2, B1, B0, in 200-ns counts"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

BYTES = 3

NAME = RANGE_GATE_STOP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 20

ITEMS = 3

ITEM_BYTES = 1

DESCRIPTION = "Range gate stop from T0

as B2, B1, B0, in 200-ns counts"

END_OBJECT = COLUMN


/* start of frame threshold and gain values */

OBJECT = COLUMN

COLUMN_NUMBER = 11

BYTES = 1

NAME = THRESHOLD_1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

DESCRIPTION = "Commanded Threshold detector 1"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 12

BYTES = 1

NAME = COMMANDED_GAIN_1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 24

DESCRIPTION = "Commanded gain on detector 1"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 13

BYTES = 1

NAME = THRESHOLD_2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

DESCRIPTION = "Commanded Threshold detector 2"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 14

BYTES = 1

NAME = COMMANDED_GAIN_2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 26

DESCRIPTION = "Commanded gain on detector 2"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 15

BYTES = 1

NAME = THRESHOLD_3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

DESCRIPTION = "Commanded Threshold detector 3"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 16

BYTES = 1

NAME = COMMANDED_GAIN_3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 28

DESCRIPTION = "Commanded gain on detector 3"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 17

BYTES = 1

NAME = THRESHOLD_4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

DESCRIPTION = "Commanded Threshold detector 4"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 18

BYTES = 1

NAME = COMMANDED_GAIN_4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 30

DESCRIPTION = "Commanded gain on detector 4"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 19

BYTES = 1

NAME = THRESHOLD_5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 31

DESCRIPTION = "Commanded Threshold detector 5"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 20

BYTES = 1

NAME = COMMANDED_GAIN_5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 32

DESCRIPTION = "Commanded gain on detector 5"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 21

BYTES = 3

NAME = HZ_TO_FIRE

DATA_TYPE = LSB_UNSIGNED_INTEGER

START_BYTE = 33

ITEMS = 3

ITEM_BYTES = 1

DESCRIPTION = "1Hz_to_Fire B0, B1, B2 (50 ns counts)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 22

BYTES = 1

NAME = DETECTOR_ENABLES

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 36

DESCRIPTION = "Commanded Detector Enables.

(0=disable, 1=enable)

Bit 0: Detector 1

Bit 1: Detector 2

Bit 2: Detector 3

Bit 3: Detector 4

Bit 4: Detector 5

"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 23

BYTES = 3

NAME = FIRE_WIDTH

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 37

ITEMS = 3

ITEM_BYTES = 1

DESCRIPTION = "Commanded fire pulse width B2,B1,B0,

in 200-ns counts."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 24

BYTES = 1

NAME = CLOCK_CONFIG

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 40

DESCRIPTION = "Clock Configuration (1=enable)

Bit 0: LOCAL

Bit 1: SC_A

Bit 2: SC_B

Bit 3: SC_APLUS

."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 25

BYTES = 1

NAME = MINOR_FRAME_NUMBER

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 41

DESCRIPTION = "The number of the minor frame at which the

RX1_ENERGY to RX5_ENERGY values are sampled. The major frame for LOLA

is exactly 1 s, where time is defined by the 5 MHz clock provided by

the spacecraft. This particular analysis will consider the clock

to be true. Thus there are exactly 5x10^6 clock ticks per major frame.


LOLA has 28 shots per second, where each shot is defined as a minor

frame. This gives 178571.42857... clock cycles per minor frame.

The LOLA minor frames will not be exactly equal in length but will be

fully deterministic, using an old digital phase lock loop technique

designed for SMEX/FAST many moons ago.

The first 16 minor frames will be 178571 clock ticks in length.

The last 12 minor frames will be 178572 clock ticks in length.

-- Richard B. Katz, Head Grunt, Office of Logic Design, NASA GSFC."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 26

BYTES = 1

NAME = TX_CLAMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 42

DESCRIPTION = "TX clamp determines the transmit energy

integration time. The TxHold signal clamps the transmit energy measurement

at TX_CLAMP counts. Units are 50 ns per count."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 27

BYTES = 1

NAME = RX2_ENERGY

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 43

DESCRIPTION = "Channel 2 received energy (fJ),

y = 0.6003*x/GAIN2 - 0.1304,

where GAIN2 is the calculated value for gain from

GAIN_READ_BACK_2 telemetry."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 28

BYTES = 1

NAME = RX1_ENERGY

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 44

DESCRIPTION = "Channel 1 received energy (fJ),

y = 0.5837*x/GAIN1 - 0.1538,

where GAIN1 is the calculated value for gain from

GAIN_READ_BACK_1 telemetry."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 29

BYTES = 1

NAME = RX4_ENERGY

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 45

DESCRIPTION = "Channel 4 received energy (fJ),

y = 0.5742*x/GAIN4 - 0.1452,

where GAIN4 is the calculated value for gain from

GAIN_READ_BACK_4 telemetry."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 30

BYTES = 1

NAME = RX3_ENERGY

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 46

DESCRIPTION = "Channel 3 received energy (fJ),

y = 0.5940*x/GAIN3 - 0.1420,

where GAIN3 is the calculated value for gain from

GAIN_READ_BACK_3 telemetry."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 31

BYTES = 1

NAME = V550_MONITOR

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 47

DESCRIPTION = "Analog +550V voltage,

y = 3.0926*x-37.362 V."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 32

BYTES = 1

NAME = RX5_ENERGY

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 48

DESCRIPTION = "Channel 5 received energy (fJ),

y = 0.5660*x/GAIN5 - 0.1394,

where GAIN5 is the calculated value for gain from

GAIN_READ_BACK_5 telemetry."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 33

BYTES = 1

NAME = V5_MONITOR

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 49

DESCRIPTION = "Analog +5V voltage,

y = 2.1646E-02*x-2.5956E-01 V."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 34

BYTES = 1

NAME = V12_MONITOR

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 50

DESCRIPTION = "Analog +12V voltage,

y = 5.120E-02*x - 6.055E-01 V."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 35

BYTES = 1

NAME = V3DOT3D_MONITOR

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 51

DESCRIPTION = "Digital +3.3V voltage,

y = 1.452E-02*x-1.747E-01 V."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 36

BYTES = 1

NAME = V3DOT3A_MONITOR

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 52

DESCRIPTION = "Analog +3.3V voltage,

y = 1.452E-02*x-1.747E-01 V."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 37

BYTES = 1

NAME = ZERO_CHECK

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 53

DESCRIPTION = "Analog Board zero voltage,

y = 0.01083*x-0.1303 V."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 38

BYTES = 1

NAME = V5NEG_MONITOR

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 54

DESCRIPTION = "Analog -5V voltage,

y = -2.167E-02*x +2.606E-01 V."

END_OBJECT = COLUMN

/* mid-frame threshold calculation values */

OBJECT = COLUMN

COLUMN_NUMBER = 39

BYTES = 1

NAME = GAIN_READ_BACK_2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 55

DESCRIPTION = "Gain read-back on channel 2 (GAIN2).

y =-2.689E-01*x + 58.204; valid for 22<x<217;

y = 52 for x<23;

y = 0 for x>216."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 40

BYTES = 1

NAME = GAIN_READ_BACK_1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 56

DESCRIPTION = "Gain read-back on channel 1 (GAIN1).

y =-2.813E-01*x + 60.9; valid for 27<x<217;

y = 53 for x<28;

y = 0 for x>216."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 41

BYTES = 1

NAME = GAIN_READ_BACK_4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 57

DESCRIPTION = "Gain read-back on channel 4 (GAIN4).

y = -2.821E-01*x + 61.075; valid for 24<x<217;

y = 54 for x<25;

y = 0 for x>216."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 42

BYTES = 1

NAME = GAIN_READ_BACK_3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 58

DESCRIPTION = "Gain read-back on channel 3 (GAIN3).

y = -2.765E-01*x + 59.373; valid for 26<x<215;

y = 52 for x<27;

y = 0 for x>214."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 43

BYTES = 1

NAME = THRESHOLD_READ_BACK_1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 59

DESCRIPTION = "Threshold Read Back 1 (FS THRESHOLD1),

y = 0.5837x - 8.904 mV."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 44

BYTES = 1

NAME = GAIN_READ_BACK_5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 60

DESCRIPTION = "Gain read-back on channel 5 (GAIN5).

y = -2.774E-01x + 59.865; valid for 24<x<216;

y = 53 for x<25;

y = 0 for x>215."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 45

BYTES = 1

NAME = THRESHOLD_READ_BACK_3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 61

DESCRIPTION = "Threshold Read Back 3 (FS THRESHOLD3).

y = 0.2951x - 5.542 mV."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 46

BYTES = 1

NAME = THRESHOLD_READ_BACK_2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 62

DESCRIPTION = "Threshold Read Back 2 (FS THRESHOLD2).

y = 0.2925x - 5.51 mV."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 47

BYTES = 1

NAME = THRESHOLD_READ_BACK_5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 63

DESCRIPTION = "Threshold Read Back 5 (FS THRESHOLD5).

y = 0.3119x - 5.443 mV."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 48

BYTES = 1

NAME = THRESHOLD_READ_BACK_4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 64

DESCRIPTION = "Threshold Read Back 4 (FS THRESHOLD4).

y = 0.2934x - 6.107 mV."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 49

BYTES = 1

NAME = DIODE_CURRENT_SET

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 65

DESCRIPTION = "Diode Current Set Readback,

y = 1.319E-01x + 5.820E+01, Amperes."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 50

BYTES = 1

NAME = TX_THRESHOLD_READ_BACK

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 66

DESCRIPTION = "Tx Threshold Read Back,

y = 2.079x -25.02 mV."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 51

BYTES = 1

NAME = DIODE_2_TEMP_SET

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 67

DESCRIPTION = "Diode #2 Temperature Set Readback,

y = -2.142E-06x2 - 9.013E-03x + 2.303E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 52

BYTES = 1

NAME = DIODE_1_TEMP_SET

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 68

DESCRIPTION = "Diode #1 Temperature Set Readback,

y = 7.949E-06x2 - 1.036E-02x + 1.649E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 53

BYTES = 1

NAME = V3DOT3A_DU_CURRENT_IMON

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 69

DESCRIPTION = "3.3A DU Current (Imon),

y = 1.0701E-02x - 1.3913E-01 A."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 54

BYTES = 1

NAME = V3DOT3D_DU_CURRENT_MON

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 70

DESCRIPTION = "3.3D DU Current (Imon),

y = 1.0665E-02x - 1.3963E-01 A."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 55

BYTES = 1

NAME = V1DOT5_DUA_CURRENT_IMON

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 71

DESCRIPTION = "1.5 DUA Current (Imon),

y = 4.154E-03x - 1.626E-01 A."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 56

BYTES = 1

NAME = V12_DU_CURRENT_IMON

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 72

DESCRIPTION = "12 DU Current (Imon),

y = 1.0614E-02x - 1.1528E-01 A."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 57

BYTES = 1

NAME = V1DOT5_DUA_VMON

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 73

DESCRIPTION = "1.5 DUA Current (Imon),

y = 4.154E-03x - 1.626E-01 A."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 58

BYTES = 1

NAME = V1DOT5_DUD_CURRENT_IMON

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 74

DESCRIPTION = "1.5 DUD Current (Imon),

y = 1.989E-03x - 5.376E-02 A."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 59

BYTES = 1

NAME = DETECTOR_BOARD_TEMP_1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 75

DESCRIPTION = "Detector Board Temperature 1,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 60

BYTES = 1

NAME = V1DOT5_DUD_VMON

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 76

DESCRIPTION = "1.5V DUD (Vmon),

y = 1.084E-02x - 1.297E-01 V."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 61

BYTES = 1

NAME = DETECTOR_BOARD_TEMP_2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 77

DESCRIPTION = "Detector Board Temperature 2,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 62

BYTES = 1

NAME = DETECTOR_HYBRID_TEMP_1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 78

DESCRIPTION = "Detector Hybrid Temperature 1,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 63

BYTES = 1

NAME = DETECTOR_BOARD_TEMP_3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 79

DESCRIPTION = "Detector Board Temperature 3,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 64

BYTES = 1

NAME = DETECTOR_HYBRID_TEMP_2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 80

DESCRIPTION = "Detector Hybrid Temperature 2,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 65

BYTES = 1

NAME = DETECTOR_BOARD_TEMP_4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 81

DESCRIPTION = "Detector Board Temperature 4,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 66

BYTES = 1

NAME = DETECTOR_HYBRID_TEMP_3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 82

DESCRIPTION = "Detector Hybrid Temperature 3,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 67

BYTES = 1

NAME = DETECTOR_BOARD_TEMP_5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 83

DESCRIPTION = "Detector Board Temperature 5,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 68

BYTES = 1

NAME = DETECTOR_HYBRID_TEMP_4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 84

DESCRIPTION = "Detector Hybrid Temperature 4,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 69

BYTES = 1

NAME = LEA_BOARD_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 85

DESCRIPTION = "LEA Board Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 70

BYTES = 1

NAME = DETECTOR_HYBRID_TEMP_5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 86

DESCRIPTION = "Detector Hybrid Temperature 5,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 71

BYTES = 1

NAME = LASER_2_DIODES_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 87

DESCRIPTION = "Laser 2 Diodes Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 72

BYTES = 1

NAME = LASER_1_DIODES_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 88

DESCRIPTION = "Laser 1 Diodes Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 73

BYTES = 1

NAME = LASER_2_BENCH_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 89

DESCRIPTION = "Laser 2 Bench Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 74

BYTES = 1

NAME = LASER_1_BENCH_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 90

DESCRIPTION = "Laser 1 Bench Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 75

BYTES = 1

NAME = PCA_BOARD_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 91

DESCRIPTION = "PCA Board Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 76

BYTES = 1

NAME = ANALOG_BOARD_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 92

DESCRIPTION = "Analog Board Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 77

BYTES = 1

NAME = DU_OSCILLATOR_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 93

DESCRIPTION = "DU Oscillator Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 78

BYTES = 1

NAME = DU_BOARD_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 94

DESCRIPTION = "DU Board Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 79

BYTES = 1

NAME = BEAM_EXPANDER_MIDDLE_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 95

DESCRIPTION = "Beam Expander Middle Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 80

BYTES = 1

NAME = BEAM_EXPANDER_TOP_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 96

DESCRIPTION = "Beam Expander Top Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 81

BYTES = 1

NAME = RX_TUBE_TOP_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 97

DESCRIPTION = "Rx Tube Top Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 82

BYTES = 1

NAME = BEAM_EXPANDER_BOTTOM_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 98

DESCRIPTION = "Beam Expander Bottom Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 83

BYTES = 1

NAME = RX_TUBE_BOTTOM_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 99

DESCRIPTION = "Rx Tube Bottom Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 84

BYTES = 1

NAME = RX_TUBE_MIDDLE_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 100

DESCRIPTION = "Rx Tube Middle Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 85

BYTES = 1

NAME = CALIBRATION_HI_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 101

DESCRIPTION = "Calibration Hi Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 86

BYTES = 1

NAME = HOUSING_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 102

DESCRIPTION = "Housing Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 87

BYTES = 1

NAME = DUA_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 103

DESCRIPTION = "DUA Temperature

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 88

BYTES = 1

NAME = CALIBRATION_LOW_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 104

DESCRIPTION = "Calibration Low Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 89

BYTES = 1

NAME = DUA_HOT1_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 105

DESCRIPTION = "DUA_HOT1 Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 90

BYTES = 1

NAME = DUA_FPGA_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 106

DESCRIPTION = "DUA_FPGA Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 91

BYTES = 1

NAME = RX_CHANNEL_ENABLE_READBACK

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 107

DESCRIPTION = "Analog Board, probably (Jerry Karsh):

Bit 0: RX Channel 1 Enable Readback, 0 = 'Disabled'; 1 = 'Enabled',

Bit 1: RX Channel 2 Enable Readback, 0 = 'Disabled'; 1 = 'Enabled',

Bit 2: RX Channel 3 Enable Readback, 0 = 'Disabled'; 1 = 'Enabled',

Bit 3: RX Channel 4 Enable Readback, 0 = 'Disabled'; 1 = 'Enabled',

Bit 4: RX Channel 5 Enable Readback, 0 = 'Disabled'; 1 = 'Enabled',

Bit 5: TX Channel Enable Readback,0 = 'Enabled'; 1 = 'Disabled',

Bit 6: unused, =0,

Bit 7: unused, =0."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 92

BYTES = 1

NAME = DUA_HOT2_TEMP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 108

DESCRIPTION = "DUA_HOT2 Temperature,

y = ((-1.030E-05 x + 4.011E-03) x - 8.309E-01) x + 8.034E+01 degrees C."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 93

BYTES = 1

NAME = K

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 109

DESCRIPTION = "The letter k, whose value shall be 0x6B."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 94

BYTES = 1

NAME = ANALOG_BOARD_FLAGS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 110

DESCRIPTION = "Analog board error flags:

Bit 0: RX1_Parity_Error (active '1'),

Bit 1: RX1_Frame_Error (active '1'),

Bit 2: RX2_Parity_Error (active '1'),

Bit 3: RX2_Frame_Error (active '1'),

Bit 4: DAC Latchup Notification (active '1'),

Bit 5: Pump Trigger (active '1' when not received),

Bit 6: TXHOLD (active '1' when not received),

Bit 7: DAC bytes (active '1' when incorrect # of values received)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 95

BYTES = 1

NAME = VERTICAL_PARITY_BYTE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 111

DESCRIPTION = "Bitwise parity of analog data."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 96

BYTES = 1

NAME = CMD_C_COUNTER

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 112

DESCRIPTION = "Counter that increments once each shot,

when the analog board receives a character 'C' triggering A/D conversions.

This serves as a sequence check on analog board telemetry."

END_OBJECT = COLUMN


/* End of first block of housekeeping, now 64 bytes of FSW */


OBJECT = COLUMN

COLUMN_NUMBER = 97

BYTES = 2

NAME = FSW_SEQUENCE_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 113

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "FSW Incrementing counter;

starts at 1, and increments by 1 each second."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 98

BYTES = 2

NAME = ROM_CRC

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 115

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "FSW 16-Bit Cyclic Redundancy Check

of the Code and Constant Data."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 99

BYTES = 2

NAME = OVERRIDE_FLAGS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 117

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Status flags -

0: Algorithm Control, 1: Overriden

Bit 0: Det 5 Gain

Bit 1: Det 4 Gain

Bit 2: Det 3 Gain

Bit 3: Det 2 Gain

Bit 4: Det 1 Gain

Bit 5: Det 5 Threshold

Bit 6: Det 4 Threshold

Bit 7: Det 3 Threshold

Bit 8: Det 2 Threshold

Bit 9: Det 1 Threshold

Bit 10: Range Window Width

Bit 11: Range Window Delay

"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 100

BYTES = 1

NAME = SOFTWARE_DETECTOR_DISABLES

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 119

DESCRIPTION = "

Status Flags: 0: Detector Enabled, 1: Detector Disabled

Bit 0: Detector 1

Bit 1: Detector 2

Bit 2: Detector 3

Bit 3: Detector 4

Bit 4: Detector 5

"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 101

BYTES = 1

NAME = ALGORITHM_MODE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 120

DESCRIPTION = "FSW mode-

0: Startup, 1: Acquisition, 2: Tracking.

"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 102

BYTES = 2

NAME = AVERAGE_TRANSMIT_TIME

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 121

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "The average transmit coarse time

over the last second, in counts, nominally 200 ns per count."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 103

BYTES = 1

NAME = LUNAR_SIGNAL_ACQUIRED

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 123

DESCRIPTION = "FSW status -

0: Signal NOT Acquired, 1: Signal Acquired."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 104

BYTES = 2

NAME = LUNAR_ESTIMATED_RANGE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 124

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Calculated range from spacecraft to the

surface of the moon. Units are counts, with one count equivalent to

approximately 30 meters of range."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 105

BYTES = 1

NAME = LUNAR_RETURN_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 126

DESCRIPTION = "Number of valid lunar return pulses

that were histogrammed."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 106

BYTES = 2

NAME = LUNARSUBWINDOW_BIN

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 127

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Histogram bin number of the

start of the subwindow."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 107

BYTES = 1

NAME = LUNAR_SUBWINDOW_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 129

DESCRIPTION = "Number of valid lunar return pulses

in the bins of the subwindow."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 108

BYTES = 2

NAME = LUNAR_SUBWINDOW_MAX_BIN

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 130

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Histogram bin number of the bin in the

subwindow with the most valid lunar return pulses."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 109

BYTES = 1

NAME = LUNAR_SUBWINDOW_MAX_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 132

DESCRIPTION = "Number of valid lunar return pulses

in the subwindow max bin."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 110

BYTES = 2

NAME = LUNAR_OUTSIDE_MAX_BIN

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 133

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Histogram bin number of the bin outside

the subwindow with the most valid lunar return pulses."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 111

BYTES = 1

NAME = LUNAR_OUTSIDE_MAX_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 135

DESCRIPTION = "Number of valid lunar return pulses

in the outside max bin."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 112

BYTES = 1

NAME = EARTH_SIGNAL_AQUIRED

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 136

DESCRIPTION = "0: Signal NOT Acquired, 1: Signal Acquired"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 113

BYTES = 2

NAME = EARTH_ESTIMATED_RANGE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 137

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Calculated histogram offset

of the earth signal."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 114

BYTES = 1

NAME = EARTH_RETURN_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 139

DESCRIPTION = "Number of valid earth pulses that were

histogrammed."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 115

BYTES = 2

NAME = EARTH_SUBWINDOW_BIN

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 140

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Histogram bin number of the

start of the subwindow."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 116

BYTES = 1

NAME = EARTH_SUBWINDOW_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 142

DESCRIPTION = "Number of valid earth pulses in the

bins of the subwindow."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 117

BYTES = 2

NAME = EARTH_SUBWINDOW_MAX_BIN

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 143

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Histogram bin number of the bin

in the subwindow with the most valid earth pulses."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 118

BYTES = 1

NAME = EARTH_SUBWINDOW_MAX_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 145

DESCRIPTION = "Number of valid earth pulses in the

subwindow max bin."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 119

BYTES = 2

NAME = EARTH_OUTSIDE_MAX_BIN

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 146

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Histogram bin number of the bin outside

the subwindow with the most valid earth pulses."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 120

BYTES = 1

NAME = EARTH_OUTSIDE_MAX_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 148

DESCRIPTION = "Number of valid earth pulses in the

outside max bin"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 121

BYTES = 2

NAME = TX_SHOT_0_DUP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 149

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Duplication of the transmit coarse time

for shot 0."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 122

BYTES = 2

NAME = TX_SHOT_14_DUP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 151

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Duplication of the transmit coarse time

for shot 14."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 123

BYTES = 2

NAME = LUNAR_RX_DET_0_SHOT_0_DUP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 153

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "The calculated range of the lunar return

pulse on detector 0 for shot 0."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 124

BYTES = 2

NAME = LUNAR_RX_DET_0_SHOT_14_DUP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 155

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "The calculated range of the lunar return

pulse on detector 0 for shot 14."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 125

BYTES = 2

NAME = EARTH_RX_SHOT_0_DUP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 157

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "The calculated histogram offset of the

earth pulse for shot 0."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 126

BYTES = 2

NAME = EARTH_RX_SHOT_14_DUP

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 159

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "The calculated histogram offset of the

earth pulse for shot 14."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 127

BYTES = 1

NAME = LASER_DRIVE_PULSE_MIN

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 161

DESCRIPTION = "Minimum laser drive pulse value

over the last second."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 128

BYTES = 1

NAME = LASER_DRIVE_PULSE_MAX

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 162

DESCRIPTION = "Maximum laser drive pulse value

over the last second."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 129

BYTES = 1

NAME = LASER_DRIVE_PULSE_AVERAGE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 163

DESCRIPTION = "Average laser drive pulse value

over the last second."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 130

BYTES = 5

NAME = COMMANDED_THRESHOLDS_MIDFRAME

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 164

ITEMS = 5

ITEM_BYTES = 1

DESCRIPTION = "The commanded DAC values output from

the software for the thresholds for shot 14 (mid-frame calculation)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 131

BYTES = 2

NAME = MEMORY_DUMP_ADDRESS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 169

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "Memory dump command address."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 132

BYTES = 2

NAME = MEMORY_DUMP_VALUE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 171

ITEMS = 1

ITEM_BYTES = 2

DESCRIPTION = "The value in memory at the

memory dump address."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 133

BYTES = 2

NAME = SPARE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 173

ITEMS = 2

ITEM_BYTES = 1

DESCRIPTION = "Unassigned spares."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 134

BYTES = 1

NAME = GLITCH_STATUS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 175

DESCRIPTION = "Added by J-P for tracking the glitch

algorithm status. The algorithm corrects for extra noise triggers

induced by laser pulses (glitches) when calculating noise levels.

Currently, should be set to 0x1F, indicating that the glitch

algorithm is being used for detectors 1-5."

END_OBJECT = COLUMN


OBJECT = COLUMN

COLUMN_NUMBER = 135

BYTES = 1

NAME = HEALTH_AND_SAFETY_FLAGS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 176

DESCRIPTION = "For testing only."

END_OBJECT = COLUMN

/* end of software block - now 28x20 analog shot data and noise counts */

/* This container object is the first of two that define the full LOLA */

/* packet, consisting of housekeeping and shot data. */


OBJECT = CONTAINER

START_BYTE = 177

NAME = LOLA_HOUSEKEEPING_STRUCTURE

^STRUCTURE = "LOLAHKCT.FMT"

BYTES = 20

REPETITIONS = 28

DESCRIPTION = "The transmit and Earth receive pulse

energy counts, as well as the event and noise counts in each channel,

are repeated once per shot."

END_OBJECT = CONTAINER

/* shot data */

OBJECT = CONTAINER

START_BYTE = 737

BYTES = 96

NAME = SCIENCE_SHOT_STRUCTURE

^STRUCTURE = "LOLASCCT.FMT" /* points to the columns */

REPETITIONS = 28

DESCRIPTION = "LOLA Science Data for each laser shot minor frame.

The science data consist of time stamps relative to the shot

reference time (T0) of various triggers. The times are recorded

on both the leading and trailing edges of each trigger to determine

the centroid of the detected pulse. There are flags associated with

each channel of the range measurement unit (RMU) that indicate

whether the RMU counts are valid, followed by status and phase

indicators for the time-digital converters (TDC) to be used in

calibrating the time stamps. Each time stamp is composed of column

definitions for four separate event counts produced by the RMU.

The four events are:

a coarse (200 ns) event count;

event 1, a fine counter for leading edge.

event 2, a fine counter for trailing edge;

event 3, a fine counter for leading and trailing edges.

Each pulse time stamp is calculated in nanoseconds from T0 as

le = 200.*coarse -(event1 - event3)*0.02815

te = 200.*coarse -(event2 - event3)*0.02815

pw = (event1 - event2)*0.02815

Each counter is coded in three bytes (B2, B1, B0), starting with

the most significant byte, for a total of 12 bytes/stamp.

The fine counter least significant bit is approximately 28.15 ps.

There are seven time stamps for each shot: a transmit time TX,

five lunar receive times RX1-5, and one Earth window time.

The earth window is gated separately on Channel 1 and precedes the

lunar gated pulses, but shares a common timing format.

The column definitions for time stamps are followed by a software

timer, and digital counts of the lunar RX1-5 energies."

END_OBJECT = CONTAINER

/* end shot data */


5.2.Contents of the LOLAHKCT.FMT file



/* HOUSEKEEPING container structure LOLAHKCT.FMT, repeats 28 times */

/* 11 columns, 560 bytes */


OBJECT = COLUMN

BYTES = 1

NAME = TX_PULSE_ENERGY

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

DESCRIPTION = "Analog Board output - preliminary conversion

(mJ) is y = 0.01435*x -0.17, for x in [12,255]."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = LSR_DIODE_PUMP_CURRENT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 2

DESCRIPTION = "Analog Board output - conversion is

(A) y = 0.4281*x -5.117, for x in [12,255]."

END_OBJECT = COLUMN

/* Note that, perversely, noise counts are output in LSB, MSB order. */


OBJECT = COLUMN

BYTES = 10

NAME = NOISE_COUNTS

DATA_TYPE = LSB_UNSIGNED_INTEGER

START_BYTE = 3

ITEMS = 5

ITEM_BYTES = 2

DESCRIPTION = "The noise counts in 1/28 s from the

beginning of the previous lunar window at to the end of the

current Earth window, for channels 1-5, with a negligible dead time.

See the timing diagram for detailed information about the offset."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = EARTH_EVENT_COUNT

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

DESCRIPTION = "The number of triggers received in the

8-ms Earth window on channel 1."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = EARTH_ENERGY

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 14

DESCRIPTION = "Energy of the trigger pulse in the

Earth window on Channel 1. (fJ) y=(.5837x/GAIN1)-.1538, where gain1

is the y value of GAIN_READ_BACK_1."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = EVENT_COUNT_RX_1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 15

DESCRIPTION = "The number of triggers received in the

lunar range window on channel 1."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = EVENT_COUNT_LASER_FIRE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 16

DESCRIPTION = "The number of triggers received by the

start detector."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = EVENT_COUNT_RX_3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

DESCRIPTION = "The number of triggers received in the

lunar range window on channel 3."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = EVENT_COUNT_RX_2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 18

DESCRIPTION = "The number of triggers received in the

lunar range window on channel 2."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = EVENT_COUNT_RX_5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 19

DESCRIPTION = "The number of triggers received in the

lunar range window on channel 5."

END_OBJECT = COLUMN

OBJECT = COLUMN

BYTES = 1

NAME = EVENT_COUNT_RX_4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 20

DESCRIPTION = "The number of triggers received in the

lunar range window on channel 4."

END_OBJECT = COLUMN

5.3.Contents of the LOLASCCT.FMT file


/* The science shot structure */

/* 40 columns comprising 96 bytes x 28Hz = 2688 bytes */


OBJECT = COLUMN

BYTES = 1

NAME = VALID_TRAILING_EDGE_FLAG

DATA_TYPE = MSB_BIT_STRING /* pending description */

START_BYTE = 1

DESCRIPTION = "bitfield of RMU range validity tx,1rx,erx,2-5rx

The bitwise functional breakdown is

0 - transmit

1 - channel 1 receive

2 - Earth window receive

3 - channel 2 receive

4 - channel 3 receive

5 - channel 4 receive

6 - channel 5 receive

7 - undefined

"

END_OBJECT = COLUMN



OBJECT = COLUMN

BYTES = 1

NAME = VALID_LEADING_EDGE_FLAG

DATA_TYPE = MSB_BIT_STRING /* pending */

START_BYTE = 2

DESCRIPTION = "bitfield of RMU range validity tx, 1rx, erx, 2-5rx

"

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 1

NAME = TDC_STATUS_DETECTOR

DATA_TYPE = MSB_BIT_STRING /* pending */

START_BYTE = 3

DESCRIPTION = "LOLA TDC Status 1 or LOTDCSTATUS1SH"

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 1

NAME = PHASE_A_B

DATA_TYPE = MSB_BIT_STRING

START_BYTE = 4

DESCRIPTION = "bitfield of RMU phase,

1=A, 0=B. (igor.kleyner-1@nasa.gov email June 26, 2009 1:01:47 PM EDT)

The bitwise location is

0 - transmit

1 - channel 1 receive

2 - Earth window receive

3 - channel 2 receive

4 - channel 3 receive

5 - channel 4 receive

6 - channel 5 receive

7 - RMU oscillator count subcommutated over the first 26 shots.

first shot is least significant bit."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 1

NAME = TDC_STATUS_LASER_FIRE

DATA_TYPE = MSB_BIT_STRING /* pending */

START_BYTE = 5

DESCRIPTION = "Mnemonic: LOTDCSTATUS2SH."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 1

NAME = TDC_STATUS_EARTH_RX

DATA_TYPE = MSB_BIT_STRING /* pending */

START_BYTE = 6

DESCRIPTION = "Mnemonic: LOTDCSTATUS3SH."

END_OBJECT = COLUMN


/* TX time stamp */

OBJECT = COLUMN

BYTES = 3

NAME = TX_COARSE_TIME_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 7

DESCRIPTION = "B2, B1, B0 of laser fire time coarse clock,

a counter that increments each 200 ns from the shot reference time."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = TX_FINE_TIME_EVENT3_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 10

DESCRIPTION = "B2, B1, B0 of fine time event 3,

a counter that starts at the detected pulse leading edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = TX_FINE_TIME_EVENT2_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

DESCRIPTION = "B2, B1, B0 of fine time event 2,

a counter that starts at the detected pulse trailing edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = TX_FINE_TIME_EVENT1_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 16

DESCRIPTION = "B2, B1, B0 of fine time event 1,

a reference fine time counter, incrementing each 28.15 ps,

that must be added to the coarse time."

END_OBJECT = COLUMN

/* end TX time stamp */


/* RX1 time stamp */

OBJECT = COLUMN

BYTES = 3

NAME = RX1_COARSE_TIME_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 19

DESCRIPTION = "B2, B1, B0 of coarse clock for detector 1,

a counter that increments each 200 ns from the shot reference time."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX1_FINE_TIME_EVENT3_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 22

DESCRIPTION = "B2, B1, B0 of fine time event 3,

a counter that starts at the detected pulse leading edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX1_FINE_TIME_EVENT2_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

DESCRIPTION = "B2, B1, B0 of fine time event 2,

a counter that starts at the detected pulse trailing edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX1_FINE_TIME_EVENT1_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 28

DESCRIPTION = "B2, B1, B0 of fine time event 1,

a reference fine time counter, incrementing each 28.15 ps,

that must be added to the coarse time."

END_OBJECT = COLUMN

/* end RX1 time stamp */


/* RX2 time stamp */

OBJECT = COLUMN

BYTES = 3

NAME = RX2_COARSE_TIME_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 31

DESCRIPTION = "B2, B1, B0 of coarse clock for detector 2,

a counter that increments each 200 ns from the shot reference time."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX2_FINE_TIME_EVENT3_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 34

DESCRIPTION = "B2, B1, B0 of fine time event 3,

a counter that starts at the detected pulse leading edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX2_FINE_TIME_EVENT2_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 37

DESCRIPTION = "B2, B1, B0 of fine time event 2,

a counter that starts at the detected pulse trailing edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX2_FINE_TIME_EVENT1_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 40

DESCRIPTION = "B2, B1, B0 of fine time event 1,

a reference fine time counter, incrementing each 28.15 ps,

that must be added to the coarse time."

END_OBJECT = COLUMN

/* end RX2 time stamp */


/* RX3 time stamp */

OBJECT = COLUMN

BYTES = 3

NAME = RX3_COARSE_TIME_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 43

DESCRIPTION = "B2, B1, B0 of coarse clock for detector 3,

a counter that increments each 200 ns from the shot reference time."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX3_FINE_TIME_EVENT3_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 46

DESCRIPTION = "B2, B1, B0 of fine time event 3,

a counter that starts at the detected pulse leading edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX3_FINE_TIME_EVENT2_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 49

DESCRIPTION = "B2, B1, B0 of fine time event 2,

a counter that starts at the detected pulse trailing edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX3_FINE_TIME_EVENT1_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 52

DESCRIPTION = "B2, B1, B0 of fine time event 1,

a reference fine time counter, incrementing each 28.15 ps,

that must be added to the coarse time."

END_OBJECT = COLUMN

/* end RX3 time stamp */


/* RX4 time stamp */

OBJECT = COLUMN

BYTES = 3

NAME = RX4_COARSE_TIME_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 55

DESCRIPTION = "B2, B1, B0 of coarse clock for detector 4,

a counter that increments each 200 ns from the shot reference time."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX4_FINE_TIME_EVENT3_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 58

DESCRIPTION = "B2, B1, B0 of fine time event 3,

a counter that starts at the detected pulse leading edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX4_FINE_TIME_EVENT2_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 61

DESCRIPTION = "B2, B1, B0 of fine time event 2,

a counter that starts at the detected pulse trailing edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX4_FINE_TIME_EVENT1_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 64

DESCRIPTION = "B2, B1, B0 of fine time event 1,

a reference fine time counter, incrementing each 28.15 ps,

that must be added to the coarse time."

END_OBJECT = COLUMN

/* end RX4 time stamp */


/* RX5 time stamp */

OBJECT = COLUMN

BYTES = 3

NAME = RX5_COARSE_TIME_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 67

DESCRIPTION = "B2, B1, B0 of coarse clock for detector 5,

a counter that increments each 200 ns from the shot reference time."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX5_FINE_TIME_EVENT3_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 70

DESCRIPTION = "B2, B1, B0 of fine time event 3,

a counter that starts at the detected pulse leading edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX5_FINE_TIME_EVENT2_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 73

DESCRIPTION = "B2, B1, B0 of fine time event 2,

a counter that starts at the detected pulse trailing edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = RX5_FINE_TIME_EVENT1_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 76

DESCRIPTION = "B2, B1, B0 of fine time event 1,

a reference fine time counter, incrementing each 28.15 ps,

that must be added to the coarse time."

END_OBJECT = COLUMN

/* end RX5 time stamp */


/* EARTH time stamp */

OBJECT = COLUMN

BYTES = 3

NAME = EARTH_COARSE_TIME_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 79

DESCRIPTION = "B2, B1, B0 of laser fire time coarse clock,

a counter that increments each 200 ns from the shot reference time."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = EARTH_FINE_TIME_EVENT3_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 82

DESCRIPTION = "B2, B1, B0 of fine time event 3,

a counter that starts at the detected pulse leading edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = EARTH_FINE_TIME_EVENT2_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 85

DESCRIPTION = "B2, B1, B0 of fine time event 2,

a counter that starts at the detected pulse trailing edge and

stops at the next coarse clock edge, incrementing each 28.15 ps."

END_OBJECT = COLUMN


OBJECT = COLUMN

BYTES = 3

NAME = EARTH_FINE_TIME_EVENT1_COUNT

ITEMS = 3

ITEM_BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 88

DESCRIPTION = "B2, B1, B0 of fine time event 1,

a reference fine time counter, incrementing each 28.15 ps,

that must be added to the coarse time."

END_OBJECT = COLUMN

/* end EARTH time stamp */


/* five energy counts interleaved with SW timer */


OBJECT = COLUMN

NAME = RX1_ENERGY_COUNT

BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 91

DESCRIPTION = "Energy received from lunar detector 1, from the

leading edge of the detected pulse to the end of the pulse,

converted to counts by a sample-and-hold charge digital converter.

(fJ) y =(.5837x/GAIN1)-.1538, where GAIN1 is GAIN_READ_BACK_1."

END_OBJECT = COLUMN


OBJECT = COLUMN

NAME = SOFTWARE_TIMER

BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 92

DESCRIPTION = "The amount of time the software runs, from the start

of the TRAP interrupt until it finishes all its calculations for

that particular minor frame and writes port 0xBF to signal that it

is finished. The timer has the following format -

Ox00 if sw remained in halt or did not write to Port xBF

during the reported minor frame

OxFF if sw was still running when trap arrived

actual value of the timer (1 bin ~ 200us) in all other cases.

The timer value reported in telemetry for shot N

corresponds to the minor frame N-1."

END_OBJECT = COLUMN


OBJECT = COLUMN

NAME = RX3_ENERGY_COUNT

BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 93

DESCRIPTION = "Energy received from lunar detector 3, from the

leading edge of the detected pulse to the end of the pulse,

converted to counts by a sample-and-hold charge digital converter.

(fJ) y =(.594x/GAIN3)-.142, where GAIN3 is GAIN_READ_BACK_3."

END_OBJECT = COLUMN


OBJECT = COLUMN

NAME = RX2_ENERGY_COUNT

BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 94

DESCRIPTION = "Energy received from lunar detector 2, from the

leading edge of the detected pulse to the end of the pulse,

converted to counts by a sample-and-hold charge digital converter."

(fJ) y =(.6003x/GAIN2)-.1304, where GAIN2 is GAIN_READ_BACK_2."

END_OBJECT = COLUMN


OBJECT = COLUMN

NAME = RX5_ENERGY_COUNT

BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 95

DESCRIPTION = "Energy received from lunar detector 5, from the

leading edge of the detected pulse to the end of the pulse,

converted to counts by a sample-and-hold charge digital converter."

(fJ) y =(.566x/GAIN5)-.1394, where GAIN5 is GAIN_READ_BACK_5."

END_OBJECT = COLUMN


OBJECT = COLUMN

NAME = RX4_ENERGY_COUNT

BYTES = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 96

DESCRIPTION = "Energy received from lunar detector 4, from the

leading edge of the detected pulse to the end of the pulse,

converted to counts by a sample-and-hold charge digital converter."

(fJ) y =(.5742x/GAIN4)-.1452, where GAIN4 is GAIN_READ_BACK_4."

END_OBJECT = COLUMN