1 |
#ifndef __QUALLEV0_H |
2 |
#define __QUALLEV0_H |
3 |
//These are the meaning of the bits put into the QUALLEV0 keyword for a drms |
4 |
//record from the ingest_lev0 processing. |
5 |
|
6 |
//Bit0 is the low bit (0x01) |
7 |
//The first 4 bits are determined from the Img sturct passed back by |
8 |
//imgdecode() |
9 |
#define Q_OVFL 0x01 //overflow flag set |
10 |
#define Q_HDRERR 0x02 //header error flag set |
11 |
#define Q_CMPERR 0x04 //compression error in image |
12 |
#define Q_LPXERR 0x08 //last pixel error |
13 |
|
14 |
//image status packet is missing if FSN != HSQFGSN |
15 |
#define Q_NOISP 0x10 //no ISP |
16 |
#define Q_MISSI 0x20 //missing image |
17 |
#define Q_CORRUPT 0x40 //corrupt image (FSN=469769216 0x1c001c00) |
18 |
#define Q_INVALTIME 0x80//HOBITSEC = 0 (T_OBS = 1958.01.01_00:00:00_UTC) |
19 |
|
20 |
//missvals is from Img struct totalvals-datavals |
21 |
#define Q_MISS0 0x100 //missvals > 0 |
22 |
#define Q_MISS1 0x200 //missvals > 0.01*totalvals |
23 |
#define Q_MISS2 0x400 //missvals > 0.05*totalvals |
24 |
#define Q_MISS3 0x800 //missvals > 0.25*totalvals |
25 |
#define Q_CAM_ANOM 0x8000 //Camera Anomaly - Entered by hand - Hao QUALITY=0x00008000 |
26 |
|
27 |
//HMI sepecific |
28 |
#define Q_DARK 0x10000 //dark image (bit 16) |
29 |
//#define Q_SEQERR 0x10000 //sequencer error HSEQERR != 'SUCCESS' |
30 |
#define Q_ISSOPEN 0x20000 //ISS loop open HWLTNSET = 'OPEN' |
31 |
#define Q_HCF1ENCD 0x40000 //Focus/Cal Motor 1 Error |
32 |
//HCF1ENCD ne HCF1POS +/- 1 |
33 |
#define Q_HCF2ENCD 0x80000 //Focus/Cal Motor 2 Error |
34 |
//HCF2ENCD ne HCF2POS +/- 1 |
35 |
#define Q_HPS1ENCD 0x100000 //Polarization MTR 1 Error |
36 |
//HPS1ENCD ne HPL1POS +/- 1 %240 |
37 |
#define Q_HPS2ENCD 0x200000 //Polarization MTR 2 Error |
38 |
//HPS2ENCD ne HPL2POS +/- 1 %240 |
39 |
#define Q_HPS3ENCD 0x400000 //Polarization MTR 3 Error |
40 |
//HPS3ENCD ne HPL3POS +/- 1 %240 |
41 |
#define Q_HWT1ENCD 0x800000 //Wavelength Motor 1 Error |
42 |
//HWT1ENCD ne HWL1POS +/- 1 %240 |
43 |
#define Q_HWT2ENCD 0x1000000 //Wavelength Motor 2 Error |
44 |
//HWT2ENCD ne HWL2POS +/- 1 %240 |
45 |
#define Q_HWT3ENCD 0x2000000 //Wavelength Motor 3 Error |
46 |
//HWT3ENCD ne HWL3POS +/- 1 %240 |
47 |
#define Q_HWT4ENCD 0x4000000 //Wavelength Motor 4 Error |
48 |
//HWT4ENCD ne HWL4POS +/- 1 %240 |
49 |
|
50 |
#define Q_GPREGBIT0 0x10000000 |
51 |
#define Q_GPREGBIT1 0x20000000 |
52 |
#define Q_REOPENED 0x40000000 // image reopened during reconstruction; NPACKETS value may be incorrect |
53 |
#define Q_MISSALL 0x80000000 //data is completely missing. high bit |
54 |
|
55 |
//Fits keyword and Image Status Packet (ISP) keyword translation: |
56 |
//HWLTNSET = HMI_IMG_ISS_LOOP |
57 |
//HSEQERR = HMI_SEQ_ERROR |
58 |
// |
59 |
//HCF1ENCD = HMI_CF1_ENCODER |
60 |
//HCF2ENCD = HMI_CF1_ENCODER |
61 |
//HPS1ENCD = HMI_PL1_ENCODER |
62 |
//HPS2ENCD = HMI_PL2_ENCODER |
63 |
//HPS3ENCD = HMI_PL3_ENCODER |
64 |
//HWT1ENCD = HMI_WT1_ENCODER |
65 |
//HWT2ENCD = HM2_WT1_ENCODER |
66 |
//HWT3ENCD = HM3_WT1_ENCODER |
67 |
//HWT4ENCD = HM4_WT1_ENCODER |
68 |
// |
69 |
//HCF1POS = HMI_FSW_CF1_CMDED_TARGET |
70 |
//HCF2POS = HMI_FSW_CF2_CMDED_TARGET |
71 |
//HPL1POS = HMI_FSW_PL1_CMDED_TARGET |
72 |
//HPL2POS = HMI_FSW_PL2_CMDED_TARGET |
73 |
//HPL3POS = HMI_FSW_PL3_CMDED_TARGET |
74 |
//HWL1POS = HMI_FSW_WT1_CMDED_TARGET |
75 |
//HWL2POS = HMI_FSW_WT2_CMDED_TARGET |
76 |
//HWL3POS = HMI_FSW_WT3_CMDED_TARGET |
77 |
//HWL4POS = HMI_FSW_WT4_CMDED_TARGET |
78 |
|
79 |
//AIA sepecific |
80 |
#define AQ_ISSOPEN 0x20000 //ISS loop open AISTATE = 'OPEN' |
81 |
#define A94Mech_Err 0x40000 //AIAWVLEN == 94 && |
82 |
//{(AIFILTYP == 0 && AIFWEN != 269 && AIFWEN != 270) |
83 |
//|| (AIFILTYP == 1 && AIFWEN != 11 && AIFWEN != 12) |
84 |
//|| (AIFILTYP == 2 && AIFWEN != 74 && AIFWEN != 75) |
85 |
#define A131Mech_Err 0x80000 //AIAWVLEN == 131 && |
86 |
//{(AIFILTYP == 0 && AIFWEN != 269 && AIFWEN != 270) |
87 |
//|| (AIFILTYP == 1 && AIFWEN != 11 && AIFWEN != 12) |
88 |
//|| (AIFILTYP == 2 && AIFWEN != 74 && AIFWEN != 75) |
89 |
#define A171Mech_Err 0x100000 //AIAWVLEN == 171 && |
90 |
//{(AIFILTYP == 0 && AIFWEN != 203 && AIFWEN != 204) |
91 |
//|| (AIFILTYP == 1 && AIFWEN != 11 && AIFWEN != 12) |
92 |
#define A193Mech_Err 0x200000 //AIAWVLEN == 193 && {AIASEN != 6 |
93 |
//|| (AIFILTYP == 0 && AIFWEN != 269 && AIFWEN != 270) |
94 |
//|| (AIFILTYP == 1 && AIFWEN != 11 && AIFWEN != 12) |
95 |
//|| (AIFILTYP == 2 && AIFWEN != 74 && AIFWEN != 75) |
96 |
#define A211Mech_Err 0x400000 //AIAWVLEN == 211 && {AIASEN != 24 |
97 |
//|| (AIFILTYP == 0 && AIFWEN != 203 && AIFWEN != 204) |
98 |
//|| (AIFILTYP == 1 && AIFWEN != 137 && AIFWEN != 138) |
99 |
//|| (AIFILTYP == 2 && AIFWEN != 74 && AIFWEN != 75) |
100 |
#define A304Mech_Err 0x800000 //AIAWVLEN == 304 && |
101 |
// {(AIFILTYP == 0 && AIFWEN != 203 && AIFWEN != 204) |
102 |
//|| (AIFILTYP == 1 && AIFWEN != 137 && AIFWEN != 138) |
103 |
//|| (AIFILTYP == 2 && AIFWEN != 74 && AIFWEN != 75) |
104 |
#define A335Mech_Err 0x1000000 //AIAWVLEN == 335 && |
105 |
// {(AIFILTYP == 0 && AIFWEN != 203 && AIFWEN != 204) |
106 |
//|| (AIFILTYP == 1 && AIFWEN != 137 && AIFWEN != 138) |
107 |
//|| (AIFILTYP == 2 && AIFWEN != 74 && AIFWEN != 75) |
108 |
#define A160Mech_Err 0x2000000 //AIAWVLEN == 1600 && AIFWEN != 269 && |
109 |
// AIFWEN != 270 |
110 |
#define A170Mech_Err 0x4000000 //AIAWVLEN == 1700 && AIFWEN != 137 && |
111 |
// AIFWEN != 138 |
112 |
#define A450Mech_Err 0x8000000 //AIAWVLEN == 4500 && AIFWEN != 74 && |
113 |
// AIFWEN != 75 |
114 |
|
115 |
#define AQ_INVAL_WL 0x10000000 //invalid wavelength WAVE_STR == "UNKNOWN" |
116 |
|
117 |
//AIA Mechanism position definitions from Paul Boerner |
118 |
//WAVELEN FILTER_TYPE FW_ENCODER AS_ENCODER" |
119 |
//1600 "Don't check" "269 or 270" "Don't check" |
120 |
// "Don't check" "269 or 270" "Don't check" |
121 |
// "Don't check" "269 or 270" "Don't check" |
122 |
// |
123 |
//1700 "Don't check" "137 or 138" "Don't check" |
124 |
// "Don't check" "137 or 138" "Don't check" |
125 |
// "Don't check" "137 or 138" "Don't check" |
126 |
// |
127 |
//4500 "Don't check" "74 or 75" "Don't check" |
128 |
// "Don't check" "74 or 75" "Don't check" |
129 |
// "Don't check" "74 or 75" "Don't check" |
130 |
// |
131 |
//WAVELEN FILTER_TYPE FW_ENCODER AS_ENCODER" |
132 |
//94 0 "269 or 270" "Don't check" |
133 |
// 1 "11 or 12" "Don't check" |
134 |
// 2 "74 or 75" "Don't check" |
135 |
// |
136 |
//133 0 "269 or 270" "Don't check" |
137 |
// 1 "11 or 12" "Don't check" |
138 |
// 2 "74 or 75" "Don't check" |
139 |
// |
140 |
//171 0 "203 or 204" "Don't check" |
141 |
// 1 "11 or 12" "Don't check" |
142 |
// 2 "Don't Check" "Don't check" |
143 |
// |
144 |
//304 0 "203 or 204" "Don't check" |
145 |
// 1 "137 or 138" "Don't check" |
146 |
// 2 "74 or 75" "Don't check" |
147 |
// |
148 |
//335 0 "203 or 204" "Don't check" |
149 |
// 1 "137 or 138" "Don't check" |
150 |
// 2 "74 or 75" "Don't check" |
151 |
// |
152 |
//WAVELEN FILTER_TYPE FW_ENCODER AS_ENCODER" |
153 |
//193 0 "269 or 270" 6 |
154 |
// 1 "11 or 12" 6 |
155 |
// 2 "74 or 75" 6 |
156 |
// |
157 |
//211 0 "203 or 204" 24 |
158 |
// 1 "137 or 138" 24 |
159 |
// 2 "74 or 75" 24 |
160 |
// |
161 |
// *************************************************************** |
162 |
// |
163 |
//Fits keyword and Image Status Packet (ISP) keyword translation: |
164 |
// |
165 |
//ASQFSN AIA_SEQ_FRAME_SN longlong |
166 |
//AISTATE AIA_IMG_ISS_LOOP string |
167 |
//AIAWVLEN AIA_IMG_WAVELENGTH int |
168 |
//AIASEN AIA_IMG_AS_ENCODER int |
169 |
//AIFILTYP AIA_IMG_FILTER_TYPE short |
170 |
//AIFWEN AIA_IMG_FW_ENCODE int |
171 |
//AIFOENFL AIA_IMG_FOCUS_ENA_FLAG short |
172 |
// |
173 |
#endif |
174 |
|