File: AltaData.cpp

package info (click to toggle)
libapogee3 3.2%2B20221221183454-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,284 kB
  • sloc: cpp: 26,737; sh: 8; makefile: 3
file content (136 lines) | stat: -rw-r--r-- 6,211 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*! 
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright(c) 2009 Apogee Instruments, Inc. 
* \class AltaData 
* \brief Alta platform data 
* 
*/ 

#include "AltaData.h" 

namespace
{
    const uint16_t APN_HBINNING_MAX_ALTA      = 10;
    const uint16_t APN_VBINNING_MAX_ALTA      = 2048;

    const double APN_TIMER_RESOLUTION_ALTA          = 0.00000256;
    const double APN_PERIOD_TIMER_RESOLUTION_ALTA   = 0.000000040;

    const long APN_TIMER_OFFSET_COUNT_ALTA          = 3;

    const double APN_SEQUENCE_DELAY_RESOLUTION_ALTA = 0.000327;
    const double APN_SEQUENCE_DELAY_MAXIMUM_ALTA    = 21.429945;
    const double APN_SEQUENCE_DELAY_MINIMUM_ALTA    = 0.000327;

    const double APN_EXPOSURE_TIME_MIN_ALTA         = 0.00001;		// 10us is the defined min.
    const double APN_EXPOSURE_TIME_MAX_ALTA         = 10990.0;		// seconds

    const double APN_TDI_RATE_RESOLUTION_ALTA       = 0.00000512;
    const double APN_TDI_RATE_MIN_ALTA              = 0.00000512;
    const double APN_TDI_RATE_MAX_ALTA              = 0.335;
    const double APN_TDI_RATE_DEFAULT_ALTA          = 0.100;

    const double APN_VOLTAGE_RESOLUTION_ALTA        = 0.00439453;

    const double APN_SHUTTER_CLOSE_DIFF_ALTA        = 0.00001024;

    const double APN_STROBE_TIMER_RESOLUTION_ALTA  = APN_TIMER_RESOLUTION_ALTA;
    const double APN_STROBE_POSITION_MIN_ALTA       = 0.00000331;
    const double APN_STROBE_POSITION_MAX_ALTA       = 0.1677;
    const double APN_STROBE_POSITION_DEFAULT_ALTA   = 0.001;

    const double APN_STROBE_PERIOD_MIN_ALTA         = 0.000000045;
    const double APN_STROBE_PERIOD_MAX_ALTA         = 0.0026;
    const double APN_STROBE_PERIOD_DEFAULT_ALTA     = 0.001;

    const long APN_TEMP_COUNTS_ALTA                 = 4096;
    const double APN_TEMP_KELVIN_SCALE_OFFSET_ALTA  = 273.16;

    //documented with register 55, desired temp, in firmware doc
    const double APN_TEMP_SETPOINT_MIN_ALTA          = -60.0; // ~213 Kelvin
    const double APN_TEMP_SETPOINT_MAX_ALTA         = 39.0; // ~313 Kelvin

    const double APN_TEMP_BACKOFFPOINT_MIN_ALTA = 0.1;

    //per discussion with wayne 16 march 2010, the maximum input value into the
    //backoff register should be 1000.  1000*0.024414 ~ 24.0
    const double APN_TEMP_BACKOFFPOINT_MAX_ALTA        = 24.0;

    const double APN_TEMP_HEATSINK_MIN_ALTA         = 240;
    const double APN_TEMP_HEATSINK_MAX_ALTA         = 340;

    const long APN_TEMP_SETPOINT_ZERO_POINT_ALTA    = 2458;  // emperically determined zero celuius point
    const long APN_TEMP_HEATSINK_ZERO_POINT_ALTA    = 1351;

    const double APN_TEMP_DEGREES_PER_BIT_ALTA      = 0.025146;

    const uint16_t APN_FAN_SPEED_OFF_ALTA     = 0;
    const uint16_t APN_FAN_SPEED_LOW_ALTA     = 3300;
    const uint16_t APN_FAN_SPEED_MEDIUM_ALTA  = 3660;
    const uint16_t APN_FAN_SPEED_HIGH_ALTA    = 4095;

    const double APN_PREFLASH_DURATION_ALTA         = 0.160;
    const uint16_t COOLER_DRIVE_MAX = 3200;
    const double COOLER_DRIVE_OFFSET = 600.0;
    const double COOLER_DRIVE_DIVISOR = 2600.0;

}

//////////////////////////// 
// CTOR 
AltaData::AltaData() : PlatformData(
                                    APN_HBINNING_MAX_ALTA,      
                                    APN_VBINNING_MAX_ALTA,      
                                    APN_TIMER_RESOLUTION_ALTA,
                                    APN_PERIOD_TIMER_RESOLUTION_ALTA,
                                    APN_TIMER_OFFSET_COUNT_ALTA,    
                                    APN_SEQUENCE_DELAY_RESOLUTION_ALTA,
                                    APN_SEQUENCE_DELAY_MAXIMUM_ALTA,
                                    APN_SEQUENCE_DELAY_MINIMUM_ALTA,   
                                    APN_EXPOSURE_TIME_MIN_ALTA,      
                                    APN_EXPOSURE_TIME_MAX_ALTA,        
                                    APN_TDI_RATE_RESOLUTION_ALTA,
                                    APN_TDI_RATE_MIN_ALTA,      
                                    APN_TDI_RATE_MAX_ALTA,             
                                    APN_TDI_RATE_DEFAULT_ALTA,         
                                    APN_VOLTAGE_RESOLUTION_ALTA,
                                    APN_SHUTTER_CLOSE_DIFF_ALTA,       
                                    APN_STROBE_TIMER_RESOLUTION_ALTA,
                                    APN_STROBE_POSITION_MIN_ALTA,
                                    APN_STROBE_POSITION_MAX_ALTA,      
                                    APN_STROBE_POSITION_DEFAULT_ALTA,
                                    APN_STROBE_PERIOD_MIN_ALTA,  
                                    APN_STROBE_PERIOD_MAX_ALTA,        
                                    APN_STROBE_PERIOD_DEFAULT_ALTA,
                                    APN_TEMP_COUNTS_ALTA,      
                                    APN_TEMP_KELVIN_SCALE_OFFSET_ALTA,
                                    APN_TEMP_SETPOINT_MIN_ALTA, 
                                    APN_TEMP_SETPOINT_MAX_ALTA, 
                                    APN_TEMP_BACKOFFPOINT_MIN_ALTA,
                                    APN_TEMP_BACKOFFPOINT_MAX_ALTA,
                                    APN_TEMP_HEATSINK_MIN_ALTA,        
                                    APN_TEMP_HEATSINK_MAX_ALTA,        
                                    APN_TEMP_SETPOINT_ZERO_POINT_ALTA,
                                    APN_TEMP_HEATSINK_ZERO_POINT_ALTA,   
                                    APN_TEMP_DEGREES_PER_BIT_ALTA,     
                                    APN_FAN_SPEED_OFF_ALTA,
                                    APN_FAN_SPEED_LOW_ALTA,    
                                    APN_FAN_SPEED_MEDIUM_ALTA,
                                    APN_FAN_SPEED_HIGH_ALTA, 
                                    APN_PREFLASH_DURATION_ALTA,
                                    COOLER_DRIVE_MAX,
                                    COOLER_DRIVE_OFFSET,
                                    COOLER_DRIVE_DIVISOR)       
{ 

} 

//////////////////////////// 
// DTOR 
AltaData::~AltaData() 
{ 

}