COLUMN_NUMBER = 15
NAME = scanrange
DATA_TYPE = ASCII_REAL
BYTES = 6
START_BYTE = 147
DESCRIPTION = "AFM scan range."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 16
NAME = scaling_factor
DATA_TYPE = ASCII_REAL
BYTES = 10
START_BYTE = 154
DESCRIPTION = "The scaling factor used to calibrate the data
(converts DNs to micrometers for height data and volts for error
data)"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 17
NAME = AFM_OM_ref_X
DATA_TYPE = ASCII_INTEGER
BYTES = 3
START_BYTE = 165
DESCRIPTION = "The approximate location of the center of the AFM
scan field relative to the OM image. X-coordinate in pixels."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 18
NAME = AFM_OM_ref_Y
DATA_TYPE = ASCII_INTEGER
BYTES = 3
START_BYTE = 169
DESCRIPTION = "The approximate location of the center of the AFM
scan field relative to the OM image. Y-coordinate in pixels."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 19
NAME = X_slope
DATA_TYPE = ASCII_REAL
BYTES = 6
START_BYTE = 173
DESCRIPTION = "Slope correction in the x-direction of the AFM
scan plane."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 20
NAME = Y_slope
DATA_TYPE = ASCII_REAL
BYTES = 6
START_BYTE = 180
DESCRIPTION = "Slope correction in the y-direction of the AFM
scan plane."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 21
NAME = ScanSpeed
DATA_TYPE = ASCII_REAL
BYTES = 4
START_BYTE = 187
DESCRIPTION = "Scan speed of the AFM in micrometers/second"
END_OBJECT = COLUMN
PDS_VERSION_ID = "PDS3"
LABEL_REVISION_NOTE = "2008-02-02, Initial"
/* File characteristics */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 19969
FILE_RECORDS = 2052
/* Pointers to object in file */
^AFM_D_HEADER_TABLE = ("FT000SDD_000_2E0100000000A0.TAB",1)
^AFM_F_ERROR_TABLE = ("FT000SDD_000_2E0100000000A0.TAB",5)
^AFM_F_HEIGHT_TABLE = ("FT000SDD_000_2E0100000000A0.TAB",517)
^AFM_B_ERROR_TABLE = ("FT000SDD_000_2E0100000000A0.TAB",1029)
^AFM_B_HEIGHT_TABLE = ("FT000SDD_000_2E0100000000A0.TAB",1541)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
DESCRIPTION = "UNK"
PRODUCT_ID = "FT000SDD_000_2E0100000000A0_TAB"
PRODUCT_VERSION_ID = "V1.0"
PRODUCT_TYPE = "MECA_AFM_SDD"
RELEASE_ID = 0001
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_HOST_ID = PHX
INSTRUMENT_NAME = "MECA ATOMIC FORCE MICROSCOPE"
INSTRUMENT_ID = "MECA_AFM"
INSTRUMENT_MODE_ID = "SCAN"
MISSION_NAME = "PHOENIX"
OPS_TOKEN = "NULL"
OPS_TOKEN_ACTIVITY = "NULL"
OPS_TOKEN_PAYLOAD = "NULL"
OPS_TOKEN_SEQUENCE = "NULL"
TARGET_NAME = MARS
/* Time information */
MISSION_PHASE_NAME = "PRE-LAUNCH"
SPACECRAFT_CLOCK_START_COUNT = "TEST STRING"
SPACECRAFT_CLOCK_STOP_COUNT = "TEST STRING"
START_TIME = 2008-03-11T11:31:57
STOP_TIME = 2008-03-11T11:31:57
PLANET_DAY_NUMBER = 356
EARTH_RECEIVED_START_TIME = 2008-03-11T11:31:57
EARTH_RECEIVED_STOP_TIME = 2008-03-11T11:31:57
LOCAL_TRUE_SOLAR_TIME = "00:00:00"
PRODUCT_CREATION_TIME = 2008-03-11T11:31:57
/* Data object definition */
OBJECT = AFM_D_HEADER_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 22
ROWS = 4
ROW_BYTES = 193
ROW_SUFFIX_BYTES = 19776
^STRUCTURE = "AFM_D_HEADER.FMT"
DESCRIPTION = "This table contains the AFM scan
parameter information. The table contains
193 bytes of table data followed by 19776
bytes of spare data, of which the last 2
bytes contain the <CR><LF> pair. "
END_OBJECT = AFM_D_HEADER_TABLE
OBJECT = AFM_F_ERROR_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 1536
ROWS = 512
ROW_BYTES = 19969
START_BYTE = 79877
MISSING_CONSTANT = 0.00
DESCRIPTION = "This table contains the AFM scan
forward error derivative information.
Each row represents a scan
line along the fast scan axis"
OBJECT = CONTAINER
BYTES = 39
DESCRIPTION = "The container holds the X-Y-Z
information for each AFM scan error
derivative data point. The table
contains 19969 bytes of table data of
which the last 2 bytes contain the
<CR><LF> pair. "
NAME = "FORWARD ERROR DERIVATIVE"
REPETITIONS = 512
START_BYTE = 1
OBJECT = COLUMN
COLUMN_NUMBER = 1
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "FORWARD ERROR DERIVATIVE X COORDINATE"
START_BYTE = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "FORWARD ERROR DERIVATIVE Y COORDINATE"
START_BYTE = 14
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "FORWARD ERROR DERIVATIVE VALUE"
START_BYTE = 27
END_OBJECT = COLUMN
END_OBJECT = CONTAINER
END_OBJECT = AFM_F_ERROR_TABLE
OBJECT = AFM_F_HEIGHT_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 1536
ROWS = 512
ROW_BYTES = 19969
START_BYTE = 10304005
MISSING_CONSTANT = 0.00
DESCRIPTION = "This table contains the AFM scan
forward Z-height derivative.
Each row represents a scan line along
the fast scan axis"
OBJECT = CONTAINER
BYTES = 39
DESCRIPTION = "The container holds the X-Y-Z
information for each AFM forward
derivative scan data point."
NAME = "FORWARD HEIGHT DERIVATIVE"
REPETITIONS = 512
START_BYTE = 1
OBJECT = COLUMN
COLUMN_NUMBER = 1
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "FORWARD HEIGHT DERIVATIVE X COORDINATE"
START_BYTE = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "FORWARD HEIGHT DERIVATIVE Y COORDINATE"
START_BYTE = 14
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "FORWARD HEIGHT DERIVATIVE VALUE"
START_BYTE = 27
END_OBJECT = COLUMN
END_OBJECT = CONTAINER
END_OBJECT = AFM_F_HEIGHT_TABLE
OBJECT = AFM_B_ERROR_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 1536
ROWS = 512
ROW_BYTES = 19969
START_BYTE = 20528133
MISSING_CONSTANT = 0.00
DESCRIPTION = "This table contains the AFM scan
backward error derivative information
Each row represents a scan line along
the fast scan axis."
OBJECT = CONTAINER
BYTES = 39
DESCRIPTION = "The container holds the X-Y-Z
information for each AFM scan error
derivative data point. The table
contains 19969 bytes of table data
of which the last 2 bytes contain
the <CR><LF> pair."
NAME = "BACKWARD ERROR DERIVATIVE"
REPETITIONS = 512
START_BYTE = 1
OBJECT = COLUMN
COLUMN_NUMBER = 1
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "BACKWARD ERROR DERIVATIVE X COORDINATE"
START_BYTE = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "BACKWARD ERROR DERIVATIVE Y COORDINATE"
START_BYTE = 14
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "BACKWARD ERROR DERIVATIVE VALUE"
START_BYTE = 27
END_OBJECT = COLUMN
END_OBJECT = CONTAINER
END_OBJECT = AFM_B_ERROR_TABLE
OBJECT = AFM_B_HEIGHT_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 1536
ROWS = 512
ROW_BYTES = 19969
START_BYTE = 30752261
MISSING_CONSTANT = 0.00
DESCRIPTION = "This table contains the AFM scan
backward Z-height derivative information.
Each row represents a scan
line along the fast scan axis"
OBJECT = CONTAINER
BYTES = 39
DESCRIPTION = "The container holds the X-Y-Z
information for each AFM backward
scan Z-height derivative
data point."
NAME = "BACKWARD HEIGHT DERIVATIVE"
REPETITIONS = 512
START_BYTE = 1
OBJECT = COLUMN
COLUMN_NUMBER = 1
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "BACKWARD HEIGHT DERIVATIVE X COORDINATE"
START_BYTE = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "BACKWARD HEIGHT DERIVATIVE Y COORDINATE"
START_BYTE = 14
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
BYTES = 12
DATA_TYPE = ASCII_REAL
NAME = "BACKWARD HEIGHT DERIVATIVE VALUE"
START_BYTE = 27
END_OBJECT = COLUMN
END_OBJECT = CONTAINER
END_OBJECT = AFM_B_HEIGHT_TABLE
END
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = cmdTimewhole
DATA_TYPE = ASCII_INTEGER
BYTES = 9
START_BYTE = 1
UNIT = SECONDS
DESCRIPTION = "This is the time that the command was issued from
the spacecraft computer to the MECA subsystem across the serial
interface. Units are seconds of Spacecraft Clock (SCLK)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = cmdTimeremainder
DATA_TYPE = ASCII_INTEGER
BYTES = 10
START_BYTE = 11
UNIT = "SECONDS/2**32"
DESCRIPTION = "The remainder, where 2^32 is a full second."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = readTimewhole
DATA_TYPE = ASCII_INTEGER
BYTES = 9
START_BYTE = 22
UNIT = SECONDS
DESCRIPTION = "This is the time that the data was returned to
the spacecraft computer across the serial interface from the MECA
subsystem (not used for some telemetry types). Units are seconds
of Spacecraft Clock (SCLK)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = readTimeremainder
DATA_TYPE = ASCII_INTEGER
BYTES = 10
START_BYTE = 32
UNIT = "SECONDS/2**32"
DESCRIPTION = "The remainder, where 2^32 is a full second."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = dataLength
DATA_TYPE = ASCII_INTEGER
BYTES = 6
START_BYTE = 43
UNIT = BYTES
DESCRIPTION = "The length of the following record (and all
records in this product), not including this header."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = cols
DATA_TYPE = ASCII_INTEGER
BYTES = 3
START_BYTE = 50
UNIT = POINTS
DESCRIPTION = "The width (number of points per line) of the AFM image."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = lines
DATA_TYPE = ASCII_INTEGER
BYTES = 3
START_BYTE = 54
UNIT = LINES
DESCRIPTION = "The height (number of lines) of the AFM image."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = direction
DATA_TYPE = ASCII_INTEGER
BYTES = 1
START_BYTE = 58
DESCRIPTION = "The scan direction, 1 = forward, 2 = backward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = channel
DATA_TYPE = ASCII_INTEGER
BYTES = 1
START_BYTE = 60
DESCRIPTION = "The RDR data channel, 1= error, 2= z-height."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 10
NAME = channelGain
DATA_TYPE = ASCII_INTEGER
BYTES = 1
START_BYTE = 62
DESCRIPTION = "Ranges form 0 to 8, with 0=full (13.8 microns),
and reducing by factors of 2 each time, e.g. gain of
2 = 3.45 microns."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 11
NAME = refOMimage
DATA_TYPE = CHARACTER
BYTES = 33
START_BYTE = 64
DESCRIPTION = "File name of the Optical Microscope image
taken before the scan for sample context."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 12
NAME = refOMimage2
DATA_TYPE = CHARACTER
BYTES = 33
START_BYTE = 98
DESCRIPTION = "Filename of the OM image taken after the scan"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 13
NAME = opsToken
DATA_TYPE = ASCII_INTEGER
BYTES = 8
START_BYTE = 132
DESCRIPTION = "Ops Token for this scan."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 14
NAME = SwtsTemperature
DATA_TYPE = ASCII_INTEGER
BYTES = 5
START_BYTE = 141
UNIT = KELVIN
DESCRIPTION = "Temperature of the SWTS just prior to the scan."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 15
NAME = scanrange
DATA_TYPE = ASCII_REAL
BYTES = 6
START_BYTE = 147
DESCRIPTION = "AFM scan range."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 16
NAME = smoothing_factor
DATA_TYPE = ASCII_INTEGER
BYTES = 2
START_BYTE = 154
DESCRIPTION = "Number of points used in derivative filter."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 17
NAME = AFM_OM_ref_X
DATA_TYPE = ASCII_INTEGER
BYTES = 3
START_BYTE = 157
DESCRIPTION = "The approximate location of the center of the
AFM scan field relative to the OM image. X-coordinate in pixels."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 18
NAME = AFM_OM_ref_Y
DATA_TYPE = ASCII_INTEGER
BYTES = 3
START_BYTE = 161
DESCRIPTION = "The approximate location of the center of the
AFM scan field relative to the OM image. Y-coordinate in pixels."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 19
NAME = X_slope
DATA_TYPE = ASCII_REAL
BYTES = 6
START_BYTE = 165
DESCRIPTION = "The x-slope of the substrate relative to
the x-y scanner."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 20
NAME = Y_slope
DATA_TYPE = ASCII_REAL
BYTES = 6
START_BYTE = 172
DESCRIPTION = "The y-slope of the substrate relative to
the x-y scanner."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 21
NAME = ScanSpeed
DATA_TYPE = ASCII_REAL
BYTES = 4
START_BYTE = 179
DESCRIPTION = "The y-slope of the substrate relative to
the x-y scanner."
END_OBJECT = COLUMN
PDS_VERSION_ID = PDS3
DD_VERSION_ID = PDSCAT1R68
LABEL_REVISION_NOTE = "2008-02-20, MECA AMF TEAM, initial
release;"
RECORD_TYPE = STREAM
/* IDENTIFICATION DATA ELEMENTS */
RELEASE_ID = "0001"
OPS_TOKEN = 16#40406720#
/* DESCRIPTIVE DATA ELEMENTS */
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_NAME = "MECA"
SPACECRAFT_ID = PHX
TARGET_NAME = MARS
MISSION_PHASE_NAME = "PRIMARY MISSION"
START_TIME = 2008-05-01T14:14:32.890
STOP_TIME = 2008-05-01T20:09:44.149
SPACECRAFT_CLOCK_START_COUNT = "208023626065"
SPACECRAFT_CLOCK_STOP_COUNT = "208035731925"
OBJECT = TEXT
NOTE = "2007 Mars Phoenix MECA AFM Report Sol 1"
PUBLICATION_DATE = 2008-05-01
END_OBJECT = TEXT
END
2007 Mars Phoenix MECA AFM Scan Report Sol 1
Each report will contain the documentation of each days
activities on the surface of Mars or a report of the planning
activities back on Earth.
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-01-30, Initial"
/* File characteristics */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 199
FILE_RECORDS = 222
/* Pointers to object in file */
^TECP_GEN_COMMENTS_TABLE = ("PT018EC__01______ABABABABT0.TAB",1)
^TECP_EC_COMMENTS_TABLE = ("PT018EC__01______ABABABABT0.TAB",6)
^TECP_CONVERSIONS_TABLE = ("PT018EC__01______ABABABABT0.TAB",11)
^TECP_EC_PC_TABLE = ("PT018EC__01______ABABABABT0.TAB",19)
^TECP_EC_RM_TABLE = ("PT018EC__01______ABABABABT0.TAB",22)
^TECP_EC_TABLE = ("PT018EC__01______ABABABABT0.TAB",40)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "TEST STRING"
PRODUCT_TYPE = "MECA_TECP_EC"
PRODUCT_VERSION_ID = "V1.0"
RELEASE_ID = 0001
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_HOST_ID = PHX
INSTRUMENT_NAME = "MECA THERMAL AND ELECTRICAL CONDUCTIVITY PROBE"
INSTRUMENT_ID = "MECA_TECP"
INSTRUMENT_MODE_ID = "SCAN"
MISSION_NAME = "PHOENIX"
TARGET_NAME = MARS
OPS_TOKEN = "NULL"
OPS_TOKEN_ACTIVITY = "NULL"
OPS_TOKEN_PAYLOAD = "NULL"
OPS_TOKEN_SEQUENCE = "NULL"
/* Time information */
MISSION_PHASE_NAME = "PRE-LAUNCH"
SPACECRAFT_CLOCK_START_COUNT = "TEST STRING"
SPACECRAFT_CLOCK_STOP_COUNT = "TEST STRING"
START_TIME = 2008-03-13T16:09:44
STOP_TIME = 2008-03-13T16:09:44
PLANET_DAY_NUMBER = 356
PRODUCT_CREATION_TIME = 2008-03-13T16:09:44
LOCAL_TRUE_SOLAR_TIME = "00:00:00"
/* Data object definition */
OBJECT = TECP_GEN_COMMENTS_TABLE
COLUMNS = 1
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 199
ROWS = 5
DESCRIPTION = "General comments pertaining to this TECP
dataset (all four RDRs)."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "GEN_COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 195
DESCRIPTION = "General comments pertaining to this TECP
dataset (all four RDRs)."
END_OBJECT = COLUMN
END_OBJECT = TECP_GEN_COMMENTS_TABLE
OBJECT = TECP_EC_COMMENTS_TABLE
COLUMNS = 1
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 199
ROWS = 5
DESCRIPTION = "Comments pertaining to this EC RDR"
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EC_COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 195
DESCRIPTION = "Comments pertaining to this EC RDR."
END_OBJECT = COLUMN
END_OBJECT = TECP_EC_COMMENTS_TABLE
OBJECT = TECP_CONVERSIONS_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 86
ROW_SUFFIX_BYTES = 113
ROWS = 8
DESCRIPTION = "Equations used to convert DNs to physical
units for EC data. There are 86 bytes of
data followed by 113 spare bytes, the
last two of which are the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EQUATION_NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 25
DESCRIPTION = "Name of the equation to be calculated
with physical units."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "EQUATION"
DATA_TYPE = CHARACTER
START_BYTE = 30
BYTES = 56
DESCRIPTION = "Equation to be calculated or
DN range information"
END_OBJECT = COLUMN
END_OBJECT = TECP_CONVERSIONS_TABLE
OBJECT = TECP_EC_PC_TABLE
COLUMNS = 4
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 41
ROW_SUFFIX_BYTES = 158
ROWS = 3
DESCRIPTION = "apc, bpc, and cpc are constants
used in the pc equation found in the
conversions table."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "GAIN_SETTING"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 9
DESCRIPTION = "Use the appropriate variables for the
appropriate gain setting in calculation
of pc."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "apc"
DATA_TYPE = ASCII_REAL
START_BYTE = 13
BYTES = 9
DESCRIPTION = "apc variable."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "bpc"
DATA_TYPE = ASCII_REAL
START_BYTE = 23
BYTES = 9
DESCRIPTION = "bpc variable"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "cpc"
DATA_TYPE = ASCII_REAL
START_BYTE = 33
BYTES = 9
DESCRIPTION = "cpc variable."
END_OBJECT = COLUMN
END_OBJECT = TECP_EC_PC_TABLE
OBJECT = TECP_EC_RM_TABLE
COLUMNS = 7
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 70
ROW_SUFFIX_BYTES = 129
ROWS = 18
DESCRIPTION = "Constants to caclulate the Resistance
of the medium (Rm) for a given needle
temperature. There are 70 bytes of
data followed by 129 spare bytes, the
last two of which are the <CR> and
<LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 4
DESCRIPTION = "Name of coefficient set."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "TEMPERATURE"
UNITS = "Kelvin"
DATA_TYPE = ASCII_REAL
START_BYTE = 8
BYTES = 3
DESCRIPTION = "Needle temperature corresponding to the
coefficients on this row."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "a"
DATA_TYPE = ASCII_REAL
START_BYTE = 12
BYTES = 11
DESCRIPTION = "Coefficient a in Rm equation."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "b"
DATA_TYPE = ASCII_REAL
START_BYTE = 24
BYTES = 11
DESCRIPTION = "Coefficient b in Rm equation."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "c"
DATA_TYPE = ASCII_REAL
START_BYTE = 36
BYTES = 11
DESCRIPTION = "Coefficient c in Rm equation."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "d"
DATA_TYPE = ASCII_REAL
START_BYTE = 48
BYTES = 11
DESCRIPTION = "Coefficient d in Rm equation."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "e"
DATA_TYPE = ASCII_REAL
START_BYTE = 60
BYTES = 11
DESCRIPTION = "Coefficient e in Rm equation."
END_OBJECT = COLUMN
END_OBJECT = TECP_EC_RM_TABLE
OBJECT = TECP_EC_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 13
ROWS = 183
ROW_BYTES = 199
DESCRIPTION = "Time-series TECP electrical conductivity
data converted to physical units."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 14
DESCRIPTION = "Read time of measurements in seconds."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "TIP_POS_R_PF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 16
BYTES = 6
DESCRIPTION = "Radial coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "TIP_POS_THETA_PF"
UNIT = "degrees"
DATA_TYPE = ASCII_REAL
START_BYTE = 23
BYTES = 7
DESCRIPTION = "Azimuthal coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates, measured clockwise (as viewed
from above) from the +x-axis."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "TIP_POS_Z_PF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 31
BYTES = 6
DESCRIPTION = "Vertical coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates, measured positive downward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "ANGLE_TECP_RA"
UNIT = "degrees"
DATA_TYPE = ASCII_REAL
START_BYTE = 38
BYTES = 7
DESCRIPTION = "Angle of TECP long axis (+z axis in TECP
frame) relative to a vector that is parallel
to the RA forearm and pointing away from the
lander. This angle is measured clockwise as
viewed from the TECP side of the RA wrist
joint."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "TIP_POS_X_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 46
BYTES = 6
DESCRIPTION = "X coordinate of the TECP needle tips centroid
in the Local Level Frame."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "TIP_POS_Y_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 53
BYTES = 6
DESCRIPTION = "Y coordinate of the TECP needle tips centroid
in the Local Level Frame."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = "TIP_POS_Z_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 60
BYTES = 6
DESCRIPTION = "Z coordinate of the TECP needle tips centroid
in the Local Level Frame, measured positive
downward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = "ANGLE_TECP_Z_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 67
BYTES = 6
DESCRIPTION = "Angle of TECP long axis (+z axis in TECP frame)
relative to the positive z-axis of the Local
Level Frame (parallel to gravity vector)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 10
NAME = "TEMP_BOARD"
UNIT = "Kelvin"
DATA_TYPE = ASCII_REAL
START_BYTE = 75
BYTES = 6
DESCRIPTION = "Temperature of the TECP electronics board."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 11
NAME = "ELECTRICAL_CONDUCTIVITY"
UNITS = "microsiemens/cm"
DATA_TYPE = ASCII_REAL
START_BYTE = 82
BYTES = 9
DESCRIPTION = "Electrical Conductivity"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 12
NAME = "EC_GAIN_SETTING"
DATA_TYPE = CHARACTER
START_BYTE = 93
BYTES = 1
DESCRIPTION = "Gain setting for electrical conductivity
measurement, H, M, L."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 13
NAME = "COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 97
BYTES = 100
DESCRIPTION = "Terse comment about measurement."
END_OBJECT = COLUMN
END_OBJECT = TECP_EC_TABLE
END
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-01-30, Initial"
/* File characteristics */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 201
FILE_RECORDS = 199
/* Pointers to object in file */
^TECP_GEN_COMMENTS_TABLE = ("PT018HUM_01______ABABABABT0.TAB",1)
^TECP_HUM_COMMENTS_TABLE = ("PT018HUM_01______ABABABABT0.TAB",6)
^TECP_CONVERSIONS_TABLE = ("PT018HUM_01______ABABABABT0.TAB",11)
^TECP_HUM_TABLE = ("PT018HUM_01______ABABABABT0.TAB",18)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "PT018TC__01_ABABABABT0"
PRODUCT_TYPE = "MECA_TECP_HUM"
PRODUCT_VERSION_ID = "V1.0"
RELEASE_ID = 0001
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_HOST_ID = PHX
INSTRUMENT_NAME = "MECA THERMAL AND ELECTRICAL CONDUCTIVITY PROBE"
INSTRUMENT_ID = "MECA_TECP"
INSTRUMENT_MODE_ID = "SCAN"
MISSION_NAME = "PHOENIX"
TARGET_NAME = MARS
OPS_TOKEN = "NULL"
OPS_TOKEN_ACTIVITY = "NULL"
OPS_TOKEN_PAYLOAD = "NULL"
OPS_TOKEN_SEQUENCE = "NULL"
/* Time information */
MISSION_PHASE_NAME = "PRE-LAUNCH"
SPACECRAFT_CLOCK_START_COUNT = "TEST STRING"
SPACECRAFT_CLOCK_STOP_COUNT = "TEST STRING"
START_TIME = 2008-03-13T14:21:56
STOP_TIME = 2008-03-13T14:21:56
PLANET_DAY_NUMBER = 356
PRODUCT_CREATION_TIME = 2008-03-13T14:21:56
LOCAL_TRUE_SOLAR_TIME = "00:00:00"
/* Data object definition */
OBJECT = TECP_GEN_COMMENTS_TABLE
COLUMNS = 1
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 201
ROWS = 5
DESCRIPTION = "General comments pertaining to this TECP
dataset (all four RDRs)."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "GEN_COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 197
DESCRIPTION = "General comments pertaining to this TECP
dataset (all four RDRs)."
END_OBJECT = COLUMN
END_OBJECT = TECP_GEN_COMMENTS_TABLE
OBJECT = TECP_HUM_COMMENTS_TABLE
COLUMNS = 1
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 201
ROWS = 5
DESCRIPTION = "Comments pertaining to this HUM RDR"
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "HUM_COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 197
DESCRIPTION = "Comments pertaining to this HUM RDR."
END_OBJECT = COLUMN
END_OBJECT = TECP_HUM_COMMENTS_TABLE
OBJECT = TECP_CONVERSIONS_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 68
ROW_SUFFIX_BYTES = 133
ROWS = 7
DESCRIPTION = "Equations used to convert DNs to physical
units for HUM data. There are 68 bytes of
data followed by 133 spare bytes, the
last two of which are the <CR><LF>
characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EQUATION_NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 17
DESCRIPTION = "Name of the equation to be calculated
with physical units."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "EQUATION"
DATA_TYPE = CHARACTER
START_BYTE = 22
BYTES = 46
DESCRIPTION = "Equation to be calculated."
END_OBJECT = COLUMN
END_OBJECT = TECP_CONVERSIONS_TABLE
OBJECT = TECP_HUM_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 13
ROWS = 182
ROW_BYTES = 201
DESCRIPTION = "Time-series TECP needle temperature data
converted to physical units."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 14
DESCRIPTION = "Read time of measurements in seconds."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "TIP_POS_R_PF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 16
BYTES = 6
DESCRIPTION = "Radial coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "TIP_POS_THETA_PF"
UNIT = "degrees"
DATA_TYPE = ASCII_REAL
START_BYTE = 23
BYTES = 7
DESCRIPTION = "Azimuthal coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates, measured clockwise (as viewed
from above) from the +x-axis."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "TIP_POS_Z_PF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 31
BYTES = 6
DESCRIPTION = "Vertical coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates, measured positive downward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "ANGLE_TECP_RA"
UNIT = "degrees"
DATA_TYPE = ASCII_REAL
START_BYTE = 38
BYTES = 7
DESCRIPTION = "Angle of TECP long axis (+z axis in TECP
frame) relative to a vector that is parallel
to the RA forearm and pointing away from the
lander. This angle is measured clockwise as
viewed from the TECP side of the RA wrist
joint."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "TIP_POS_X_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 46
BYTES = 6
DESCRIPTION = "X coordinate of the TECP needle tips centroid
in the Local Level Frame."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "TIP_POS_Y_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 53
BYTES = 6
DESCRIPTION = "Y coordinate of the TECP needle tips centroid
in the Local Level Frame."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = "TIP_POS_Z_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 60
BYTES = 6
DESCRIPTION = "Z coordinate of the TECP needle tips centroid
in the Local Level Frame, measured positive
downward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = "ANGLE_TECP_Z_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 67
BYTES = 6
DESCRIPTION = "Angle of TECP long axis (+z axis in TECP frame)
relative to the positive z-axis of the Local
Level Frame (parallel to gravity vector)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 10
NAME = "TEMP_BOARD"
UNIT = "Kelvin"
DATA_TYPE = ASCII_REAL
START_BYTE = 75
BYTES = 6
DESCRIPTION = "Temperature of the TECP electronics board."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 11
NAME = "RELATIVE_HUMIDITY"
DATA_TYPE = ASCII_REAL
START_BYTE = 82
BYTES = 5
DESCRIPTION = "Relative humidity of the air in contact with the
sensor on the TECP electronics board, with
respect to saturation over ice."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 12
NAME = "VAPOR_PRESSURE"
UNIT = "Pascal"
DATA_TYPE = ASCII_REAL
START_BYTE = 88
BYTES = 9
DESCRIPTION = "Water vapor pressure corresponding to the measured
RH and board temperature. "
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 13
NAME = "COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 99
BYTES = 100
DESCRIPTION = "Terse comment about measurement."
END_OBJECT = COLUMN
END_OBJECT = TECP_HUM_TABLE
END
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-01-30, Initial"
/* File characteristics */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 192
FILE_RECORDS = 43
/* Pointers to object in file */
^TECP_GEN_COMMENTS_TABLE = ("PT018PRM_01______ABABABABT0.TAB",1)
^TECP_PRM_COMMENTS_TABLE = ("PT018PRM_01______ABABABABT0.TAB",6)
^TECP_CONVERSIONS_TABLE = ("PT018PRM_01______ABABABABT0.TAB",11)
^TECP_PRM_TABLE = ("PT018PRM_01______ABABABABT0.TAB",13)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "TEST STRING"
PRODUCT_TYPE = "MECA_TECP_PRM"
PRODUCT_VERSION_ID = "V1.0"
RELEASE_ID = 0001
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_HOST_ID = PHX
INSTRUMENT_NAME = "MECA THERMAL AND ELECTRICAL CONDUCTIVITY PROBE"
INSTRUMENT_ID = "MECA_TECP"
INSTRUMENT_MODE_ID = "SCAN"
MISSION_NAME = "PHOENIX"
TARGET_NAME = MARS
OPS_TOKEN = "NULL"
OPS_TOKEN_ACTIVITY = "NULL"
OPS_TOKEN_PAYLOAD = "NULL"
OPS_TOKEN_SEQUENCE = "NULL"
/* Time information */
MISSION_PHASE_NAME = "PRE-LAUNCH"
SPACECRAFT_CLOCK_START_COUNT = "TEST STRING"
SPACECRAFT_CLOCK_STOP_COUNT = "TEST STRING"
START_TIME = 2008-03-13T16:09:44
STOP_TIME = 2008-03-13T16:09:44
PLANET_DAY_NUMBER = 356
PRODUCT_CREATION_TIME = 2008-03-13T16:09:44
LOCAL_TRUE_SOLAR_TIME = "00:00:00"
/* Data object definition */
OBJECT = TECP_GEN_COMMENTS_TABLE
COLUMNS = 1
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 192
ROWS = 5
DESCRIPTION = "General comments pertaining to this TECP
dataset (all four RDRs)."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "GEN_COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 188
DESCRIPTION = "General comments pertaining to this TECP
dataset (all four RDRs)."
END_OBJECT = COLUMN
END_OBJECT = TECP_GEN_COMMENTS_TABLE
OBJECT = TECP_PRM_COMMENTS_TABLE
COLUMNS = 1
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 192
ROWS = 5
DESCRIPTION = "Comments pertaining to this PRM RDR"
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "PRM_COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 188
DESCRIPTION = "Comments pertaining to this PRM RDR."
END_OBJECT = COLUMN
END_OBJECT = TECP_PRM_COMMENTS_TABLE
OBJECT = TECP_CONVERSIONS_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 79
ROW_SUFFIX_BYTES = 113
ROWS = 2
DESCRIPTION = "Equations used to convert DNs to physical
units for PRM data. There are 79 bytes of
data followed by 113 spare bytes, the
last two of which are the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EQUATION_NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 21
DESCRIPTION = "Name of the equation to be calculated
with physical units."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "EQUATION"
DATA_TYPE = CHARACTER
START_BYTE = 26
BYTES = 53
DESCRIPTION = "Equation to be calculated or
DN range information"
END_OBJECT = COLUMN
END_OBJECT = TECP_CONVERSIONS_TABLE
OBJECT = TECP_PRM_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 12
ROWS = 31
ROW_BYTES = 192
DESCRIPTION = "Time-series TECP relative permittivity
data converted to physical units."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 14
DESCRIPTION = "Read time of measurements in seconds."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "TIP_POS_R_PF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 16
BYTES = 6
DESCRIPTION = "Radial coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "TIP_POS_THETA_PF"
UNIT = "degrees"
DATA_TYPE = ASCII_REAL
START_BYTE = 23
BYTES = 7
DESCRIPTION = "Azimuthal coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates, measured clockwise (as viewed
from above) from the +x-axis."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "TIP_POS_Z_PF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 31
BYTES = 6
DESCRIPTION = "Vertical coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates, measured positive downward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "ANGLE_TECP_RA"
UNIT = "degrees"
DATA_TYPE = ASCII_REAL
START_BYTE = 38
BYTES = 7
DESCRIPTION = "Angle of TECP long axis (+z axis in TECP
frame) relative to a vector that is parallel
to the RA forearm and pointing away from the
lander. This angle is measured clockwise as
viewed from the TECP side of the RA wrist
joint."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "TIP_POS_X_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 46
BYTES = 6
DESCRIPTION = "X coordinate of the TECP needle tips centroid
in the Local Level Frame."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "TIP_POS_Y_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 53
BYTES = 6
DESCRIPTION = "Y coordinate of the TECP needle tips centroid
in the Local Level Frame."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = "TIP_POS_Z_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 60
BYTES = 6
DESCRIPTION = "Z coordinate of the TECP needle tips centroid
in the Local Level Frame, measured positive
downward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = "ANGLE_TECP_Z_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 67
BYTES = 6
DESCRIPTION = "Angle of TECP long axis (+z axis in TECP frame)
relative to the positive z-axis of the Local
Level Frame (parallel to gravity vector)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 10
NAME = "TEMP_BOARD"
UNIT = "Kelvin"
DATA_TYPE = ASCII_REAL
START_BYTE = 75
BYTES = 6
DESCRIPTION = "Temperature of the TECP electronics board."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 11
NAME = "RELATIVE_PERMITTIVITY"
DATA_TYPE = ASCII_REAL
START_BYTE = 82
BYTES = 6
DESCRIPTION = "Relative permittivity at the measurement
frequency of 6.25 MHz."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 12
NAME = "COMMENT"
DATA_TYPE = ASCII_REAL
START_BYTE = 90
BYTES = 100
DESCRIPTION = "Terse comment about PRM data."
END_OBJECT = COLUMN
END_OBJECT = TECP_PRM_TABLE
END
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-01-30, Initial"
/* File characteristics */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 218
FILE_RECORDS = 569
/* Pointers to object in file */
^TECP_GEN_COMMENTS_TABLE = ("PT018TC__01______ABABABABT0.TAB",1)
^TECP_TC_COMMENTS_TABLE = ("PT018TC__01______ABABABABT0.TAB",6)
^TECP_CONVERSIONS_TABLE = ("PT018TC__01______ABABABABT0.TAB",11)
^TECP_TC_TABLE = ("PT018TC__01______ABABABABT0.TAB",18)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "PT018TC__01_ABABABABT0"
PRODUCT_TYPE = "MECA_TECP_TC"
PRODUCT_VERSION_ID = "V1.0"
RELEASE_ID = 0001
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_HOST_ID = PHX
INSTRUMENT_NAME = "MECA THERMAL AND ELECTRICAL CONDUCTIVITY PROBE"
INSTRUMENT_ID = "MECA_TECP"
INSTRUMENT_MODE_ID = "SCAN"
MISSION_NAME = "PHOENIX"
TARGET_NAME = MARS
OPS_TOKEN = "NULL"
OPS_TOKEN_ACTIVITY = "NULL"
OPS_TOKEN_PAYLOAD = "NULL"
OPS_TOKEN_SEQUENCE = "NULL"
/* Time information */
MISSION_PHASE_NAME = "PRE-LAUNCH"
SPACECRAFT_CLOCK_START_COUNT = "TEST STRING"
SPACECRAFT_CLOCK_STOP_COUNT = "TEST STRING"
START_TIME = 2008-03-13T14:21:56
STOP_TIME = 2008-03-13T14:21:56
PLANET_DAY_NUMBER = 356
PRODUCT_CREATION_TIME = 2008-03-13T14:21:56
LOCAL_TRUE_SOLAR_TIME = "00:00:00"
/* Data object definition */
OBJECT = TECP_GEN_COMMENTS_TABLE
COLUMNS = 1
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 218
ROWS = 5
DESCRIPTION = "General comments pertaining to this TECP
dataset (all four RDRs)."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "GEN_COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 214
DESCRIPTION = "General comments pertaining to this TECP
dataset (all four RDRs)."
END_OBJECT = COLUMN
END_OBJECT = TECP_GEN_COMMENTS_TABLE
OBJECT = TECP_TC_COMMENTS_TABLE
COLUMNS = 1
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 218
ROWS = 5
DESCRIPTION = "Comments pertaining to this TC RDR"
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TC_COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 214
DESCRIPTION = "Comments pertaining to this TC RDR."
END_OBJECT = COLUMN
END_OBJECT = TECP_TC_COMMENTS_TABLE
OBJECT = TECP_CONVERSIONS_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 84
ROW_SUFFIX_BYTES = 134
ROWS = 7
DESCRIPTION = "Equations used to convert DNs to physical
units for TC data. There are 84 bytes of
data followed by 134 spare bytes, the
last two of which are the <CR><LF>
characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EQUATION_NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 14
DESCRIPTION = "Name of the equation to be calculated
with physical units."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "EQUATION"
DATA_TYPE = CHARACTER
START_BYTE = 19
BYTES = 65
DESCRIPTION = "Equation to be calculated."
END_OBJECT = COLUMN
END_OBJECT = TECP_CONVERSIONS_TABLE
OBJECT = TECP_TC_TABLE
INTERCHANGE_FORMAT = ASCII
COLUMNS = 16
ROWS = 552
ROW_BYTES = 218
DESCRIPTION = "Time-series TECP needle temperature data
converted to physical units."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 14
DESCRIPTION = "Read time of measurements in seconds."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "TIP_POS_R_PF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 16
BYTES = 6
DESCRIPTION = "Radial coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "TIP_POS_THETA_PF"
UNIT = "degrees"
DATA_TYPE = ASCII_REAL
START_BYTE = 23
BYTES = 7
DESCRIPTION = "Azimuthal coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates, measured clockwise (as viewed
from above) from the +x-axis."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "TIP_POS_Z_PF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 31
BYTES = 6
DESCRIPTION = "Vertical coordinate of TECP needle tips
centroid in Payload Frame cylindrical
coordinates, measured positive downward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "ANGLE_TECP_RA"
UNIT = "degrees"
DATA_TYPE = ASCII_REAL
START_BYTE = 38
BYTES = 7
DESCRIPTION = "Angle of TECP long axis (+z axis in TECP
frame) relative to a vector that is parallel
to the RA forearm and pointing away from the
lander. This angle is measured clockwise as
viewed from the TECP side of the RA wrist
joint."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "TIP_POS_X_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 46
BYTES = 6
DESCRIPTION = "X coordinate of the TECP needle tips centroid
in the Local Level Frame."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "TIP_POS_Y_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 53
BYTES = 6
DESCRIPTION = "Y coordinate of the TECP needle tips centroid
in the Local Level Frame."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = "TIP_POS_Z_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 60
BYTES = 6
DESCRIPTION = "Z coordinate of the TECP needle tips centroid
in the Local Level Frame, measured positive
downward."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = "ANGLE_TECP_Z_LLF"
UNIT = "meters"
DATA_TYPE = ASCII_REAL
START_BYTE = 67
BYTES = 6
DESCRIPTION = "Angle of TECP long axis (+z axis in TECP frame)
relative to the positive z-axis of the Local
Level Frame (parallel to gravity vector)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 10
NAME = "TEMP_BOARD"
UNIT = "Kelvin"
DATA_TYPE = ASCII_REAL
START_BYTE = 75
BYTES = 6
DESCRIPTION = "Temperature of the TECP electronics board."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 11
NAME = "TEMP_NEEDLE_1"
UNIT = "Kelvin"
DATA_TYPE = ASCII_REAL
START_BYTE = 82
BYTES = 7
DESCRIPTION = "Temperature of needle 1."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 12
NAME = "TEMP_NEEDLE_2"
UNIT = "Kelvin"
DATA_TYPE = ASCII_REAL
START_BYTE = 90
BYTES = 7
DESCRIPTION = "Temperature of needle 2."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 13
NAME = "TEMP_NEEDLE_4"
UNIT = "Kelvin"
DATA_TYPE = ASCII_REAL
START_BYTE = 98
BYTES = 7
DESCRIPTION = "Temperature of needle 4."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 14
NAME = "HEATER_CURRENT"
UNIT = "mA"
DATA_TYPE = ASCII_REAL
START_BYTE = 106
BYTES = 6
DESCRIPTION = "Electrical current through needle heating
resistor when 2.5 V DC power is applied."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 15
NAME = "NEEDLE_HEATED"
DATA_TYPE = ASCII_INTEGER
START_BYTE = 113
BYTES = 1
MISSING_CONSTANT = 0
DESCRIPTION = "Numeric label of the needle currently
selected
for heating 1, 2, or 4."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 16
NAME = "COMMENT"
DATA_TYPE = CHARACTER
START_BYTE = 116
BYTES = 100
DESCRIPTION = "Terse comment about measurement."
END_OBJECT = COLUMN
END_OBJECT = TECP_TC_TABLE
END
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-04-14, Initial"
/* File Characteristics */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 198
FILE_RECORDS = 11788
/*Pointers to Data Objects */
^WCL_HEADER_TABLE = ("ws030c0ise__00___13690000w0.tab",2)
^WCL_EVENT_TABLE = ("ws030c0ise__00___13690000w0.tab",17)
^WCL_DATA_HEADER_TABLE = ("ws030c0ise__00___13690000w0.tab",28)
^WCL_DATA_TABLE = ("ws030c0ise__00___13690000w0.tab",31)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "WS030C0ISE__00___13690000W0"
PRODUCT_VERSION_ID = "V1.0"
PRODUCT_TYPE = "MECA_WCL_ISE"
RELEASE_ID = "0001"
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_NAME = "MECA WET CHEMISTRY LABORATORY"
INSTRUMENT_HOST_ID = PHX
TARGET_NAME = "MARS"
INSTRUMENT_ID = "MECA_WCL"
INSTRUMENT_MODE_ID = "ISES"
MISSION_NAME = "PHOENIX"
OPS_TOKEN = 16#13690000#
OPS_TOKEN_ACTIVITY = 16#00001369#
OPS_TOKEN_PAYLOAD = 16#00000000#
OPS_TOKEN_COMMAND = 16#00000000#
/* Time information */
MISSION_PHASE_NAME = "PRIMARY MISSION"
SPACECRAFT_CLOCK_START_COUNT = "898866772.185"
SPACECRAFT_CLOCK_STOP_COUNT = "898892845.592"
START_TIME = 2008-06-25T13:11:41.283
STOP_TIME = 2008-06-25T20:26:15.818
EARTH_RECEIVED_START_TIME = "UNK"
EARTH_RECEIVED_STOP_TIME = "UNK"
PLANET_DAY_NUMBER = 30
LOCAL_TRUE_SOLAR_TIME = "10:34:19"
PRODUCT_CREATION_TIME = 2008-12-19T23:59:03.025
/* Data Object Definitions */
OBJECT = WCL_HEADER_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 93
ROWS = 13
ROW_SUFFIX_BYTES = 105
DESCRIPTION = "Two column ISE header table with 93 bytes of
data followed by 105 spare bytes, the last
two of which are the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "HEADER FIELD NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 25
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "HEADER FIELD VALUE"
DATA_TYPE = CHARACTER
START_BYTE = 30
BYTES = 60
END_OBJECT = COLUMN
END_OBJECT = WCL_HEADER_TABLE
OBJECT = WCL_EVENT_TABLE
COLUMNS = 3
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 149
ROW_SUFFIX_BYTES = 49
ROWS = 9
DESCRIPTION = "Three column ISE events table with 149 bytes
of data followed by 49 spare bytes, the last
two of which are the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EVENT_NAME"
DATA_TYPE = ASCII_REAL
START_BYTE = 2
BYTES = 20
DESCRIPTION = "Name of event - solution dispense,
drawer open, drawer close,
reagent release"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "CMD_TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 24
BYTES = 14
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "SCLK time the event was commanded by
Phoenix"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "EVENT_NOTES"
DATA_TYPE = CHARACTER
START_BYTE = 40
BYTES = 108
DESCRIPTION = "Description of the event."
END_OBJECT = COLUMN
END_OBJECT = WCL_EVENT_TABLE
OBJECT = WCL_DATA_HEADER_TABLE
COLUMNS = 16
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 114
ROW_SUFFIX_BYTES = 84
ROWS = 1
DESCRIPTION = "Sixteen column ISE header table."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 2
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "Li_a_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 9
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "Li_b_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 16
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "pH_a_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 23
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "pH_b_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 30
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "pH_irid_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 37
BYTES = 7
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "Na_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 47
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = "K_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 52
BYTES = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = "NH4_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 56
BYTES = 3
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 10
NAME = "Ca_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 62
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 11
NAME = "Mg_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 67
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 12
NAME = "Ba_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 72
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 13
NAME = "Cl_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 77
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 14
NAME = "ClO4_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 82
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 15
NAME = "Br_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 89
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 16
NAME = "I_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 94
BYTES = 1
END_OBJECT = COLUMN
END_OBJECT = WCL_DATA_HEADER_TABLE
OBJECT = WCL_DATA_TABLE
COLUMNS = 16
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 198
ROWS = 11758
DESCRIPTION = "Sixteen column ISE data table."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 14
DESCRIPTION = "series of measurement SCLK read times"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "Li_a"
DATA_TYPE = ASCII_REAL
START_BYTE = 16
BYTES = 11
DESCRIPTION = "series of lithium electrode
potentials (1 of 2)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "Li_b"
DATA_TYPE = ASCII_REAL
START_BYTE = 28
BYTES = 11
DESCRIPTION = "series of lithium electrode
potentials (2 of 2)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "pH_a"
DATA_TYPE = ASCII_REAL
START_BYTE = 40
BYTES = 11
DESCRIPTION = "series of polymer pH electrode
potentials (1 of 2)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "pH_b"
DATA_TYPE = ASCII_REAL
START_BYTE = 52
BYTES = 11
DESCRIPTION = "series of polymer pH electrode
potentials (2 of 2)."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "pH_irid"
DATA_TYPE = ASCII_REAL
START_BYTE = 64
BYTES = 11
DESCRIPTION = "series of iridium pH electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "Na"
DATA_TYPE = ASCII_REAL
START_BYTE = 76
BYTES = 11
DESCRIPTION = "series of sodium electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = "K"
DATA_TYPE = ASCII_REAL
START_BYTE = 88
BYTES = 11
DESCRIPTION = "series of potassium electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = "NH4"
DATA_TYPE = ASCII_REAL
START_BYTE = 100
BYTES = 11
DESCRIPTION = "series of ammonium electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 10
NAME = "Ca"
DATA_TYPE = ASCII_REAL
START_BYTE = 112
BYTES = 11
DESCRIPTION = "series of calcium electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 11
NAME = "Mg"
DATA_TYPE = ASCII_REAL
START_BYTE = 124
BYTES = 11
DESCRIPTION = "series of magnesium electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 12
NAME = "Ba"
DATA_TYPE = ASCII_REAL
START_BYTE = 136
BYTES = 11
DESCRIPTION = "series of barium electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 13
NAME = "Cl"
DATA_TYPE = ASCII_REAL
START_BYTE = 148
BYTES = 11
DESCRIPTION = "series of chloride electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 14
NAME = "ClO4"
DATA_TYPE = ASCII_REAL
START_BYTE = 160
BYTES = 11
DESCRIPTION = "series of perchlorate electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 15
NAME = "Br"
DATA_TYPE = ASCII_REAL
START_BYTE = 172
BYTES = 11
DESCRIPTION = "series of bromide electrode potentials."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 16
NAME = "I"
DATA_TYPE = ASCII_REAL
START_BYTE = 184
BYTES = 11
DESCRIPTION = "series of iodide electrode potentials."
END_OBJECT = COLUMN
END_OBJECT = WCL_DATA_TABLE
END
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-04-14, Initial"
/* File Characteristics */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 198
FILE_RECORDS = 1219
/*Pointers to Data Objects */
^WCL_HEADER_TABLE = ("ws030c0cnd__00___13690000w0.tab",2)
^WCL_EVENT_TABLE = ("ws030c0cnd__00___13690000w0.tab",18)
^WCL_DATA_HEADER_TABLE = ("ws030c0cnd__00___13690000w0.tab",29)
^WCL_DATA_TABLE = ("ws030c0cnd__00___13690000w0.tab",32)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "WS030C0CND__00___13690000W0"
PRODUCT_VERSION_ID = "V1.0"
PRODUCT_TYPE = "MECA_WCL_COND"
RELEASE_ID = "0001"
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_NAME = "MECA WET CHEMISTRY LABORATORY"
INSTRUMENT_HOST_ID = PHX
TARGET_NAME = "MARS"
INSTRUMENT_ID = "MECA_WCL"
INSTRUMENT_MODE_ID = "COND"
MISSION_NAME = "PHOENIX"
OPS_TOKEN = 16#13690000#
OPS_TOKEN_ACTIVITY = 16#00001369#
OPS_TOKEN_PAYLOAD = 16#00000000#
OPS_TOKEN_COMMAND = 16#00000000#
/* Time information */
MISSION_PHASE_NAME = "PRIMARY MISSION"
SPACECRAFT_CLOCK_START_COUNT = "898867342.007"
SPACECRAFT_CLOCK_STOP_COUNT = "898892921.436"
START_TIME = 2008-06-25T13:21:10.586
STOP_TIME = 2008-06-25T20:27:31.209
EARTH_RECEIVED_START_TIME = "UNK"
EARTH_RECEIVED_STOP_TIME = "UNK"
PLANET_DAY_NUMBER = 30
LOCAL_TRUE_SOLAR_TIME = "10:43:33"
PRODUCT_CREATION_TIME = 2008-12-19T23:59:10.619
/* Data Object Definitions */
OBJECT = WCL_HEADER_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 93
ROWS = 14
ROW_SUFFIX_BYTES = 105
DESCRIPTION = "Two column conductivity header table
with 93 bytes of data followed by 105
spare bytes, the last two of which are
the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "HEADER FIELD NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 25
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "HEADER FIELD VALUE"
DATA_TYPE = CHARACTER
START_BYTE = 30
BYTES = 62
END_OBJECT = COLUMN
END_OBJECT = WCL_HEADER_TABLE
OBJECT = WCL_EVENT_TABLE
COLUMNS = 3
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 149
ROW_SUFFIX_BYTES = 49
ROWS = 9
DESCRIPTION = "Three column conductivity events
table."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EVENT_NAME"
DATA_TYPE = ASCII_REAL
START_BYTE = 2
BYTES = 20
DESCRIPTION = "Name of event - general_note,calibrant
crucible, sample addition, acid
crucible, BaCl2 crucible"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "CMD_TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 24
BYTES = 14
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "SCLK time the event was commanded by
Phoenix"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "EVENT_NOTES"
DATA_TYPE = CHARACTER
START_BYTE = 40
BYTES = 108
DESCRIPTION = "Description of the event."
END_OBJECT = COLUMN
END_OBJECT = WCL_EVENT_TABLE
OBJECT = WCL_DATA_HEADER_TABLE
COLUMNS = 3
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 29
ROWS = 1
ROW_SUFFIX_BYTES = 169
DESCRIPTION = "Three column conductivity data header
table with 29 bytes of data followed by
169 spare bytes, the last two of which
are the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 2
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "COND_LOW_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 9
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "COND_HIGH_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 20
BYTES = 9
END_OBJECT = COLUMN
END_OBJECT = WCL_DATA_HEADER_TABLE
OBJECT = WCL_DATA_TABLE
COLUMNS = 3
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 39
ROWS = 1188
ROW_SUFFIX_BYTES = 159
DESCRIPTION = "Three column conductivity data table
with 39 bytes of data followed by 159
spare bytes, the last two of which are
the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 14
DESCRIPTION = "series of SCLK CMD_read times"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "COND_LOW"
DATA_TYPE = ASCII_REAL
START_BYTE = 16
BYTES = 11
DESCRIPTION = "series of low range conductance
measurements in micro-siemens."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "COND_HIGH"
DATA_TYPE = ASCII_REAL
START_BYTE = 28
BYTES = 11
DESCRIPTION = "series of high range conductance
measurements in micro-siemens."
END_OBJECT = COLUMN
END_OBJECT = WCL_DATA_TABLE
END
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-04-14, Initial"
/* File Characteristics */
RECORD_TYPE = STREAM
FILE_RECORDS = 2032
/* Pointers to Data Objects */
^WCL_HEADER_TABLE = ("ws030c0cv_3_00___13690000w0.tab",199)
^CV_CALIBRATION_TABLE = ("ws030c0cv_3_00___13690000w0.tab",3763)
^WCL_EVENT_TABLE = ("ws030c0cv_3_00___13690000w0.tab",5941)
^WCL_SCAN_HEADER_TABLE = ("ws030c0cv_3_00___13690000w0.tab",7129)
^WCL_SCAN_TABLE = ("ws030c0cv_3_00___13690000w0.tab",23709)
/* Identification Data Elements */
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "WS030C0CV_3_00___13690000W0"
PRODUCT_VERSION_ID = "V1.0"
PRODUCT_TYPE = "MECA_WCL_CV"
RELEASE_ID = "0001"
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_NAME = "MECA WET CHEMISTRY LABORATORY"
INSTRUMENT_HOST_ID = PHX
TARGET_NAME = "MARS"
INSTRUMENT_ID = "MECA_WCL"
INSTRUMENT_MODE_ID = "CV"
MISSION_NAME = "PHOENIX"
OPS_TOKEN = 16#13690000#
OPS_TOKEN_ACTIVITY = 16#00001369#
OPS_TOKEN_PAYLOAD = 16#00000000#
OPS_TOKEN_COMMAND = 16#00000000#
/* Time information */
MISSION_PHASE_NAME = "PRIMARY MISSION"
SPACECRAFT_CLOCK_START_COUNT = "898876488.651"
SPACECRAFT_CLOCK_STOP_COUNT = "898883797.284"
START_TIME = 2008-06-25T15:53:39.083
STOP_TIME = 2008-06-25T17:55:26.634
EARTH_RECEIVED_START_TIME = "UNK"
EARTH_RECEIVED_STOP_TIME = "UNK"
PLANET_DAY_NUMBER = 30
LOCAL_TRUE_SOLAR_TIME = "13:11:58"
PRODUCT_CREATION_TIME = 2008-12-19T23:59:30.557
/* Data Object Definitions */
OBJECT = WCL_HEADER_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 93
ROWS = 16
ROW_SUFFIX_BYTES = 105
DESCRIPTION = "Two column CV header table with 93 bytes of
data followed by 105 spare bytes, the last
two of which are the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "HEADER FIELD NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 25
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "HEADER FIELD VALUE"
DATA_TYPE = CHARACTER
START_BYTE = 30
BYTES = 62
END_OBJECT = COLUMN
END_OBJECT = WCL_HEADER_TABLE
OBJECT = CV_CALIBRATION_TABLE
COLUMNS = 5
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 41
ROW_SUFFIX_BYTES = 157
ROWS = 9
DESCRIPTION = "Five column CV conversion table with 41 bytes
of data followed by 157 spare bytes, the last
two of which are the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "ELECTRODE"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "GAIN"
DATA_TYPE = CHARACTER
START_BYTE = 9
BYTES = 3
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "SLOPE"
DATA_TYPE = ASCII_REAL
START_BYTE = 14
BYTES = 11
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "INTERCEPT"
DATA_TYPE = ASCII_REAL
START_BYTE = 26
BYTES = 11
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "PHYSICAL_UNIT"
DATA_TYPE = CHARACTER
START_BYTE = 39
BYTES = 2
END_OBJECT = COLUMN
END_OBJECT = CV_CALIBRATION_TABLE
OBJECT = WCL_EVENT_TABLE
COLUMNS = 3
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 149
ROW_SUFFIX_BYTES = 49
ROWS = 4
DESCRIPTION = "Three column CV events table."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EVENT_NAME"
DATA_TYPE = ASCII_REAL
START_BYTE = 2
BYTES = 20
DESCRIPTION = "Name of event - solution dispense,
drawer open, drawer close,
reagent release"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "CMD_TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 24
BYTES = 14
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "SCLK time the event was commanded by
Phoenix"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "EVENT_NOTES"
DATA_TYPE = CHARACTER
START_BYTE = 40
BYTES = 108
DESCRIPTION = "Description of the event."
END_OBJECT = COLUMN
END_OBJECT = WCL_EVENT_TABLE
OBJECT = WCL_SCAN_HEADER_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 2312
ROWS = 7
OBJECT = CONTAINER
NAME = SCAN_HEADER_INFO
REPETITIONS = 66
START_BYTE = 1
BYTES = 35
DESCRIPTION = "Scan parameter information for
each CV scan data set."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "SCAN_HEADER FIELD NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 17
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "SCAN_HEADER FIELD VALUE"
DATA_TYPE = ASCII_REAL
START_BYTE = 21
BYTES = 14
END_OBJECT = COLUMN
END_OBJECT = CONTAINER
END_OBJECT = WCL_SCAN_HEADER_TABLE
OBJECT = WCL_SCAN_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 1586
ROWS = 1987
OBJECT = CONTAINER
NAME = "WCL DATA VALUES"
REPETITIONS = 66
START_BYTE = 1
BYTES = 24
DESCRIPTION = "Cyclic voltammetry data"
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "MILLIVOLTS"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 11
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "Potential in mV"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "NANOAMPS"
DATA_TYPE = ASCII_REAL
START_BYTE = 13
BYTES = 11
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "Current in nA"
END_OBJECT = COLUMN
END_OBJECT = CONTAINER
END_OBJECT = WCL_SCAN_TABLE
END
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-04-14, Initial"
/* File Characteristics */
RECORD_TYPE = STREAM
FILE_RECORDS = 2062
/* Pointers to Data Objects */
^WCL_HEADER_TABLE = ("ws030c0cp_0_00___13690000w0.tab",199)
^CP_CALIBRATION_TABLE = ("ws030c0cp_0_00___13690000w0.tab",3169)
^WCL_EVENT_TABLE = ("ws030c0cp_0_00___13690000w0.tab",5347)
^WCL_SCAN_HEADER_TABLE = ("ws030c0cp_0_00___13690000w0.tab",7525)
^WCL_SCAN_TABLE = ("ws030c0cp_0_00___13690000w0.tab",18470)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "WS030C0CP_0_00___13690000W0"
PRODUCT_VERSION_ID = "V1.0"
PRODUCT_TYPE = "MECA_WCL_CP"
RELEASE_ID = "0001"
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_NAME = "MECA WET CHEMISTRY LABORATORY"
INSTRUMENT_HOST_ID = PHX
TARGET_NAME = "MARS"
INSTRUMENT_ID = "MECA_WCL"
INSTRUMENT_MODE_ID = "CP"
MISSION_NAME = "PHOENIX"
OPS_TOKEN = 16#13690000#
OPS_TOKEN_ACTIVITY = 16#00001369#
OPS_TOKEN_PAYLOAD = 16#00000000#
OPS_TOKEN_COMMAND = 16#00000000#
/* Time information */
MISSION_PHASE_NAME = "PRIMARY MISSION"
SPACECRAFT_CLOCK_START_COUNT = "898868068.177"
SPACECRAFT_CLOCK_STOP_COUNT = "898884815.916"
START_TIME = 2008-06-25T13:33:17.249
STOP_TIME = 2008-06-25T18:12:27.101
EARTH_RECEIVED_START_TIME = "UNK"
EARTH_RECEIVED_STOP_TIME = "UNK"
PLANET_DAY_NUMBER = 30
LOCAL_TRUE_SOLAR_TIME = "10:55:20"
PRODUCT_CREATION_TIME = 2008-12-20T00:00:08.055
/* Data Object Definitions */
OBJECT = WCL_HEADER_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 93
ROWS = 13
ROW_SUFFIX_BYTES = 105
DESCRIPTION = "Two column CV header table with 93
bytes of data followed by 105 spare
bytes, the last two of which are the
<CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "HEADER FIELD NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 25
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "HEADER FIELD VALUE"
DATA_TYPE = CHARACTER
START_BYTE = 30
BYTES = 62
END_OBJECT = COLUMN
END_OBJECT = WCL_HEADER_TABLE
OBJECT = CP_CALIBRATION_TABLE
COLUMNS = 5
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 41
ROW_SUFFIX_BYTES = 157
ROWS = 9
DESCRIPTION = "Five column CP conversion table with
41 bytes of data followed by 157 spare
bytes, the last two of which are the
<CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "ELECTRODE"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "GAIN"
DATA_TYPE = CHARACTER
START_BYTE = 9
BYTES = 3
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "SLOPE"
DATA_TYPE = ASCII_REAL
START_BYTE = 14
BYTES = 11
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "INTERCEPT"
DATA_TYPE = ASCII_REAL
START_BYTE = 26
BYTES = 11
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "PHYSICAL_UNIT"
DATA_TYPE = CHARACTER
START_BYTE = 39
BYTES = 2
END_OBJECT = COLUMN
END_OBJECT = CP_CALIBRATION_TABLE
OBJECT = WCL_EVENT_TABLE
COLUMNS = 3
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 149
ROW_SUFFIX_BYTES = 49
ROWS = 9
DESCRIPTION = "Three column CV events table."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EVENT_NAME"
DATA_TYPE = ASCII_REAL
START_BYTE = 2
BYTES = 20
DESCRIPTION = "Name of event - solution dispense,
drawer open, drawer close,
reagent release"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "CMD_TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 24
BYTES = 14
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "SCLK time the event was commanded by
Phoenix"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "EVENT_NOTES"
DATA_TYPE = CHARACTER
START_BYTE = 40
BYTES = 108
DESCRIPTION = "Description of the event."
END_OBJECT = COLUMN
END_OBJECT = WCL_EVENT_TABLE
OBJECT = WCL_SCAN_HEADER_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 1507
ROWS = 7
OBJECT = CONTAINER
NAME = WCL_HEADER_INFO
REPETITIONS = 43
START_BYTE = 1
BYTES = 35
DESCRIPTION = "Scan parameter information for
each CP analysis set."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "HEADER FIELD NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 17
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "HEADER FIELD VALUE"
DATA_TYPE = ASCII_REAL
START_BYTE = 21
BYTES = 14
END_OBJECT = COLUMN
END_OBJECT = CONTAINER
END_OBJECT = WCL_SCAN_HEADER_TABLE
OBJECT = WCL_SCAN_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 1034
ROWS = 2015
OBJECT = CONTAINER
NAME = "WCL DATA VALUES"
REPETITIONS = 43
START_BYTE = 1
BYTES = 24
DESCRIPTION = "Chronopotentiometry data"
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "NANOAMPS"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 11
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "Current in nA"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "MILLIVOLTS"
DATA_TYPE = ASCII_REAL
START_BYTE = 13
BYTES = 11
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "Potential in mV"
END_OBJECT = COLUMN
END_OBJECT = CONTAINER
END_OBJECT = WCL_SCAN_TABLE
END
PDS_VERSION_ID = PDS3
LABEL_REVISION_NOTE = "2008-04-14, Initial"
/* File Characteristics */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 198
FILE_RECORDS = 8811
/*Pointers to Data Objects */
^WCL_HEADER_TABLE = ("ws030c0pt___00___13690000w0.tab",2)
^PT_CALIBRATION_TABLE = ("ws030c0pt___00___13690000w0.tab",17)
^WCL_EVENT_TABLE = ("ws030c0pt___00___13690000w0.tab",24)
^WCL_DATA_HEADER_TABLE = ("ws030c0pt___00___13690000w0.tab",36)
^WCL_DATA_TABLE = ("ws030c0pt___00___13690000w0.tab",39)
/* Identification */
DATA_SET_ID = "PHX-M-MECA-4-NIRDR-V1.0"
PRODUCT_ID = "WS030C0PT___00___13690000W0"
PRODUCT_VERSION_ID = "V1.0"
PRODUCT_TYPE = "MECA_WCL_PT"
RELEASE_ID = "0001"
INSTRUMENT_HOST_NAME = "PHOENIX"
INSTRUMENT_NAME = "MECA WET CHEMISTRY LABORATORY"
INSTRUMENT_HOST_ID = PHX
TARGET_NAME = "MARS"
INSTRUMENT_ID = "MECA_WCL"
INSTRUMENT_MODE_ID = "PT"
MISSION_NAME = "PHOENIX"
OPS_TOKEN = 16#13690000#
OPS_TOKEN_ACTIVITY = 16#00001369#
OPS_TOKEN_PAYLOAD = 16#00000000#
OPS_TOKEN_COMMAND = 16#00000000#
/* Time information */
MISSION_PHASE_NAME = "PRIMARY MISSION"
SPACECRAFT_CLOCK_START_COUNT = "898863739.067"
SPACECRAFT_CLOCK_STOP_COUNT = "898892845.116"
START_TIME = 2008-06-25T12:21:07.828
STOP_TIME = 2008-06-25T20:26:13.959
EARTH_RECEIVED_START_TIME = "UNK"
EARTH_RECEIVED_STOP_TIME = "UNK"
PLANET_DAY_NUMBER = 30
LOCAL_TRUE_SOLAR_TIME = "09:45:06"
PRODUCT_CREATION_TIME = 2008-12-20T00:00:58.561
/* Data Object Definitions */
OBJECT = WCL_HEADER_TABLE
COLUMNS = 2
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 93
ROWS = 13
ROW_SUFFIX_BYTES = 105
DESCRIPTION = "Two column PT header table with 93
bytes of data followed by 105 spare
bytes, the last two of which are the
<CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "HEADER FIELD NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 25
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "HEADER FIELD VALUE"
DATA_TYPE = CHARACTER
START_BYTE = 30
BYTES = 62
END_OBJECT = COLUMN
END_OBJECT = WCL_HEADER_TABLE
OBJECT = PT_CALIBRATION_TABLE
COLUMNS = 4
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 49
ROW_SUFFIX_BYTES = 149
ROWS = 5
DESCRIPTION = "Table of values used to convert sensor
DNs to physical units. Pressures in mB,
temperature in C. There are 49 bytes
of data in this table followed by 149
spare bytes, the last two of which are
the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "SENSOR_NAME"
DATA_TYPE = CHARACTER
START_BYTE = 2
BYTES = 15
DESCRIPTION = "Name of sensor reading to be
converted."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "SLOPE_VALUE"
DATA_TYPE = ASCII_REAL
START_BYTE = 19
BYTES = 11
DESCRIPTION = "SLOPE value used in conversion
equation P(mbar) = SLOPE*DN + INTERCEPT
for pressure or T(degC) = SLOPE*DN +
INTERCEPT temperature."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "INTERCEPT_VALUE"
DATA_TYPE = ASCII_REAL
START_BYTE = 31
BYTES = 11
DESCRIPTION = "INTERCEPT value used in conversion
equation P(mbar) = SLOPE*DN + INTERCEPT
for pressure or T(degC) = SLOPE*DN +
INTERCEPT for temperature."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "PHYSICAL_UNIT"
DATA_TYPE = CHARACTER
START_BYTE = 44
BYTES = 5
DESCRIPTION = "physical unit of calibrated value"
END_OBJECT = COLUMN
END_OBJECT = PT_CALIBRATION_TABLE
OBJECT = WCL_EVENT_TABLE
COLUMNS = 3
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 149
ROW_SUFFIX_BYTES = 49
ROWS = 10
DESCRIPTION = "Three column PT events table."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "EVENT_NAME"
DATA_TYPE = ASCII_REAL
START_BYTE = 2
BYTES = 20
DESCRIPTION = "Name of event - solution dispense,
drawer open, drawer close,
reagent release"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "CMD_TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 24
BYTES = 14
MISSING_CONSTANT =<PHONE_NUMBER>9
DESCRIPTION = "SCLK time the event was commanded by
Phoenix"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "EVENT_NOTES"
DATA_TYPE = CHARACTER
START_BYTE = 40
BYTES = 108
DESCRIPTION = "Description of the event."
END_OBJECT = COLUMN
END_OBJECT = WCL_EVENT_TABLE
OBJECT = WCL_DATA_HEADER_TABLE
COLUMNS = 9
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 113
ROWS = 1
ROW_SUFFIX_BYTES = 85
DESCRIPTION = "Nine column pressure, temperature
and heater state data header table
with 113 bytes of data followed by
85 spare bytes, the last two of which
are the <CR><LF> characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 2
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "PRESSURE_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 9
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "T_BEAKER_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 20
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "T_TANK_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 31
BYTES = 6
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "T_DRAWER_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 40
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "T_STAGE_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 51
BYTES = 7
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "BEAKER_HTR_STATE_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 61
BYTES = 16
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = "TANK_HTR_STATE_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 80
BYTES = 14
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = "DRAWER_HTR_STATE_HEADER"
DATA_TYPE = ASCII_REAL
START_BYTE = 97
BYTES = 16
END_OBJECT = COLUMN
END_OBJECT = WCL_DATA_HEADER_TABLE
OBJECT = WCL_DATA_TABLE
COLUMNS = 9
INTERCHANGE_FORMAT = ASCII
ROW_BYTES = 81
ROWS = 8773
ROW_SUFFIX_BYTES = 117
DESCRIPTION = "Nine column pressure and temperature
data table with 79 bytes of data
followed by 119 spare bytes, the last
two of which are the <CR><LF>
characters."
OBJECT = COLUMN
COLUMN_NUMBER = 1
NAME = "TIME"
DATA_TYPE = ASCII_REAL
START_BYTE = 1
BYTES = 14
DESCRIPTION = "series of SCLK read times"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 2
NAME = "PRESSURE"
DATA_TYPE = ASCII_REAL
START_BYTE = 16
BYTES = 11
DESCRIPTION = "series of pressure measurements for
the selected WCL cell in millibars."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 3
NAME = "T_BEAKER"
DATA_TYPE = ASCII_REAL
START_BYTE = 28
BYTES = 11
DESCRIPTION = "series of beaker temperature
measurements for the selected WCL
cell in C."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 4
NAME = "T_TANK"
DATA_TYPE = ASCII_REAL
START_BYTE = 40
BYTES = 11
DESCRIPTION = "series of tank temperature
measurements for the selected WCL
cell in C."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 5
NAME = "T_DRAWER"
DATA_TYPE = ASCII_REAL
START_BYTE = 52
BYTES = 11
DESCRIPTION = "series of drawer temperature
measurements for the selected WCL
cell in C."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 6
NAME = "T_STAGE"
DATA_TYPE = ASCII_REAL
START_BYTE = 64
BYTES = 11
DESCRIPTION = "series of microscopy stage
temperature measurements."
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 7
NAME = "BEAKER_HEATER_STATE"
DATA_TYPE = BOOLEAN
START_BYTE = 76
BYTES = 1
DESCRIPTION = "State of the beaker heater.
0-heater off, 1-heater on"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 8
NAME = "TANK_HEATER_STATE"
DATA_TYPE = BOOLEAN
START_BYTE = 78
BYTES = 1
DESCRIPTION = "State of the tank heater.
0-heater off, 1-heater on"
END_OBJECT = COLUMN
OBJECT = COLUMN
COLUMN_NUMBER = 9
NAME = "DRAWER_HEATER_STATE"
DATA_TYPE = BOOLEAN
START_BYTE = 80
BYTES = 1
DESCRIPTION = "State of the drawer heater.
0-heater off, 1-heater on"
END_OBJECT = COLUMN
END_OBJECT = WCL_DATA_TABLE
END
|
AA |
Actuator Assembly |
|
ADC |
Analog to Digital Converter |
|
AFM |
MECA Atomic Force Microscope |
|
ASCII |
American Standard Code for Information Interchange |
|
CME |
MECA Control and Measurement Electronics |
|
CP |
Chronopotentiometry |
|
CSV |
Comma Separated Variable |
|
CV |
Cyclic Voltammetry |
|
DN |
Data numbers (arbitrary units to be resolved through calibration) |
|
EC |
Electrical Conductivity |
|
EDR |
Experiment Data Record |
|
FEI |
File Exchange Interface, a secure files subscription service developed at JPL |
|
FSW |
Flight Software |
|
GDS |
Ground Data System |
|
ICD |
Interface Control Document |
|
ISE |
Ion-Selective Electrode |
|
JPL |
Jet Propulsion Laboratory |
|
MECA |
Microscopy, Electrochemistry, and Conductivity Analyzer |
|
MGSS-IOS |
Multi-mission Ground Systems and Services, Instrument Operations element |
|
MIPL |
Multi-mission Instrument Processing Laboratory |
|
NASA |
National Aeronautics and Space Administration |
|
OM |
MECA Optical Microscope |
|
OPGS |
Operations Product Generation Subsystem |
|
PAWG |
Phoenix Archive Working Group |
|
PDS |
Planetary Data System |
|
PT |
Pressure and Temperature |
|
RA |
Robotic Arm |
|
RAC |
Robotic Arm Camera |
|
RDR |
Reduced Data Record |
|
RSVP |
Rover Sequencing and Visualization Program |
|
SCLK |
Spacecraft Clock |
|
SFDU |
Standard Format Data Unit |
|
SIS |
Software Interface Specification |
|
SOC |
Science Operations Center |
|
SPICE |
Spacecraft, Planet, Instrument, C-matrix, Events kernels |
|
SSI |
Surface Stereoscopic Imager |
|
TBD |
To Be Determined |
|
TECP |
Thermal and Electrical Conductivity Probe |
|
WCL |
MECA Wet Chemistry Laboratory |
[1] A. Savitzky and Marcel J.E. Golay (1964). Smoothing and Differentiation of Data by Simplified Least Squares Procedures. Analytical Chemistry, 36: 1627-1639. doi :10.1021/ac60214a047. Note that the original publication contained several errors that were later corrected by Jean Steinier, Yves Termonia, Jules Deltour (1972). Smoothing and differentiation of data by simplified least square procedure. Analytical Chemistry, 44(11): 1906-1909. doi :10.1021/ac60319a045


xmake is a lightweight cross-platform build tool based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more Concise and intuitive, it is very friendly to novices, and you can get started quickly in a short time, allowing users to focus more on actual project development.
In version 2.5.3, we have been able to build linux and android bpf programs.
Although bpf has certain requirements for the compilation toolchain, such as the newer llvm/clang and android ndk toolchains, xmake can automatically pull a specific version of llvm/ndk for compilation, and it can also automatically pull libbpf dependencies. Library.
In addition, in the new version we have added support for the integration of C/C++ packages from Conda.
New feature introduction
Build a Linux Bpf program
In the new version, we started to support the compilation of bpf programs, as well as linux and android platforms, and can automatically pull the llvm and android ndk toolchains.
For more details, please see: #1274
The build configuration is as follows, it’s very simple.
If we do not need to build the android version, we can remove some configuration about android.
add_rules("mode.release", "mode.debug")
add_rules("platform.linux.bpf")
add_requires("linux-tools", {configs = {bpftool = true}})
add_requires("libbpf")
if is_plat("android") then
add_requires("ndk >=22.x")
set_toolchains("@ndk", {sdkver = "23"})
else
add_requires("llvm >=10.x")
set_toolchains("@llvm")
add_requires("linux-headers")
end
target("minimal")
set_kind("binary")
add_files("src/*.c")
add_packages("linux-tools", "linux-headers", "libbpf")
set_license("GPL-2.0")
Through the above configuration, we can probably see that we have integrated and configured specific versions of llvm and NDK toolchains, as well as packages such as libbpf, linux-headers, linux-tools, etc..
xmake will automatically pull them, and then use the corresponding toolchain to integrate and compile these dependent packages, and finally generate the bpf program.
The linux-tools package mainly uses the libtool program inside to generate the bpf skeleton header file, and xmake will automatically run this tool to generate it.
Compile linux bpf program
We only need to execute the xmake command to complete the compilation, even if you have not installed llvm/clang.
Of course, if you have already installed them, if it’s version is matched, xmake will also be used first.
$ xmake
We can also use xmake -v
to compile and view the complete and detailed compilation commands:
$ xmake -v
[20%]: compiling.bpf src/minimal.bpf.c
/usr/bin/ccache /usr/bin/clang -c -Qunused-arguments -m64 -fvisibility=hidden -O3 -Ibuild/.gens/minimal/linux/x86_64/release/rules/bpf -isystem /home/ruki/ .xmake/packages/l/linux-tools/5.9.16/0c52e491268946fe9a4bc91d4906d66b/include -isystem /home/ruki/.xmake/packages/z/zlib/1.2.11/3a7e4427eda94fc69fad0009a1629fd8/include -isystem /home/ruki/.xmake /packages/l/libelf/0.8.13/ced4fdd8151a475dafc5f51e2a031997/include -isystem /home/ruki/.xmake/packages/l/libelf/0.8.13/ced4fdd8151a475dafc5f51e2a031997/include/libelf -isystem /home/ruki/.xmake /l/libcap/2.27/c55b28aa3b3745489b93895d0d606ed1/include -isystem /home/ruki/.xmake/packages/l/linux-headers/5.9.16/8e3a440cbe1f42249aef3d89f1528ecb/include -DNDEBUG -target bpf -g -o build/.gens/.gens /linux/x86_64/release/rules/bpf/minimal.bpf.o src/minimal.bpf.c
llvm-strip -g build/.gens/minimal/linux/x86_64/release/rules/bpf/minimal.bpf.o
bpftool gen skeleton build/.gens/minimal/linux/x86_64/release/rules/bpf/minimal.bpf.o
[40%]: ccache compiling.release src/minimal.c
/usr/bin/ccache /usr/bin/clang -c -Qunused-arguments -m64 -fvisibility=hidden -O3 -Ibuild/.gens/minimal/linux/x86_64/release/rules/bpf -isystem /home/ruki/ .xmake/packages/l/linux-tools/5.9.16/0c52e491268946fe9a4bc91d4906d66b/include -isystem /home/ruki/.xmake/packages/z/zlib/1.2.11/3a7e4427eda94fc69fad0009a1629fd8/include -isystem /home/ruki/.xmake /packages/l/libelf/0.8.13/ced4fdd8151a475dafc5f51e2a031997/include -isystem /home/ruki/.xmake/packages/l/libelf/0.8.13/ced4fdd8151a475dafc5f51e2a031997/include/libelf -isystem /home/ruki/.xmake /l/libcap/2.27/c55b28aa3b3745489b93895d0d606ed1/include -isystem /home/ruki/.xmake/packages/l/linux-headers/5.9.16/8e3a440cbe1f42249aef3d89f1528ecb/include -DNDEBUG -o build/.objs/minimal/linux/x86_64/ release/src/minimal.co src/minimal.c
[60%]: linking.release minimal
/usr/bin/clang++ -o build/linux/x86_64/release/minimal build/.objs/minimal/linux/x86_64/release/src/minimal.co -m64 -L/home/ruki/.xmake/packages/l /linux-tools/5.9.16/0c52e491268946fe9a4bc91d4906d66b/lib64 -L/home/ruki/.xmake/packages/z/zlib/1.2.11/3a7e4427eda94fc69fad0009a1629fd8/lib -L/home/ruki/.xmake/packages/l/libelf /0.8.13/ced4fdd8151a475dafc5f51e2a031997/lib -L/home/ruki/.xmake/packages/l/libcap/2.27/c55b28aa3b3745489b93895d0d606ed1/lib -s -lbpf -lz -lelf -lcap
[100%]: build ok!
Compile Android bpf program
If we compile the Android version, we only need to switch to the android platform, which is also very convenient
$ xmake f -p android
$ xmake
xmake will automatically download the ndk tool chain and the corresponding android version libbpf and other libraries to use.
$ xmake f -p android -c
checking for architecture ... armeabi-v7a
checking for Android SDK directory ... no
checking for NDK directory ... no
note: try installing these packages (pass -y to skip confirm)?
in local-repo:
-> libcap 2.27 [linux, x86_64, from:linux-tools]
-> libelf 0.8.13 [linux, x86_64, from:linux-tools]
-> zlib 1.2.11 [linux, x86_64, from:linux-tools]
-> linux-tools 5.9.16 [bpftool:y]
-> ndk 22.0
-> libelf#1 0.8.13 [toolchains:@ndk, from:libbpf]
-> zlib#1 1.2.11 [toolchains:@ndk, from:libbpf]
-> libbpf v0.3 [toolchains:@ndk]
please input: y (y/n)
=> install libcap 2.27 .. ok
=> install zlib 1.2.11 .. ok
=> install libelf 0.8.13 .. ok
=> install ndk 22.0 .. ok
=> install linux-tools 5.9.16 .. ok
=> install libelf#1 0.8.13 .. ok
=> install zlib#1 1.2.11 .. ok
=> install libbpf v0.3 .. ok
ruki@010689392c4d:/mnt/bpf_minimal$ xmake
[20%]: compiling.bpf src/minimal.bpf.c
[40%]: ccache compiling.release src/minimal.c
[60%]: linking.release minimal
[100%]: build ok!
Of course, if you have manually downloaded the corresponding version of the ndk toolchain, we can also specify it to use it instead of automatically pulling it.
$ xmake f -p android --ndk=/xxx/android-ndk-r22
$ xmake
However, if you download it yourself, remember to download at least the version above ndk r22, because clang in the lower version of ndk does not support the compilation and generation of bpf programs.
Finally, here is a complete bpf scaffolding project based on xmake, you can refer to: https://github.com/hack0z/libbpf-bootstrap
In addition, there is also a minimal bpf example program: https://github.com/xmake-io/xmake/tree/master/tests/projects/bpf/minimal
Integrate and use Conda package
Conda is a very powerful third-party package manager that supports binary package pull in various languages. Here we only use the C/C++ package inside.
Its integrated usage is similar to conan/vcpkg, except that the package namespace is changed to conda::
add_requires("conda::libpng 1.6.37", {alias = "libpng"})
add_requires("conda::openssl")
target("testco")
set_kind("binary")
add_files("src/*.cpp")
add_packages("libpng", "conda::openssl")
Note: Although we support many third-party package managers, such as conan/conda/vcpkg/brew, etc., xmake also has its own package repository management.
There are currently nearly 300 commonly used packages that support different platforms, some of which are The package also supports android/ios/mingw and even cross-compilation environment.
Therefore, if the official xmake-repo repository already provides the required package, you can use it directly without specifying the package namespace.
Get host cpu information
In the current version, we have added a new core.base.cpu
module and os.cpuinfo
interface to obtain various information about the cpu, such as: cpu family/model, microarchitecture, core number, features and other information.
This is usually very useful in projects that pursue performance. These projects usually need to be optimized according to the CPU’s memory model and extended instruction set. At the same time, if you want to cross-platform, you need to specify the corresponding code according to the current cpu information, (for example, after intel haswell) One set, one set after amd zen, the older ones default to no optimization). This information is also used in many high-performance computing libraries.
Therefore, through this module interface, you can obtain the current host cpu information and feature support when compiling and configuring, so as to enable relevant optimized compilation.
We can quickly obtain all information through os.cpuinfo()
, or specify os.cpuinfo("march")
to obtain specific information, such as march, which is microarchitecture
We can also use the xmake l
command to quickly view the obtained results.
$ xmake l os.cpuinfo
{
features = "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clfsh ds acpi mmx fxsr sse sse2 ss htt tm pbe sse3 pclmulqdq dtes64 mon dscpl vmx tse64 mon dscpl vmx tse tm2 s
sse4_1 sse4_2 x2apic movbe popcnt aes pcid xsave osxsave seglim64 tsctmr avx1_0 rdrand f16c",
vendor = "GenuineIntel",
model_name = "Intel(R) Core(TM) i7-8569U CPU @ 2.80GHz",
family = 6,
march = "Kaby Lake",
model = 142,
ncpu = 8
}
$ xmake l os.cpuinfo march
"Kaby Lake"
$ xmake l os.cpuinfo ncpu
8
If you want to determine the support of extended features such as sse
, you need to import the core.base.cpu
module to get it.
target("test")
set_kind("binary")
add_files("src/*.c")
on_load(function (target)
import("core.base.cpu")
local ncpu = os.cpuinfo("ncpu")
- local ncpu = cpu.number()
if cpu.has_feature("sse") then
target:add("defines", "HAS_SSE")
end
end)
Added cmake import file rules
If we are developing a library program, after executing xmake install
to install to the system, only the library file is installed, and there is no import file information such as .cmake/.pc, so the cmake project wants to be integrated and used through find_package, usually by looking for Not in our library.
In order to allow the third-party cmake project to find it normally and use the integration, then we can use the utils.install.cmake_importfiles
rule to export the .cmake file when installing the target target library file for the library import and search of other cmake projects .
We only need to apply this rule to the specified target library target through the add_rules
interface.
target("test")
set_kind("binary")
add_files("src/*.c")
add_rules("utils.install.cmake_importfiles")
After configuration, the xmake install
installation command can automatically export the .cmake import file.
Added pkgconfig import file rules
Similar to the cmake_importfiles
above, but we can also install the pkgconfig/.pc import file through the utils.install.pkgconfig_importfiles
rule, which is very useful for library detection by tools such as autotools.
target("test")
set_kind("binary")
add_files("src/*.c")
add_rules("utils.install.pkgconfig_importfiles")
Added Git related built-in configuration variables
xmake has always provided the automatic generation feature of config.h, which can be configured through the add_configfiles interface, and it also supports the replacement of template variables. You can define some variables yourself.
However, xmake also provides some commonly used built-in variable substitutions, such as version information, platform architecture, etc. For details, see: https://xmake.io/#/manual/project_target?id=targetadd_configfiles
The template configuration is very simple, just need:
target("test")
set_kind("binary")
add_files("src/*.c")
add_configfiles("src/config.h.in")
The config.h file can be automatically generated according to config.h.in.
But the new feature we are going to talk about here is the newly provided Git-related built-in variables to allow users to quickly and conveniently compile the project or the latest tag/branch/commit information of the current git project.
This is very useful for troubleshooting and locating problems in the later stage.
We can use commit to pinpoint the problem library based on which commit submission caused the problem. In this way, we can checkout but the corresponding version to troubleshoot the problem.
We only need to configure and define the following variables in config.h.in.
#define GIT_COMMIT "${GIT_COMMIT}"
#define GIT_COMMIT_LONG "${GIT_COMMIT_LONG}"
#define GIT_COMMIT_DATE "${GIT_COMMIT_DATE}"
#define GIT_BRANCH "${GIT_BRANCH}"
#define GIT_TAG "${GIT_TAG}"
#define GIT_TAG_LONG "${GIT_TAG_LONG}"
#define GIT_CUSTOM "${GIT_TAG}-${GIT_COMMIT}"
Execute xmake to compile, it will automatically generate the following config.h file.
#define GIT_COMMIT "8c42b2c2"
#define GIT_COMMIT_LONG "8c42b2c251793861eb85ffdf7e7c2307b129c7ae"
#define GIT_COMMIT_DATE "20210121225744"
#define GIT_BRANCH "dev"
#define GIT_TAG "v1.6.6"
#define GIT_TAG_LONG "v1.6.6-0-g8c42b2c2"
#define GIT_CUSTOM "v1.6.6-8c42b2c2"
We can use them in the program by means of macro definitions.
Android NDK r22 support and remote pull
The Android NDK has made very big structural changes since r22, removing some obsolete directories, such as the top-level sysroot directory and platforms directory, causing the previous detection method of xmake to fail.
Therefore, in the new version, we have made improvements to xmake to better support the full version of the NDK toolchain, including the new version above r22.
At the same time, the official repository of xmae-repo has also added the inclusion of ndk packages, enabling xmake to pull the ndk tool chain remotely for use.
add_requires("ndk >=22.x")
set_toolchains("@ndk", {sdkver = "23"})
target("test")
set_kind("binary")
add_files("src/*.c")
Changelog
New features
- #1259: Support
add_files("*.def")
to export symbols for windows/dll - #1267: add
find_package("nvtx")
- #1274: add
platform.linux.bpf
rule to build linux/bpf program - #1280: Support fetchonly package to improve find_package
- Support to fetch remote ndk toolchain package
- #1268: Add
utils.install.pkgconfig_importfiles
rule to install*.pc
import file - #1268: Add
utils.install.cmake_importfiles
rule to install*.cmake
import files - #348: Add
platform.longpaths
policy to support git longpaths - #1314: Support to install and use conda packages
- #1120: Add
core.base.cpu
module and improveos.cpuinfo()
- #1325: Add builtin git variables for
add_configfiles
Change
- #1275: Support conditionnal targets for vsxmake plugin
- #1290: Improve android ndk to support >= r22
- #1311: Add packages lib folder to PATH for vsxmake project


What We Do We help customers around the world become competitive – and stay competitive. We combine best-in-class software engineering with digital strategy and experience design, business consulting and technology innovation services.
Epic Games: Transforming the Gaming Industry.
As the travel industry addresses some of the major challenges that emerged as a result of the pandemic, airlines can turn to intelligent automation to improve experiences and operations.Read more
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam assumenda, at cum ducimus eveniet, excepturi itaque libero nemo nisi officia, placeat quis repellat sequi similique.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam assumenda, at cum ducimus eveniet, excepturi itaque libero nemo nisi officia, placeat quis repellat sequi similique.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam assumenda, at cum ducimus eveniet, excepturi itaque libero nemo nisi officia, placeat quis repellat sequi similique.
Read MoreStandard Plan
($25 per month)
Advanced Plan
($40 per month)
* Special discount
Copyright © 2020 Your Company Name


{% load staticfiles %} {% load thumbnail %}
Lunch Combo - Full meals Pack for one week!!
Party Offeres - 50% Discount
Festival Season Delivery !!!


Uploaded by {{video.user.username}} added on {{video.added | date:'short'}} views {{video.view_count}}
{{video.description}}


Craftr is a powerful cross-platform meta build system that exports Ninja manifests and is described entirely using Python code.


Defines | |
| #define | ADL_GAMUT_REFERENCE_SOURCE (1 << 0) |
| The flags desribes that gamut is related to source or to destination and to overlay or to graphics. | |
| #define | ADL_GAMUT_GAMUT_VIDEO_CONTENT (1 << 1) |
| #define | ADL_CUSTOM_WHITE_POINT (1 << 0) |
| The flags are used to describe the source of gamut and how read information from struct ADLGamutData. | |
| #define | ADL_CUSTOM_GAMUT (1 << 1) |
| #define | ADL_GAMUT_REMAP_ONLY (1 << 2) |
| #define | ADL_GAMUT_SPACE_CCIR_709 (1 << 0) |
| #define | ADL_GAMUT_SPACE_CCIR_601 (1 << 1) |
| #define | ADL_GAMUT_SPACE_ADOBE_RGB (1 << 2) |
| #define | ADL_GAMUT_SPACE_CIE_RGB (1 << 3) |
| #define | ADL_GAMUT_SPACE_CUSTOM (1 << 4) |
| #define | ADL_GAMUT_SPACE_CCIR_2020 (1 << 5) |
| #define | ADL_GAMUT_SPACE_APPCTRL (1 << 6) |
| #define | ADL_WHITE_POINT_5000K (1 << 0) |
| Predefine white point values are structed similar to gamut . | |
| #define | ADL_WHITE_POINT_6500K (1 << 1) |
| #define | ADL_WHITE_POINT_7500K (1 << 2) |
| #define | ADL_WHITE_POINT_9300K (1 << 3) |
| #define | ADL_WHITE_POINT_CUSTOM (1 << 4) |
| #define | ADL_GAMUT_WHITEPOINT_DIVIDER 10000 |
| #define | ADL_REGAMMA_COEFFICIENT_A0_DIVIDER 10000000 |
| gamma a0 coefficient uses the following divider: | |
| #define | ADL_REGAMMA_COEFFICIENT_A1A2A3_DIVIDER 1000 |
| gamma a1 ,a2,a3 coefficients use the following divider: | |
| #define | ADL_EDID_REGAMMA_COEFFICIENTS (1 << 0) |
| describes whether the coefficients are from EDID or custom user values. | |
| #define | ADL_USE_GAMMA_RAMP (1 << 4) |
| Used for struct ADLRegamma. Feature if set use gamma ramp, if missing use regamma coefficents. | |
| #define | ADL_APPLY_DEGAMMA (1 << 5) |
| Used for struct ADLRegamma. If the gamma ramp flag is used then the driver could apply de gamma corretion to the supplied curve and this depends on this flag. | |
| #define | ADL_EDID_REGAMMA_PREDEFINED_SRGB (1 << 1) |
| specifies that standard SRGB gamma should be applied | |
| #define | ADL_EDID_REGAMMA_PREDEFINED_PQ (1 << 2) |
| specifies that PQ gamma curve should be applied | |
| #define | ADL_EDID_REGAMMA_PREDEFINED_PQ_2084_INTERIM (1 << 3) |
| specifies that PQ gamma curve should be applied, lower max nits | |
| #define | ADL_EDID_REGAMMA_PREDEFINED_36 (1 << 6) |
| specifies that 3.6 gamma should be applied | |
| #define | ADL_EDID_REGAMMA_PREDEFINED_BT709 (1 << 7) |
| specifies that BT709 gama should be applied | |
| #define | ADL_EDID_REGAMMA_PREDEFINED_APPCTRL (1 << 8) |
| specifies that regamma should be disabled, and application controls regamma content (of the whole screen) |
| #define ADL_GAMUT_REFERENCE_SOURCE (1 << 0) |
The flags desribes that gamut is related to source or to destination and to overlay or to graphics.
| #define ADL_GAMUT_GAMUT_VIDEO_CONTENT (1 << 1) |
| #define ADL_CUSTOM_WHITE_POINT (1 << 0) |
The flags are used to describe the source of gamut and how read information from struct ADLGamutData.
| #define ADL_CUSTOM_GAMUT (1 << 1) |
| #define ADL_GAMUT_REMAP_ONLY (1 << 2) |
| #define ADL_GAMUT_SPACE_CCIR_709 (1 << 0) |
The define means the predefined gamut values . Driver uses to find entry in the table and apply appropriate gamut space.
| #define ADL_GAMUT_SPACE_CCIR_601 (1 << 1) |
| #define ADL_GAMUT_SPACE_ADOBE_RGB (1 << 2) |
| #define ADL_GAMUT_SPACE_CIE_RGB (1 << 3) |
| #define ADL_GAMUT_SPACE_CUSTOM (1 << 4) |
| #define ADL_GAMUT_SPACE_CCIR_2020 (1 << 5) |
| #define ADL_GAMUT_SPACE_APPCTRL (1 << 6) |
| #define ADL_WHITE_POINT_5000K (1 << 0) |
Predefine white point values are structed similar to gamut .
| #define ADL_WHITE_POINT_6500K (1 << 1) |
| #define ADL_WHITE_POINT_7500K (1 << 2) |
| #define ADL_WHITE_POINT_9300K (1 << 3) |
| #define ADL_WHITE_POINT_CUSTOM (1 << 4) |
| #define ADL_GAMUT_WHITEPOINT_DIVIDER 10000 |
gamut and white point coordinates are from 0.0 -1.0 and divider is used to find the real value . X float = X int /divider
| #define ADL_REGAMMA_COEFFICIENT_A0_DIVIDER 10000000 |
gamma a0 coefficient uses the following divider:
| #define ADL_REGAMMA_COEFFICIENT_A1A2A3_DIVIDER 1000 |
gamma a1 ,a2,a3 coefficients use the following divider:
| #define ADL_EDID_REGAMMA_COEFFICIENTS (1 << 0) |
describes whether the coefficients are from EDID or custom user values.
| #define ADL_USE_GAMMA_RAMP (1 << 4) |
Used for struct ADLRegamma. Feature if set use gamma ramp, if missing use regamma coefficents.
| #define ADL_APPLY_DEGAMMA (1 << 5) |
Used for struct ADLRegamma. If the gamma ramp flag is used then the driver could apply de gamma corretion to the supplied curve and this depends on this flag.
| #define ADL_EDID_REGAMMA_PREDEFINED_SRGB (1 << 1) |
specifies that standard SRGB gamma should be applied
| #define ADL_EDID_REGAMMA_PREDEFINED_PQ (1 << 2) |
specifies that PQ gamma curve should be applied
| #define ADL_EDID_REGAMMA_PREDEFINED_PQ_2084_INTERIM (1 << 3) |
specifies that PQ gamma curve should be applied, lower max nits
| #define ADL_EDID_REGAMMA_PREDEFINED_36 (1 << 6) |
specifies that 3.6 gamma should be applied
| #define ADL_EDID_REGAMMA_PREDEFINED_BT709 (1 << 7) |
specifies that BT709 gama should be applied
| #define ADL_EDID_REGAMMA_PREDEFINED_APPCTRL (1 << 8) |
specifies that regamma should be disabled, and application controls regamma content (of the whole screen)


Since the system subroutines are used by other library routines that
require reentrancy, libc.a provides cover routines (for example,
the reentrant version of fork
is _fork_r
). These cover
routines are consistent with the other reentrant subroutines in this
library, and achieve reentrancy by using a reserved global data block
(see Reentrancy).
_open_r
open
. It takes a pointer
to the global data block, which holds errno
.
int _open_r(void *reent, const char *file, int flags, int mode);
_close_r
close
. It takes a pointer to the global
data block, which holds errno
.
int _close_r(void *reent, int fd);
_lseek_r
lseek
. It takes a pointer to the global
data block, which holds errno
.
off_t _lseek_r(void *reent, int fd, off_t pos, int whence);
_read_r
read
. It takes a pointer to the global
data block, which holds errno
.
long _read_r(void *reent, int fd, void *buf, size_t cnt);
_write_r
write
. It takes a pointer to the global
data block, which holds errno
.
long _write_r(void *reent, int fd, const void *buf, size_t cnt);
_fork_r
fork
. It takes a pointer to the global
data block, which holds errno
.
int _fork_r(void *reent);
_wait_r
wait
. It takes a pointer to the global
data block, which holds errno
.
int _wait_r(void *reent, int *status);
_stat_r
stat
. It takes a pointer to the global
data block, which holds errno
.
int _stat_r(void *reent, const char *file, struct stat *pstat);
_fstat_r
fstat
. It takes a pointer to the global
data block, which holds errno
.
int _fstat_r(void *reent, int fd, struct stat *pstat);
_link_r
link
. It takes a pointer to the global
data block, which holds errno
.
int _link_r(void *reent, const char *old, const char *new);
_unlink_r
unlink
. It takes a pointer to the global
data block, which holds errno
.
int _unlink_r(void *reent, const char *file);
_sbrk_r
sbrk
. It takes a pointer to the global
data block, which holds errno
.
char *_sbrk_r(void *reent, size_t incr);


THtmlViewer component
Declaration
property Position: LongInt;
The Position property is a coded number (LongInt) which specifies the part of the document appearing at the top of the window. Since this number is relatively independent of document reformatting, it may be used to save a position to be returned to at a later time.
Specifying a Position of 0 will take you to the top of the document. Other values are not easily calculated.
For an alternate method of positioning, see:
var
SavePos: LongInt;
....
SavePos := Viewer.Position; {save the position}
....
{intervening operations which may reformat the document}
....
Viewer.Position := SavePos; {return to original spot in document}