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.
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. |
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.
This EDR SIS is intended to be consistent with the following documents:
Planetary Science Data Dictionary Document, JPL D-7116, Rev. E, August 28, 2002.
Lunar Reconnaissance Orbiter Project Data Management and Archive Plan, 431-PLAN-00182.
ISO 9660-1988, Information Processing - Volume and File Structure of CD-ROM for Information Exchange, April 15, 1988.
Planetary Data System Archive Preparation Guide, August 29, 2006, Version 1.1, JPL D-31224.
Planetary Data System Standards Reference, March 20, 2006, Version 3.7, JPL D-7669, Part 2.
LRO LOLA Science Team and PDS Geosciences Node ICD, October 9, 2006.
Lunar Reconnaissance Orbiter Project LOLA Instrument Team Data Management and Archive Plan, April 1, 2007.
LOLA Archive Volume Software Interface Specification, v 2.5, March 15, 2011.
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.
A Standardized Lunar Coordinate System for the Lunar Reconnaissance Orbiter, LRO Project White Paper, 451-SCI-000958, Version 3, January 30, 2008.
Lunar Reconnaissance Orbiter Lunar Orbiter Laser Altimeter Reduced Data Record Software Interface Specification (LOLA RDRSIS), V.2.42, February 28, 2010.
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.
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 |
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 |
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.
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.
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.
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.
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.
LOLA data products comply with Planetary Data System standards for file formats and labels, as described in the PDS Standards Reference, Applicable Document 5.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
The PDS-D query software is designed to extract metadata from catalogs and download specific data products.
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.
/* 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 */
/* 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
/* 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