OBJECT = COLUMN NAME = SCLK COLUMN_NUMBER = 1 BYTES = 4 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 1 DESCRIPTION = "The Rover Compute Element (RCR) clock in seconds." END_OBJECT = COLUMN OBJECT = COLUMN NAME = AUTOBYTE_CNT COLUMN_NUMBER = 2 BYTES = 4 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 5 DESCRIPTION = "The number of bytes in the data packet. This includes FRAME_HDR through DAN_CHECKSUM" END_OBJECT = COLUMN OBJECT = COLUMN NAME = FRAME_HDR COLUMN_NUMBER = 3 BYTES = 4 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 9 DESCRIPTION = "The data frame header. This is broken down into the following bits: bits 1 - 8 is opcode which specifies an instrument activity, bits 9 - 10 specifies error control algorithm, DAN uses the checksum error control, bit 11 indicates the presence (1) or absense (0) of both DATA_LEN and DATA. bit 12 command reply flag bits 13 - 32 are a status flag defined as follows: bit 13 is on if instrument in standby mode, bit 14 is on if instrument in passive mode bit 15 is on if instrument in active mode bits 16 - 27 are unused bits 28 - 32 condition code, 1 - Nominal, 2 - Frame_err, 3 - Overrun, 4 - Parity Error, 6 - Bad_Opcode, 7 - Bad_Err Control type, 10 - Bad_condition code, 11 - Bad_Data length, 12 - Bad_checksum, 13 - Wrond_mode, 14 - Bad Data." END_OBJECT = COLUMN OBJECT = COLUMN NAME = DATA_LEN COLUMN_NUMBER = 4 BYTES = 4 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 13 DESCRIPTION = "The length of the data packet from the instrument in bytes. This includes column SYNCRO through HV_VALUES." END_OBJECT = COLUMN OBJECT = COLUMN NAME = SYNCRO COLUMN_NUMBER = 5 BYTES = 4 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 17 DESCRIPTION = "The synchronization bytes at the beginning of each record." END_OBJECT = COLUMN OBJECT = COLUMN NAME = DATA_FRAME_NUMBER COLUMN_NUMBER = 6 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 21 DESCRIPTION = "Incrementing counter for data packets." END_OBJECT = COLUMN OBJECT = COLUMN NAME = DAN_TIME COLUMN_NUMBER = 7 BYTES = 4 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 23 DESCRIPTION = "DAN instrument time in milliseconds since last power up." END_OBJECT = COLUMN OBJECT = CONTAINER NAME = CMDS_ARRAY BYTES = 8 START_BYTE = 27 REPETITIONS = 8 DESCRIPTION = "The last 8 commands sent to the instrument." OBJECT = COLUMN COLUMN_NUMBER = 8 NAME = COMMAND_TIME BYTES = 4 START_BYTE = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER DESCRIPTION = "DAN instrument time in milliseconds when command was executed." END_OBJECT = COLUMN OBJECT = COLUMN COLUMN_NUMBER = 9 NAME = OPCODE BYTES = 1 START_BYTE = 5 DATA_TYPE = MSB_UNSIGNED_INTEGER DESCRIPTION = "Command identifier." END_OBJECT = COLUMN OBJECT = COLUMN COLUMN_NUMBER = 10 NAME = PARAMS BYTES = 1 START_BYTE = 6 DATA_TYPE = MSB_UNSIGNED_INTEGER DESCRIPTION = "Bit field: - bit 7: data present bit, when '0' argument1 and argument2 datafields are meaningless - bit 6 and 5 are meaningless - bits 4 through 0: condition code, shows status of the command execution according to electrical specs." END_OBJECT = COLUMN OBJECT = COLUMN COLUMN_NUMBER = 11 NAME = ARG1 BYTES = 1 START_BYTE = 7 DATA_TYPE = MSB_UNSIGNED_INTEGER DESCRIPTION = "First argument to the command." END_OBJECT = COLUMN OBJECT = COLUMN COLUMN_NUMBER = 12 NAME = ARG2 BYTES = 1 START_BYTE = 8 DATA_TYPE = MSB_UNSIGNED_INTEGER DESCRIPTION = "Second argument to the command." END_OBJECT = COLUMN END_OBJECT = CONTAINER OBJECT = COLUMN NAME = FRAME_TYPE COLUMN_NUMBER = 48 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 91 DESCRIPTION = "Current instrument mode, 0 - standby, 1 - passive, 2 - active." END_OBJECT = COLUMN OBJECT = COLUMN NAME = TEMP1 COLUMN_NUMBER = 49 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 92 DESCRIPTION = "PNG temperature in DN." END_OBJECT = COLUMN OBJECT = COLUMN NAME = TEMP2 COLUMN_NUMBER = 50 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 93 DESCRIPTION = "High voltage board temperature in DN." END_OBJECT = COLUMN OBJECT = COLUMN NAME = TEMP3 COLUMN_NUMBER = 51 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 94 DESCRIPTION = "FPGA temperature in DN." END_OBJECT = COLUMN OBJECT = COLUMN NAME = TEMP4 COLUMN_NUMBER = 52 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 95 DESCRIPTION = "Analog board #1 temperature in DN." END_OBJECT = COLUMN OBJECT = COLUMN NAME = TEMP5 COLUMN_NUMBER = 53 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 96 DESCRIPTION = "Analog board #2 temperature in DN." END_OBJECT = COLUMN OBJECT = COLUMN NAME = TEMP6 COLUMN_NUMBER = 54 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 97 DESCRIPTION = "Case temperature in DN." END_OBJECT = COLUMN OBJECT = COLUMN NAME = PNG_CHARGE_TIME COLUMN_NUMBER = 55 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 98 DESCRIPTION = "PNG charge time in milliseconds" END_OBJECT = COLUMN OBJECT = COLUMN NAME = NUM_PULSES COLUMN_NUMBER = 56 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 99 DESCRIPTION = "Number of PNG pulses since power on." END_OBJECT = COLUMN OBJECT = COLUMN NAME = NUM_CMD_RECV COLUMN_NUMBER = 57 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 101 DESCRIPTION = "Number of commands received since power on." END_OBJECT = COLUMN OBJECT = COLUMN NAME = NUM_CMD_RJCT COLUMN_NUMBER = 58 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 103 DESCRIPTION = "Number of commands rejected since power on." END_OBJECT = COLUMN OBJECT = COLUMN NAME = PNG_ALARM COLUMN_NUMBER = 59 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 105 DESCRIPTION = "Indication of PNG Alarm, bifield: Bit 7: Alarm by PNG HV out of range Bit 6: PNG temperature out of range Bit 5: Detector 2 anomaly countrate Bit 4: Detector 1 anomaly countrate Bit 0: PNG alarm detected." END_OBJECT = COLUMN OBJECT = COLUMN NAME = RESET_TYPE COLUMN_NUMBER = 60 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 106 DESCRIPTION = "Type of reset: 0 - Power on reset 1 - RS-422 cmd reset 2 - Discrete line A reset 3 - Discrete line B reset." END_OBJECT = COLUMN OBJECT = COLUMN NAME = HV_VALUES COLUMN_NUMBER = 61 BYTES = 16 ITEMS = 16 ITEM_BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 107 DESCRIPTION = "History of the PNG high voltage, last 16 values. Real value in Volts calculated by 1 / (17 * value / 1600000)" END_OBJECT = COLUMN OBJECT = COLUMN NAME = NUM_NORM_PULSES COLUMN_NUMBER = 62 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 123 DESCRIPTION = "Number of normal pulses accumulated in CTN and CETN." END_OBJECT = COLUMN OBJECT = COLUMN NAME = NUM_SPONTANEOUS_PULSES COLUMN_NUMBER = 63 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 125 DESCRIPTION = "Number of spontaneous pulses not accumulated." END_OBJECT = COLUMN OBJECT = COLUMN NAME = NUM_MISSED_PULSES COLUMN_NUMBER = 64 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 126 DESCRIPTION = "Number of pulses that did not take place." END_OBJECT = COLUMN OBJECT = COLUMN NAME = ACCUM_TIME COLUMN_NUMBER = 65 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 127 DESCRIPTION = "Accumulation time for measurement in 1/10sec." END_OBJECT = COLUMN OBJECT = COLUMN NAME = PNG_FREQUENCY COLUMN_NUMBER = 66 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 129 DESCRIPTION = "Pulsing Neutron Generator frequency." END_OBJECT = COLUMN OBJECT = COLUMN NAME = LEVELS COLUMN_NUMBER = 67 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 130 DESCRIPTION = "Bits 7:6 = High Voltage 1 (set by SET_HV command). 0 = off, 2 = high, 3 = low. Bits 5:4 = High Voltage 2 (set by SET_HV command). 0 = off, 2 = high, 3 = low. Bits 3:2 = Discriminator level 1 (set by SET_DISC command). 0 = low, 1 = high. Bits 1:0 = Discriminator level 2 (set by SET_DISC command). 0 = low, 1 = high." END_OBJECT = COLUMN OBJECT = COLUMN NAME = BIN_TIME COLUMN_NUMBER = 68 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 131 DESCRIPTION = "basic binning time for pulses, divide by 2 to get microseconds." END_OBJECT = COLUMN OBJECT = COLUMN NAME = BIN_SCALING COLUMN_NUMBER = 69 BYTES = 1 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 132 DESCRIPTION = "Multiplier of how much larger next bin will be." END_OBJECT = COLUMN OBJECT = COLUMN NAME = PULSE_TIME COLUMN_NUMBER = 70 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 133 DESCRIPTION = "Pulsing time in 1/10sec." END_OBJECT = COLUMN OBJECT = COLUMN NAME = MAX_PULSES COLUMN_NUMBER = 71 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 135 DESCRIPTION = "Maximum number of pulses." END_OBJECT = COLUMN OBJECT = COLUMN NAME = PNG_PROTECTION COLUMN_NUMBER = 72 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 137 DESCRIPTION = "PNG protection options. Least Significant Bit is bit 0. When bits 0-3 are on, bits 8-15 are ignored bits 11:08 = protection threshold for detector #1. bits 15:12 = protection threshold for detector #2. value 0 = highest, 15 = lowest 15 is lowest protection so most likely to allow PNG_WARNING) bit 3 = '1' to disable warning from PNG HV measurements bit 2 = '1' to disable warning from PNG temperature sensors bit 1 = '1' to disable warning from detector #2 bit 0 = '1' to disable warning from detector #1" END_OBJECT = COLUMN OBJECT = COLUMN NAME = CTN_SPECTRUM COLUMN_NUMBER = 73 BYTES = 32 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 139 ITEMS = 16 ITEM_BYTES = 2 DESCRIPTION = "A single 16 channel CTN spectrum over time in ACCUM_TIME. Epithermal neutrons from 0.4 eV up to energy of about 100 keV." END_OBJECT = COLUMN OBJECT = COLUMN NAME = CETN_SPECTRUM COLUMN_NUMBER = 74 BYTES = 32 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 171 ITEMS = 16 ITEM_BYTES = 2 DESCRIPTION = "A single 16 channel CETN spectrum over time in ACCUM_TIME. Epithermal and thermal neutrons up to energy of about 100 keV." END_OBJECT = COLUMN OBJECT = COLUMN NAME = DAN_CHECKSUM COLUMN_NUMBER = 75 BYTES = 2 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 203 DESCRIPTION = "Checksum at end of instrument data, lowest two bytes of the sum of all bytes in data." END_OBJECT = COLUMN OBJECT = COLUMN NAME = FLETCH_CHECKSUM COLUMN_NUMBER = 76 BYTES = 4 DATA_TYPE = MSB_UNSIGNED_INTEGER START_BYTE = 205 DESCRIPTION = "Fletcher checksum added by rover processor." END_OBJECT = COLUMN