File: AscentData.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,425 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) 2009 Apogee Instruments, Inc. 
* \class AscentData 
* \brief Ascent platform constants 
* 
*/ 

#include "AscentData.h" 

namespace
{
    const uint16_t APN_HBINNING_MAX_ASCENT      = 20;
    const uint16_t APN_VBINNING_MAX_ASCENT      = 4095;	
                                                        
    const double APN_TIMER_RESOLUTION_ASCENT          = 0.00000133;	
    const double APN_PERIOD_TIMER_RESOLUTION_ASCENT   = 0.00000002078;
                                                        
    const long APN_TIMER_OFFSET_COUNT_ASCENT          = 3;
                                                        
    const double APN_SEQUENCE_DELAY_RESOLUTION_ASCENT = 0.00037547;
    const double APN_SEQUENCE_DELAY_MAXIMUM_ASCENT    = 24.606426;	
    const double APN_SEQUENCE_DELAY_MINIMUM_ASCENT    = 0.00037547;	
                                                        
    const double APN_EXPOSURE_TIME_MIN_ASCENT           = 0.00001;
    const double APN_EXPOSURE_TIME_MAX_ASCENT          = 5712.3;
                                                        
    const double APN_TDI_RATE_RESOLUTION_ASCENT        = 0.00000533;
    const double APN_TDI_RATE_MIN_ASCENT                         = 0.00000533;	
    const double APN_TDI_RATE_MAX_ASCENT                        = 0.349;
    const double APN_TDI_RATE_DEFAULT_ASCENT               = 0.100;
                                                        
    const double APN_VOLTAGE_RESOLUTION_ASCENT        = 0.00439453;
                                                        
    const double APN_SHUTTER_CLOSE_DIFF_ASCENT          = 0.00000533;
                                                        
    const double APN_STROBE_POSITION_MIN_ASCENT                   = 0.00000533;
    const double APN_STROBE_POSITION_MAX_ASCENT                  = 0.3493;
    const double APN_STROBE_POSITION_DEFAULT_ASCENT         = 0.001;
                                                        
    const double APN_STROBE_TIMER_RESOLUTION_ASCENT          = 0.00001067;	
    const double APN_STROBE_PERIOD_MIN_ASCENT                = 0.000000026;
    const double APN_STROBE_PERIOD_MAX_ASCENT              = 0.00136;
    const double APN_STROBE_PERIOD_DEFAULT_ASCENT     = 0.001;
                                                        
    const long APN_TEMP_COUNTS_ASCENT                 = 4096;		
    const double APN_TEMP_KELVIN_SCALE_OFFSET_ASCENT  = 273.16;
                                                 
    //documented with register 55, desired temp, in firmware doc
    const double APN_TEMP_SETPOINT_MIN_ASCENT         = -60.0; // ~213 Kelvin
    const double APN_TEMP_SETPOINT_MAX_ASCENT         = 39.0; // ~313 Kelvin

    const double APN_TEMP_BACKOFFPOINT_MIN_ASCENT         = 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_ASCENT        = 24.0;
                                                        
    const double APN_TEMP_HEATSINK_MIN_ASCENT         = 240;
    const double APN_TEMP_HEATSINK_MAX_ASCENT         = 240;
                                                        
    const long APN_TEMP_SETPOINT_ZERO_POINT_ASCENT    = 2458;  // emperically determined zero celuius point
    const long APN_TEMP_HEATSINK_ZERO_POINT_ASCENT    = 2458;
                                                        
    const double APN_TEMP_DEGREES_PER_BIT_ASCENT      = 0.025146;
                                                        
    const uint16_t APN_FAN_SPEED_OFF_ASCENT     = 0;	
    const uint16_t APN_FAN_SPEED_LOW_ASCENT     = 49611;		
    const uint16_t APN_FAN_SPEED_MEDIUM_ASCENT  = 56206;	
    const uint16_t APN_FAN_SPEED_HIGH_ASCENT    = 63731;		
                                                        
    const double APN_PREFLASH_DURATION_ASCENT         = 0.160;
    const uint16_t COOLER_DRIVE_MAX = 60000;
    const double COOLER_DRIVE_OFFSET = 15000.0;
    const double COOLER_DRIVE_DIVISOR = 45000.0;
}

////////////////////////////                            
// CTOR                                                 
AscentData::AscentData() : PlatformData(                
                                    APN_HBINNING_MAX_ASCENT,      
                                    APN_VBINNING_MAX_ASCENT,      
                                    APN_TIMER_RESOLUTION_ASCENT,
                                    APN_PERIOD_TIMER_RESOLUTION_ASCENT,
                                    APN_TIMER_OFFSET_COUNT_ASCENT,    
                                    APN_SEQUENCE_DELAY_RESOLUTION_ASCENT,
                                    APN_SEQUENCE_DELAY_MAXIMUM_ASCENT,
                                    APN_SEQUENCE_DELAY_MINIMUM_ASCENT,   
                                    APN_EXPOSURE_TIME_MIN_ASCENT,      
                                    APN_EXPOSURE_TIME_MAX_ASCENT,        
                                    APN_TDI_RATE_RESOLUTION_ASCENT,
                                    APN_TDI_RATE_MIN_ASCENT,      
                                    APN_TDI_RATE_MAX_ASCENT,             
                                    APN_TDI_RATE_DEFAULT_ASCENT,         
                                    APN_VOLTAGE_RESOLUTION_ASCENT,
                                    APN_SHUTTER_CLOSE_DIFF_ASCENT,       
                                    APN_STROBE_TIMER_RESOLUTION_ASCENT,
                                    APN_STROBE_POSITION_MIN_ASCENT,
                                    APN_STROBE_POSITION_MAX_ASCENT,      
                                    APN_STROBE_POSITION_DEFAULT_ASCENT,
                                    APN_STROBE_PERIOD_MIN_ASCENT,  
                                    APN_STROBE_PERIOD_MAX_ASCENT,        
                                    APN_STROBE_PERIOD_DEFAULT_ASCENT,
                                    APN_TEMP_COUNTS_ASCENT,      
                                    APN_TEMP_KELVIN_SCALE_OFFSET_ASCENT,
                                    APN_TEMP_SETPOINT_MIN_ASCENT, 
                                    APN_TEMP_SETPOINT_MAX_ASCENT,   
                                    APN_TEMP_BACKOFFPOINT_MIN_ASCENT,
                                    APN_TEMP_BACKOFFPOINT_MAX_ASCENT,
                                    APN_TEMP_HEATSINK_MIN_ASCENT,        
                                    APN_TEMP_HEATSINK_MAX_ASCENT,        
                                    APN_TEMP_SETPOINT_ZERO_POINT_ASCENT,
                                    APN_TEMP_HEATSINK_ZERO_POINT_ASCENT,   
                                    APN_TEMP_DEGREES_PER_BIT_ASCENT,     
                                    APN_FAN_SPEED_OFF_ASCENT,
                                    APN_FAN_SPEED_LOW_ASCENT,    
                                    APN_FAN_SPEED_MEDIUM_ASCENT,
                                    APN_FAN_SPEED_HIGH_ASCENT, 
                                    APN_PREFLASH_DURATION_ASCENT,
                                    COOLER_DRIVE_MAX,
                                    COOLER_DRIVE_OFFSET,
                                    COOLER_DRIVE_DIVISOR)        
{ 

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

}