CARMA C++
RxCommand.h
Go to the documentation of this file.
1 
12 #ifndef CARMA_BIMA_RXCOMMAND_H
13 #define CARMA_BIMA_RXCOMMAND_H
14 
15 #include <vector>
16 
17 #define RXIPQ "rx.ipq"
18 
19 #define ATTRIB(T,N) \
20  private: T _ ## N ; \
21 public: void set_ ## N (T v) { _ ## N = v; } \
22 public: T get_ ## N () { return _ ## N ; }
23 
24 #define RCSET(P,N,V) P -> set_ ## N ( V )
25 #define RCGET(P,N) P -> get_ ## N ()
26 
27 namespace carma
28 {
29  namespace antenna
30  {
31  namespace bima
32  {
33  class RxCommand
34  {
35 
36  public:
37  typedef enum
38  {
39  MEASURETOTPOW,
40  // RxControl Commands
41  SETFREQ,
42  SETOBSFREQ,
43  SELECT,
44  // LO
45  SETLO,
46  SETYIG,
47  SETBAND,
48  SETLOTERMATTN,
49  // Secondary
50  SETFOCUSZ,
51  //
52  SETCALPOS,
53  SETCALNEXTSEQNO,
54  SETTUNENEXTSEQNO,
55  SETOPTICNEXTSEQNO,
56  USENEXTOPTICSEQNO,
57  DOIVCURVE,
58  FORCERELOCK
59  } CommandType;
60 
61  typedef enum { RX1CM, RX1MM, RX3MM, RXANY } RxType;
62  typedef enum { SKY, AMBIENT, FIXEDTEMP, PARTIAL } CalPos;
63 
64  ATTRIB(CommandType, command);
65  ATTRIB(RxType, band);
66  ATTRIB(CalPos, cPos);
67  ATTRIB(double, yigfreq);
68  ATTRIB(double, lofreq);
69  ATTRIB(double, obsfreq);
70  ATTRIB(unsigned short, lotermatten);
71  ATTRIB(float, fPos);
72  ATTRIB(unsigned long, calSeqNo );
73  ATTRIB(unsigned long, tuneSeqNo );
74  ATTRIB(unsigned long, opticSeqNo );
75  ATTRIB(float, ivstart );
76  ATTRIB(float, ivstop );
77  ATTRIB(float, ivstep );
78  ATTRIB(unsigned short, ivdelta );
79  ATTRIB(bool, ivcurrent );
80  ATTRIB(bool, leaveAbsorber );
81  ATTRIB(bool, optimizeReceiver );
82  };
83  }
84  }
85 }
86 
87 
88 
89 #endif // CARMA_BIMA_RXCOMMAND_H