My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
AntennaDrive.h
Go to the documentation of this file.
1 #ifndef DRIVETASK_H
2 #define DRIVETASK_H
3 
11 #include "gcp/util/common/GenericTask.h"
12 #include "gcp/util/common/SignalTask.h" // SIGNALTASK_HANDLER_FN
13 
14 #include "gcp/antenna/control/specific/AntennaDriveMsg.h"
15 #include "gcp/antenna/control/specific/SpecificShare.h"
16 #include "gcp/antenna/control/specific/SpecificTask.h"
17 #include "gcp/antenna/control/specific/Tracker.h"
18 
19 #define ANTENNADRIVE_TASK_FWD_FN(fn) void (fn)(AntennaDriveMsg* msg)
20 
21 // Create an AntennaDrive class in namespace carma
22 
23 namespace gcp {
24  namespace antenna {
25  namespace control {
26 
31  class AntennaMaster;
32 
43  class AntennaDrive :
44  public SpecificTask,
45  public gcp::util::GenericTask<AntennaDriveMsg> {
46 
47  public:
48 
52  void sendDriveConnectedMsg(bool connected);
53 
57  void sendDriveDoneMsg(unsigned int seq);
58 
62  void sendBenchDoneMsg(unsigned int seq);
63 
67  void sendScanDoneMsg(unsigned int seq);
68 
72  void sendSourceSetMsg(unsigned int seq);
73 
74  void sendPollGpsStatusMsg();
75 
76  bool simPmac();
77 
78  private:
79 
80  bool simPmac_;
81 
86  friend class AntennaMaster;
87 
91  AntennaMaster* parent_;
92 
99  AntennaDrive(AntennaMaster* parent);
100 
106  ~AntennaDrive();
107 
113  void processMsg(AntennaDriveMsg* taskMsg);
114 
121  void adoptBoards();
122 
123  //------------------------------------------------------------
124  // Thread management functions.
125  //------------------------------------------------------------
126 
130  static THREAD_START(startTracker);
131 
132  //------------------------------------------------------------
133  // Thread cleanup handlers methods
134 
138  static THREAD_CLEAN(cleanTracker);
139 
140  //------------------------------------------------------------
141  // Ping routines for the (pingable) subsystem threads
142 
146  static THREAD_PING(pingTracker);
147 
148  //------------------------------------------------------------
149  // Subsystem resources.
150  //
151  // Pointers to the subsystem resources. These pointers are
152  // initialized by the subsystem threads on startup
153 
157  Tracker* trackertask_;
158 
162  ANTENNADRIVE_TASK_FWD_FN(forwardTrackerMsg);
163 
167  void respondToHeartBeat();
168 
169  }; // End class AntennaDrive
170 
171  }; // End namespace control
172  }; // End namespace antenna
173 } // End namespace gcp
174 
175 #endif
176 
177 
void sendScanDoneMsg(unsigned int seq)
Definition: AntennaDrive.cc:252
Definition: Tracker.h:49
void sendDriveDoneMsg(unsigned int seq)
Definition: AntennaDrive.cc:225
void sendDriveConnectedMsg(bool connected)
Definition: AntennaDrive.cc:213
void sendPollGpsStatusMsg()
Definition: AntennaDrive.cc:280
void sendSourceSetMsg(unsigned int seq)
Definition: AntennaDrive.cc:266
void sendBenchDoneMsg(unsigned int seq)
Definition: AntennaDrive.cc:238
Definition: SpecificTask.h:19
Definition: AntennaMaster.h:179
Definition: AntennaDrive.h:43
Definition: GenericTask.h:33
Definition: AntennaDriveMsg.h:27