Observation
libObservation
Engineering_Header.hh
Go to the documentation of this file.
1
/* HiRISE Engineering_Header
2
3
PIRL CVS ID: Engineering_Header.hh,v 1.28 2020/02/14 01:17:18 schaller Exp
4
5
Copyright (C) 2004-2020 Arizona Board of Regents on behalf of the Lunar and
6
Planetary Laboratory at the University of Arizona.
7
8
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
9
this file except in compliance with the License. You may obtain a copy of the
10
License at
11
12
http://www.apache.org/licenses/LICENSE-2.0
13
14
Unless required by applicable law or agreed to in writing, software distributed
15
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
16
CONDITIONS OF ANY KIND, either express or implied. See the License for the
17
specific language governing permissions and limitations under the License.
18
*/
19
#ifndef _HiRISE_Engineering_Header_
20
#define _HiRISE_Engineering_Header_
21
22
// UA::HiRISE
23
#include "
Data_Component.hh
"
24
25
#if defined (INCLUDE_PVL)
26
// idaeim::PVL
27
#include "
PVL.hh
"
28
#endif
29
30
#include <iostream>
31
32
namespace
UA
33
{
34
namespace
HiRISE
35
{
36
/*******************************************************************************
37
Engineering_Header
38
*/
91
class
Engineering_Header
92
:
public
Data_Component
93
{
94
public
:
95
/*==============================================================================
96
Constants:
97
*/
99
static
const
char
*
const
100
ID
;
101
103
static
const
char
*
const
104
NAME
;
105
116
enum
Element
117
{
118
LUT_Compressed
,
119
Binning_Factor
,
120
Delta_Line_Time
,
121
TDI_Stages
,
122
Trimming
,
123
Post_Binned_Lines
,
124
FPGA_Code_Version
,
125
DLL_Locked
,
126
DLL_Reset_Count
,
127
DLL_Locked_Once
,
128
DLL_Frequency_Correct_Count
,
129
ADC_Timing_Settings
,
130
Pad
,
131
132
// The total number of Elements:
133
Total_Elements
134
};
135
137
static
const
char
*
138
NAMES
[];
139
141
static
const
Index
142
COMPONENT_BYTES
;
143
145
static
const
Index
146
OFFSETS
[];
147
165
static
const
Index
166
ARRAY_COUNTS
[][2];
167
169
static
const
char
*
const
170
FORMAT_FILENAME
;
171
173
enum
DLL_Clock
174
{
175
FIRST_CLOCK
,
176
SECOND_CLOCK
177
};
178
180
enum
ADC_Timing_Field
181
{
182
ADC_RESET_TIMING
,
183
ADC_IMAGE_TIMING
184
};
185
187
static
const
u_int_32
188
ADC_TIMING_MASKS
[2];
189
190
/*==============================================================================
191
Constructors
192
*/
199
Engineering_Header
();
200
211
explicit
Engineering_Header
(std::istream& stream);
212
221
Engineering_Header
(
const
Engineering_Header
& component,
222
bool
data_duplicate =
true
);
223
229
Engineering_Header
&
operator=
(
const
Engineering_Header
& component);
230
231
/*==============================================================================
232
Accessors
233
*/
240
std::string
id
()
const
;
241
247
const
char
*
name
()
const
;
248
257
u_int_32
ADC_timing
(
Index
channel,
ADC_Timing_Field
field)
const
;
258
259
/*==============================================================================
260
Printing
261
*/
273
std::ostream&
print
274
(std::ostream& stream = std::cout,
bool
verbose =
false
)
const
;
275
276
#if defined (INCLUDE_PVL)
277
/*==============================================================================
278
PVL
279
*/
287
idaeim::PVL::Aggregate
*
PVL
()
const
;
288
299
idaeim::PVL::Aggregate
*
PVL_description
()
const
;
300
301
#endif
// defined (INCLUDE_PVL)
302
303
/*==============================================================================
304
Validation
305
*/
315
bool
is_valid
()
const
;
316
};
317
318
}
// namespace HiRISE
319
}
// namespace UA
320
#endif
Data_Component.hh
PVL.hh
UA::HiRISE::Data_Component
A Data_Component provides a common, virtual interface for all HiRISE Observation data blocks.
Definition:
Data_Component.hh:124
UA::HiRISE::Engineering_Header
An Engineering_Header contains a minimal core set of observation control parameters.
Definition:
Engineering_Header.hh:93
UA::HiRISE::Engineering_Header::print
std::ostream & print(std::ostream &stream=std::cout, bool verbose=false) const
Prints the component structure and contents.
Definition:
Engineering_Header.cc:231
UA::HiRISE::Engineering_Header::ADC_TIMING_MASKS
static const u_int_32 ADC_TIMING_MASKS[2]
ADC_Timing_Settings field value masks.
Definition:
Engineering_Header.hh:188
UA::HiRISE::Engineering_Header::FORMAT_FILENAME
static const char *const FORMAT_FILENAME
The name of the external PDS format description file.
Definition:
Engineering_Header.hh:170
UA::HiRISE::Engineering_Header::NAMES
static const char * NAMES[]
The name of each Element.
Definition:
Engineering_Header.hh:138
UA::HiRISE::Engineering_Header::operator=
Engineering_Header & operator=(const Engineering_Header &component)
Assigns another Engineering_Header to this one.
Definition:
Engineering_Header.cc:188
UA::HiRISE::Engineering_Header::id
std::string id() const
Provides the class ID on a line followed by the base Data_Component::id.
Definition:
Engineering_Header.cc:201
UA::HiRISE::Engineering_Header::DLL_Clock
DLL_Clock
Selects DLL_Locked{_Once} clock.
Definition:
Engineering_Header.hh:174
UA::HiRISE::Engineering_Header::FIRST_CLOCK
@ FIRST_CLOCK
Definition:
Engineering_Header.hh:175
UA::HiRISE::Engineering_Header::SECOND_CLOCK
@ SECOND_CLOCK
Definition:
Engineering_Header.hh:176
UA::HiRISE::Engineering_Header::ADC_timing
u_int_32 ADC_timing(Index channel, ADC_Timing_Field field) const
Gets an ADC timing value.
Definition:
Engineering_Header.cc:211
UA::HiRISE::Engineering_Header::OFFSETS
static const Index OFFSETS[]
Data_Block data storage address offset for each Element.
Definition:
Engineering_Header.hh:146
UA::HiRISE::Engineering_Header::name
const char * name() const
Gets the NAME of this class.
Definition:
Engineering_Header.cc:205
UA::HiRISE::Engineering_Header::Element
Element
An Element refers to a data containing constituent of a component.
Definition:
Engineering_Header.hh:117
UA::HiRISE::Engineering_Header::Total_Elements
@ Total_Elements
Definition:
Engineering_Header.hh:133
UA::HiRISE::Engineering_Header::Binning_Factor
@ Binning_Factor
Definition:
Engineering_Header.hh:119
UA::HiRISE::Engineering_Header::DLL_Frequency_Correct_Count
@ DLL_Frequency_Correct_Count
Definition:
Engineering_Header.hh:128
UA::HiRISE::Engineering_Header::DLL_Locked
@ DLL_Locked
Definition:
Engineering_Header.hh:125
UA::HiRISE::Engineering_Header::ADC_Timing_Settings
@ ADC_Timing_Settings
Definition:
Engineering_Header.hh:129
UA::HiRISE::Engineering_Header::Trimming
@ Trimming
Definition:
Engineering_Header.hh:122
UA::HiRISE::Engineering_Header::FPGA_Code_Version
@ FPGA_Code_Version
Definition:
Engineering_Header.hh:124
UA::HiRISE::Engineering_Header::Post_Binned_Lines
@ Post_Binned_Lines
Definition:
Engineering_Header.hh:123
UA::HiRISE::Engineering_Header::LUT_Compressed
@ LUT_Compressed
Definition:
Engineering_Header.hh:118
UA::HiRISE::Engineering_Header::Pad
@ Pad
Definition:
Engineering_Header.hh:130
UA::HiRISE::Engineering_Header::DLL_Locked_Once
@ DLL_Locked_Once
Definition:
Engineering_Header.hh:127
UA::HiRISE::Engineering_Header::Delta_Line_Time
@ Delta_Line_Time
Definition:
Engineering_Header.hh:120
UA::HiRISE::Engineering_Header::DLL_Reset_Count
@ DLL_Reset_Count
Definition:
Engineering_Header.hh:126
UA::HiRISE::Engineering_Header::TDI_Stages
@ TDI_Stages
Definition:
Engineering_Header.hh:121
UA::HiRISE::Engineering_Header::is_valid
bool is_valid() const
Tests if the component data is valid.
Definition:
Engineering_Header.cc:363
UA::HiRISE::Engineering_Header::Engineering_Header
Engineering_Header()
Constructs an empty Engineering_Header.
Definition:
Engineering_Header.cc:152
UA::HiRISE::Engineering_Header::ARRAY_COUNTS
static const Index ARRAY_COUNTS[][2]
Data_Block array element value counts each keyed to an Element Index.
Definition:
Engineering_Header.hh:166
UA::HiRISE::Engineering_Header::ADC_Timing_Field
ADC_Timing_Field
Selects ADC_timing field.
Definition:
Engineering_Header.hh:181
UA::HiRISE::Engineering_Header::ADC_RESET_TIMING
@ ADC_RESET_TIMING
Definition:
Engineering_Header.hh:182
UA::HiRISE::Engineering_Header::ADC_IMAGE_TIMING
@ ADC_IMAGE_TIMING
Definition:
Engineering_Header.hh:183
UA::HiRISE::Engineering_Header::ID
static const char *const ID
Class identification name with source code version and date.
Definition:
Engineering_Header.hh:100
UA::HiRISE::Engineering_Header::NAME
static const char *const NAME
The component name.
Definition:
Engineering_Header.hh:104
UA::HiRISE::Engineering_Header::PVL_description
idaeim::PVL::Aggregate * PVL_description() const
Produces a PVL description of the component for a PDS label.
Definition:
Engineering_Header.cc:305
UA::HiRISE::Engineering_Header::PVL
idaeim::PVL::Aggregate * PVL() const
Produces a PVL rendition of the component.
Definition:
Engineering_Header.cc:261
UA::HiRISE::Engineering_Header::COMPONENT_BYTES
static const Index COMPONENT_BYTES
Total number of bytes in the Data_Block.
Definition:
Engineering_Header.hh:142
idaeim::PVL::Aggregate
UA::HiRISE::u_int_32
unsigned int u_int_32
UA::HiRISE::Index
PIRL::Data_Block::Index Index
Data_Block element index type.
Definition:
Data_Component.hh:95
UA
University of Arizona.
Generated on Wed Jun 30 2021 16:28:14 for UA::HiRISE::Observation by
1.9.1