My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
WxControl.h
Go to the documentation of this file.
1 #ifndef GCP_ASSEMBLER_WXCONTROL_H
2 #define GCP_ASSEMBLER_WXCONTROL_H
3 
11 #include <string>
12 #include <list>
13 
14 #include "gcp/mediator/specific/WxControlMsg.h"
15 
16 #include "gcp/util/common/Angle.h"
17 #include "gcp/util/common/Date.h"
18 #include "gcp/util/common/GenericTask.h"
19 #include "gcp/util/common/Percent.h"
20 #include "gcp/util/common/Pressure.h"
21 #include "gcp/util/common/Speed.h"
22 #include "gcp/util/common/Temperature.h"
23 #include "gcp/util/common/TcpClient.h"
24 #include "gcp/util/common/TimeVal.h"
25 
26 namespace gcp {
27 
28  namespace util {
29  class MonitorPoint;
30  class MonitorPointManager;
31  }
32 
33 namespace mediator {
34 
39  class Control;
40  class WxClientCbass;
41 
45  class WxControl :
46  public gcp::util::GenericTask<WxControlMsg> {
47 
48  public:
49 
50 
51  struct WxData {
52  gcp::util::Temperature airTemperature_;
53  gcp::util::Speed windSpeed_;
54  gcp::util::Angle windDirection_;
55  gcp::util::Pressure pressure_;
56  gcp::util::Percent relativeHumidity_;
57  gcp::util::Date sampleTime_;
58  };
59 
63  WxControl(Control* parent);
64 
68  virtual ~WxControl();
69 
73  void incrementPending();
74  void decrementPending();
75 
76  void writeVals(WxData& data);
77 
78  private:
79 
80  friend class Control;
81  friend class SptWxClient;
82 
83  Control* parent_;
84 
85  unsigned pending_;
86 
87  gcp::util::TimeVal timer_;
88  struct timeval* timeOut_;
89 
93  WxClientCbass* wx_;
94 
96 
97  gcp::util::MonitorPoint* monUtc_;
98  gcp::util::MonitorPoint* monAirTemp_;
99  gcp::util::MonitorPoint* monRelHum_;
100  gcp::util::MonitorPoint* monWindSpeed_;
101  gcp::util::MonitorPoint* monWindDir_;
102  gcp::util::MonitorPoint* monPressure_;
103 
104  WxData data_;
105 
109  void enableTimeOut(bool enable);
110 
114  void initiateReadValuesCommSequence();
115 
119  void serviceMsgQ();
120 
125  void processMsg(WxControlMsg* msg);
126 
131  void distributeWeatherData(WxData& data);
132 
133  }; // End class WxControl
134 
135 } // End namespace mediator
136 } // End namespace gcp
137 
138 
139 
140 #endif // End #ifndef GCP_ASSEMBLER_WXCONTROL_H
Definition: Temperature.h:17
Definition: Pressure.h:22
Definition: WxControl.h:51
Definition: WxControl.h:45
Definition: Speed.h:16
Definition: MonitorPoint.h:32
Definition: Date.h:16
Definition: Percent.h:20
Definition: WxClientCbass.h:23
Definition: WxControlMsg.h:16
void writeVals(WxData &data)
Definition: WxControl.cc:99
Definition: Angle.h:20
Definition: TimeVal.h:55
Definition: Control.h:53
virtual ~WxControl()
Definition: WxControl.cc:45
WxControl(Control *parent)
Definition: WxControl.cc:22
Definition: MonitorPointManager.h:25
Definition: GenericTask.h:33