CARMA C++
AntennaControl.h
Go to the documentation of this file.
1 #ifndef SZA_ANTENNA_CONTROL_ANTENNACONTROL_H
2 #define SZA_ANTENNA_CONTROL_ANTENNACONTROL_H
3 
11 #include <string>
12 #include <sys/socket.h>
13 
14 // Shared control code includes
15 
16 #include "carma/szautil/Directives.h"
18 #include "carma/szautil/Logger.h"
22 
26 
27 namespace sza {
28  namespace antenna {
29  namespace corba {
30  class AntennaCorba;
31  }
32  }
33 }
34 
35 namespace sza {
36  namespace antenna {
37  namespace control {
38 
42  class AntennaMaster;
43 
44  class AntennaControl :
45  public SzaTask,
46  public sza::util::GenericTask<AntennaControlMsg> {
47 
48  public:
49 
53  AntennaControl(AntennaMaster* parent);
54 
58  virtual ~AntennaControl();
59 
60  SzaShare* getShare();
61 
62  AntennaMaster* parent() {
63  return parent_;
64  }
65 
66  private:
67 
72  friend class AntennaMaster;
73 
77  friend class sza::antenna::corba::AntennaCorba;
78 
82  static AntennaControl* control_;
83 
84  sza::antenna::corba::AntennaCorba* antennaCorba_;
85 
89  AntennaMaster* parent_;
90 
95  AntNetCmdForwarder* forwarder_;
96 
101  sza::util::NetCommHandler netCommHandler_;
102 
106  sza::util::TcpClient client_;
107 
111  sza::util::LogMsgHandler logMsgHandler_;
112 
113  //------------------------------------------------------------
114  // Declare startup functions for threads managed by this class.
115  //------------------------------------------------------------
116 
120  static THREAD_START(startAntennaCorba);
121 
122  //------------------------------------------------------------
123  // Declare cleanup handlers for threads managed by this class.
124  //------------------------------------------------------------
125 
129  static THREAD_CLEAN(cleanAntennaCorba);
130 
134  bool connect();
135 
139  bool isConnected();
140 
144  void disconnect();
145 
149  void connectControl(bool reEnable);
150 
154  void disconnectControl();
155 
159  void serviceMsgQ();
160 
165  void sendControlConnectedMsg(bool connected);
166 
170  static LOG_HANDLER_FN(sendLogMsg);
171 
176  static LOG_HANDLER_FN(sendErrMsg);
177 
178  static void sendNetMsg(std::string& logStr, bool isErr);
179 
183  void processMsg(AntennaControlMsg* msg);
184 
188  void packNetMsg(AntennaControlMsg* msg);
189 
193  void sendGreeting();
194 
199  static NET_READ_HANDLER(netCmdReadHandler);
200 
205  static NET_SEND_HANDLER(netMsgReadHandler);
206 
211  static NET_SEND_HANDLER(netMsgSentHandler);
212 
217  static NET_ERROR_HANDLER(netErrorHandler);
218 
223  void sendAntennaIdMsg();
224 
229  void parseGreetingMsg(sza::util::NetMsg* msg);
230 
234  void writeCarmaSeqNo(AntennaControlMsg* msg);
235 
239  void writeCarmaMonitorPoints();
240 
241  }; // End class AntennaControl
242 
243  }; // End namespace control
244  }; // End namespace antenna
245 }; // End namespace sza
246 
247 #endif // End #ifndef
248 
249 
250 
Started: Thu Feb 26 14:19:05 UTC 2004.
Tagged: Wed Mar 17 19:23:17 UTC 2004.
Tagged: Fri Nov 14 12:39:33 UTC 2003.
All tasks will have the following functionality:
Definition: GenericTask.h:32
Tagged: Wed Mar 17 01:07:59 UTC 2004.
Tagged: Mon Feb 12 07:14:18 NZDT 2007.
Tagged: Thu Nov 13 16:53:54 UTC 2003.
Started: Sat Mar 6 14:44:17 UTC 2004.
virtual void processMsg(AntennaControlMsg *msg)
This method should be defined by each inheriting task to process its own task-specific messages...