File: AspenData.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 (133 lines) | stat: -rw-r--r-- 7,340 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
/*! 
* 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) 2013 Apogee Instruments, Inc. 
* \class AspenData 
* \brief Aspen platform constants 
* 
*/ 

#include "AspenData.h" 

namespace
{
    const uint16_t APN_HBINNING_MAX_ASPEN      = 20;
    const uint16_t APN_VBINNING_MAX_ASPEN      = 4095;	
                                                        
    const double APN_TIMER_RESOLUTION_ASPEN          = 0.00000133;	
    const double APN_PERIOD_TIMER_RESOLUTION_ASPEN   = 0.00000002078;
                                                        
    const long APN_TIMER_OFFSET_COUNT_ASPEN          = 3;
                                                        
    const double APN_SEQUENCE_DELAY_RESOLUTION_ASPEN = 0.00037547;
    const double APN_SEQUENCE_DELAY_MAXIMUM_ASPEN    = 24.606426;	
    const double APN_SEQUENCE_DELAY_MINIMUM_ASPEN    = 0.00037547;	
                                                        
    const double APN_EXPOSURE_TIME_MIN_ASPEN           = 0.00001;
    const double APN_EXPOSURE_TIME_MAX_ASPEN          = 5712.3;
                                                        
    const double APN_TDI_RATE_RESOLUTION_ASPEN        = 0.00000533;
    const double APN_TDI_RATE_MIN_ASPEN                         = 0.00000533;	
    const double APN_TDI_RATE_MAX_ASPEN                        = 0.349;
    const double APN_TDI_RATE_DEFAULT_ASPEN               = 0.100;
                                                        
    const double APN_VOLTAGE_RESOLUTION_ASPEN        = 0.00439453;
                                                        
    const double APN_SHUTTER_CLOSE_DIFF_ASPEN          = 0.00000533;
                                                        
    const double APN_STROBE_TIMER_RESOLUTION_ASPEN          = 0.00001067;	
    const double APN_STROBE_POSITION_MIN_ASPEN                   = 0.00000533;
    const double APN_STROBE_POSITION_MAX_ASPEN                  = 0.3493;
    const double APN_STROBE_POSITION_DEFAULT_ASPEN         = 0.001;
                                                        
    const double APN_STROBE_PERIOD_MIN_ASPEN                = 0.000000026;
    const double APN_STROBE_PERIOD_MAX_ASPEN              = 0.00136;
    const double APN_STROBE_PERIOD_DEFAULT_ASPEN     = 0.001;
                                                        
    const long APN_TEMP_COUNTS_ASPEN                 = 4096;		
    const double APN_TEMP_KELVIN_SCALE_OFFSET_ASPEN  = 273.16;
                                                 
    //documented with register 55, desired temp, in firmware doc
    const double APN_TEMP_SETPOINT_MIN_ASPEN         = -60.0; // ~213 Kelvin
    const double APN_TEMP_SETPOINT_MAX_ASPEN         = 39.0; // ~313 Kelvin

    const double APN_TEMP_BACKOFFPOINT_MIN_ASPEN         = 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_ASPEN        = 24.0;
                                                        
    const double APN_TEMP_HEATSINK_MIN_ASPEN         = 240;
    const double APN_TEMP_HEATSINK_MAX_ASPEN         = 240;
                                                        
    const long APN_TEMP_SETPOINT_ZERO_POINT_ASPEN    = 2518;  // emperically determined zero celuius point
    const long APN_TEMP_HEATSINK_ZERO_POINT_ASPEN    = 2518;
                                                        
    const double APN_TEMP_DEGREES_PER_BIT_ASPEN      = 0.025146;
                                                        
    const uint16_t APN_FAN_SPEED_OFF_ASPEN     = 0;	
    const uint16_t APN_FAN_SPEED_LOW_ASPEN     = 18000;		
    const uint16_t APN_FAN_SPEED_MEDIUM_ASPEN  = 25000;	
    const uint16_t APN_FAN_SPEED_HIGH_ASPEN    = 35000;		
                                                        
    const double APN_PREFLASH_DURATION_ASPEN         = 0.160;
    const uint16_t COOLER_DRIVE_MAX = 55000;
    const double COOLER_DRIVE_OFFSET = 10000.0;
    const double COOLER_DRIVE_DIVISOR = 45000.0;
}

////////////////////////////                            
// CTOR                                                 
AspenData::AspenData() : PlatformData(                
                                    APN_HBINNING_MAX_ASPEN,      
                                    APN_VBINNING_MAX_ASPEN,      
                                    APN_TIMER_RESOLUTION_ASPEN,
                                    APN_PERIOD_TIMER_RESOLUTION_ASPEN,
                                    APN_TIMER_OFFSET_COUNT_ASPEN,    
                                    APN_SEQUENCE_DELAY_RESOLUTION_ASPEN,
                                    APN_SEQUENCE_DELAY_MAXIMUM_ASPEN,
                                    APN_SEQUENCE_DELAY_MINIMUM_ASPEN,   
                                    APN_EXPOSURE_TIME_MIN_ASPEN,      
                                    APN_EXPOSURE_TIME_MAX_ASPEN,        
                                    APN_TDI_RATE_RESOLUTION_ASPEN,
                                    APN_TDI_RATE_MIN_ASPEN,      
                                    APN_TDI_RATE_MAX_ASPEN,             
                                    APN_TDI_RATE_DEFAULT_ASPEN,         
                                    APN_VOLTAGE_RESOLUTION_ASPEN,
                                    APN_SHUTTER_CLOSE_DIFF_ASPEN,       
                                    APN_STROBE_TIMER_RESOLUTION_ASPEN,
                                    APN_STROBE_POSITION_MIN_ASPEN,
                                    APN_STROBE_POSITION_MAX_ASPEN,      
                                    APN_STROBE_POSITION_DEFAULT_ASPEN,
                                    APN_STROBE_PERIOD_MIN_ASPEN,  
                                    APN_STROBE_PERIOD_MAX_ASPEN,        
                                    APN_STROBE_PERIOD_DEFAULT_ASPEN,
                                    APN_TEMP_COUNTS_ASPEN,      
                                    APN_TEMP_KELVIN_SCALE_OFFSET_ASPEN,
                                    APN_TEMP_SETPOINT_MIN_ASPEN, 
                                    APN_TEMP_SETPOINT_MAX_ASPEN,   
                                    APN_TEMP_BACKOFFPOINT_MIN_ASPEN,
                                    APN_TEMP_BACKOFFPOINT_MAX_ASPEN,
                                    APN_TEMP_HEATSINK_MIN_ASPEN,        
                                    APN_TEMP_HEATSINK_MAX_ASPEN,        
                                    APN_TEMP_SETPOINT_ZERO_POINT_ASPEN,
                                    APN_TEMP_HEATSINK_ZERO_POINT_ASPEN,   
                                    APN_TEMP_DEGREES_PER_BIT_ASPEN,     
                                    APN_FAN_SPEED_OFF_ASPEN,
                                    APN_FAN_SPEED_LOW_ASPEN,    
                                    APN_FAN_SPEED_MEDIUM_ASPEN,
                                    APN_FAN_SPEED_HIGH_ASPEN, 
                                    APN_PREFLASH_DURATION_ASPEN,
                                    COOLER_DRIVE_MAX,
                                    COOLER_DRIVE_OFFSET,
                                    COOLER_DRIVE_DIVISOR)        
{ 

} 
//////////////////////////// 
// DTOR 
AspenData::~AspenData() 
{ 

}