HOPS
HOPS class reference
ovex.h
Go to the documentation of this file.
1 #ifndef OVEX_H
2 #define OVEX_H
3 
4 /************************************************************************/
5 /* */
6 /* This header file defines the memory structure for a scan described */
7 /* in a vex file, along with a couple of miscellaneous structs for */
8 /* internal vex library use. When filled in, this structure should */
9 /* contain all the information relevant to the correlator that is */
10 /* present in the vex file for the requested scan. The structure is */
11 /* filled (and parts are dynamically allocated) via the library call */
12 /* scan_info(), which returns a pointer to the filled in structure. */
13 /* */
14 /* January 1998, CJL */
15 /* */
16 /* */
17 /* Special notes: */
18 /* 1. Not all arrays are dynamically allocated. Overflows should */
19 /* be handled gracefully (I hope). End of information in */
20 /* partially filled arrays is generally denoted by undefined */
21 /* values. */
22 /* 2. End of information in the channel arrays is probably best */
23 /* checked by looking for the first undefined sky frequency */
24 /* 3. The roll_seq array is 3-dimensional. The three dimensions */
25 /* are headstack number (1-relative), home track number (only */
26 /* elements 2-33 are meaningful, and rolled track number. */
27 /* */
28 /************************************************************************/
29 #include "mk4_typedefs.h"
30 #include "mk4_sizes.h"
31  /* source_type */
32 #define QUASAR 1
33 #define STAR 2
34 #define SATELLITE 3
35 #define DUMMY 4
36  /* position_ref_frame */
37 #define B1950 1
38 #define J2000 2
39  /* tape_motion */
40 #define CONTINUOUS 1
41 #define START_STOP 2
42 #define ADAPTIVE 3
43  /* site_type */
44 #define FIXED 1
45 #define EARTH_ORBIT 2
46  /* axis_type */
47 #define EQUATORIAL 1
48 #define X_YNS 2
49 #define AZEL 3
50 #define X_YEW 4
51  /* rack_type or recorder type */
52  /* Also track format */
53 #define MARK3A 1
54 #define MARK4 2
55 #define VLBA 3
56 #define VLBAG 4
57 #define S2 5
58 #define K4 6
59 #define MARK5A 7
60 #define MARK5B 8
61  /* Modulation and roll */
62 #define ON 1
63 #define OFF 2
64  /* "Magic" values */
65 #define C_UNDEFINED '\0'
66 #define I_UNDEFINED 16383
67 #define F_UNDEFINED -1.0e30
68  /* For internal library use */
69 
71  {
72  char source_name[32];
73  char iau_name[32];
74  short source_type; /* Defines above */
75  short calibrator; /* True or false */
76  struct sky_coord position; /* Standard Mk4 struct */
77  struct date position_epoch; /* Standard Mk4 struct */
78  short position_ref_frame; /* Defines above */
79  float ra_rate; /* Radians/sec */
80  float dec_rate; /* Radians/sec */
81  };
82 
84  {
85  char chan_name[32]; /* External channel name */
86  char polarization; /* R or L */
87  double sky_frequency; /* Hz */
88  char net_sideband; /* U or L */
89  double bandwidth; /* Hz */
90  char band_id[32]; /* Linkword (internal use) */
91  char chan_id[32]; /* Linkword (internal use) */
92  char bbc_id[32]; /* Linkword (internal use) */
93  char pcal_id[32]; /* Linkword (internal use) */
94  char if_id[32]; /* Linkword (internal use) */
95  short bbc_no; /* Physical BBC# */
96  char if_name[8]; /* Physical IF name */
97  double if_total_lo; /* Hz */
98  char if_sideband; /* U or L */
99  float pcal_spacing; /* Hz */
100  float pcal_base_freq; /* Hz */
101  short pcal_detect[16]; /* Integer tone #s */
102  short sign_tracks[4]; /* Track #s */
103  short sign_headstack; /* 1-4 */
104  short mag_tracks[4]; /* Track #s */
105  short mag_headstack; /* 1-4 */
106  };
107 
108 
110  {
111  short start_offset; /* Seconds */
112  short stop_offset; /* Seconds */
113  float start_tapepos; /* Meters */
114  short tape_motion; /* Defines above */
115  short early_start; /* Seconds */
116  short late_finish; /* Seconds */
117  short tape_gap; /* Seconds */
118  char subpass; /* Standard vex meaning */
119  short passno; /* Standard vex meaning */
120  short drive_no;
121  short site_type; /* Defines above */
122  char site_name[9];
123  char site_id[3]; /* International 2 char code */
124  char mk4_site_id; /* 1-char correlator alias */
125  double coordinates[3]; /* Meters */
126  struct date coordinate_epoch; /* Standard Mk4 struct */
127  double site_velocity[3]; /* Meters/sec */
128  float zenith_atm; /* Seconds */
129  char occucode[5]; /* Standard 4-char code */
130  short axis_type; /* Defines above */
131  float axis_offset; /* Meters */
132  short recorder_type; /* Defines above */
133  short rack_type; /* Defines above */
134  float record_density; /* Bits/inch */
135  float tape_length; /* Meters */
136  short recorder_id; /* Unique integer */
137  float clock_early; /* Seconds */
138  struct date clockrate_epoch; /* Standard Mk4 struct */
139  float clockrate; /* sec/sec */
140  char tape_id[9]; /* Standard tape label */
141  double samplerate; /* Samples/sec */
142  short track_format; /* Defines above */
143  short modulation; /* Defines above */
144  short bits_sample; /* 1 or 2 */
145  short multiplex_ratio; /* 1, 2 or 4 */
146  char pass_direction; /* F or R */
147  float head_position[4]; /* Meters */
148  short roll; /* Defines above */
149  short roll_increment; /* Frames */
150  float roll_period; /* Seconds */
151  short roll_seq[5][34][32]; /* Track numbers */
152  struct chan_struct channels[MAX_CHAN];
153  };
154 
156  {
157  char filename[256]; /* Name of input vex file */
158  short exper_num; /* Standard 4-digit */
159  char exper_name[32];
160  char correlator[32];
161  char scan_name[32];
162  struct date start_time; /* Standard Mk4 struct */
163  struct date ffit_reftime; /* Standard Mk4 struct */
164  float tai_utc; /* EOP parameters (global) */
165  float a1_tai;
166  int neop; /* Number of eop entries */
167  struct date eop_reftime; /* Time of 1st entry */
168  int eop_interval; /* Seconds */
169  float ut1_utc[10]; /* Seconds */
170  float x_wobble[10]; /* Radians */
171  float y_wobble[10]; /* Radians */
172  struct source_struct src;
173  short nst; /* Number of st elements */
174  struct station_struct *st; /* Allocated */
175  };
176 
177 #endif
#define MAX_CHAN
Definition: mk4_sizes.h:24
Definition: mk4_typedefs.h:15
Definition: mk4_typedefs.h:5
char net_sideband
Definition: ovex.h:88
char filename[256]
Definition: ovex.h:157
struct date start_time
Definition: ovex.h:162
double coordinates[3]
Definition: ovex.h:125
short sign_tracks[4]
Definition: ovex.h:102
char polarization
Definition: ovex.h:86
double sky_frequency
Definition: ovex.h:87
char correlator[32]
Definition: ovex.h:160
float zenith_atm
Definition: ovex.h:128
float clock_early
Definition: ovex.h:137
short start_offset
Definition: ovex.h:111
struct chan_struct channels[MAX_CHAN]
Definition: ovex.h:152
short mag_tracks[4]
Definition: ovex.h:104
char if_sideband
Definition: ovex.h:98
short early_start
Definition: ovex.h:115
double site_velocity[3]
Definition: ovex.h:127
struct station_struct * st
Definition: ovex.h:174
float dec_rate
Definition: ovex.h:80
short tape_gap
Definition: ovex.h:117
short recorder_id
Definition: ovex.h:136
short roll_seq[5][34][32]
Definition: ovex.h:151
float roll_period
Definition: ovex.h:150
short drive_no
Definition: ovex.h:120
short track_format
Definition: ovex.h:142
char source_name[32]
Definition: ovex.h:72
float a1_tai
Definition: ovex.h:165
float ut1_utc[10]
Definition: ovex.h:169
short roll
Definition: ovex.h:148
float x_wobble[10]
Definition: ovex.h:170
short pcal_detect[16]
Definition: ovex.h:101
short mag_headstack
Definition: ovex.h:105
float pcal_spacing
Definition: ovex.h:99
float axis_offset
Definition: ovex.h:131
short nst
Definition: ovex.h:173
float clockrate
Definition: ovex.h:139
short tape_motion
Definition: ovex.h:114
char chan_name[32]
Definition: ovex.h:85
struct date clockrate_epoch
Definition: ovex.h:138
float tape_length
Definition: ovex.h:135
float start_tapepos
Definition: ovex.h:113
short roll_increment
Definition: ovex.h:149
short exper_num
Definition: ovex.h:158
short site_type
Definition: ovex.h:121
float pcal_base_freq
Definition: ovex.h:100
char pcal_id[32]
Definition: ovex.h:93
short late_finish
Definition: ovex.h:116
short calibrator
Definition: ovex.h:75
float record_density
Definition: ovex.h:134
char tape_id[9]
Definition: ovex.h:140
float head_position[4]
Definition: ovex.h:147
short bbc_no
Definition: ovex.h:95
float y_wobble[10]
Definition: ovex.h:171
char if_name[8]
Definition: ovex.h:96
char site_id[3]
Definition: ovex.h:123
double samplerate
Definition: ovex.h:141
short position_ref_frame
Definition: ovex.h:78
struct source_struct src
Definition: ovex.h:172
char pass_direction
Definition: ovex.h:146
short sign_headstack
Definition: ovex.h:103
short stop_offset
Definition: ovex.h:112
char mk4_site_id
Definition: ovex.h:124
short recorder_type
Definition: ovex.h:132
short passno
Definition: ovex.h:119
struct date coordinate_epoch
Definition: ovex.h:126
char chan_id[32]
Definition: ovex.h:91
char iau_name[32]
Definition: ovex.h:73
double bandwidth
Definition: ovex.h:89
float tai_utc
Definition: ovex.h:164
struct date eop_reftime
Definition: ovex.h:167
short rack_type
Definition: ovex.h:133
struct date position_epoch
Definition: ovex.h:77
double if_total_lo
Definition: ovex.h:97
char band_id[32]
Definition: ovex.h:90
int eop_interval
Definition: ovex.h:168
char subpass
Definition: ovex.h:118
short modulation
Definition: ovex.h:143
short source_type
Definition: ovex.h:74
float ra_rate
Definition: ovex.h:79
char scan_name[32]
Definition: ovex.h:161
char occucode[5]
Definition: ovex.h:129
char exper_name[32]
Definition: ovex.h:159
short bits_sample
Definition: ovex.h:144
char if_id[32]
Definition: ovex.h:94
short multiplex_ratio
Definition: ovex.h:145
short axis_type
Definition: ovex.h:130
struct sky_coord position
Definition: ovex.h:76
int neop
Definition: ovex.h:166
char bbc_id[32]
Definition: ovex.h:92
struct date ffit_reftime
Definition: ovex.h:163
char site_name[9]
Definition: ovex.h:122
Definition: ovex.h:84
Definition: ovex.h:156
Definition: ovex.h:71
Definition: ovex.h:110