1 #ifndef GCP_MEDIATOR_SCANNER_H
2 #define GCP_MEDIATOR_SCANNER_H
11 #include "gcp/util/specific/Directives.h"
13 #include "gcp/util/common/AntennaDataFrameManager.h"
14 #include "gcp/util/common/AntennaFrameBuffer.h"
15 #include "gcp/util/common/ArrayFrameBuffer.h"
16 #include "gcp/util/common/DataFrameManager.h"
17 #include "gcp/util/common/GenericTask.h"
18 #include "gcp/util/common/NetStr.h"
19 #include "gcp/util/common/TcpClient.h"
21 #include "gcp/util/specific/Directives.h"
23 #include "gcp/mediator/specific/ScannerMsg.h"
27 #include "gcp/control/code/unix/libunix_src/common/scanner.h"
32 class ArrayDataFrameManager;
33 class BoardDataFrameManager;
53 class AntennaConsumer;
88 void packBolometerFrame();
99 std::string regMapName);
123 std::string hwHost();
143 friend class DioConsumer;
147 friend class XMLConsumer;
162 void initAntennaResources();
168 static THREAD_START(startAntennaConsumer);
169 static THREAD_START(startReceiverConfigConsumer);
170 static THREAD_START(startPointingTelConsumer);
171 static THREAD_START(startHoloConsumer);
172 static THREAD_START(startSecondaryConsumer);
173 static THREAD_START(startFridgeConsumer);
174 static THREAD_START(startDeicingConsumer);
177 static THREAD_START(startBolometerConsumer);
178 static THREAD_START(startSquidConsumer);
185 static THREAD_CLEAN(cleanAntennaConsumer);
186 static THREAD_CLEAN(cleanReceiverConfigConsumer);
187 static THREAD_CLEAN(cleanPointingTelConsumer);
188 static THREAD_CLEAN(cleanHoloConsumer);
189 static THREAD_CLEAN(cleanSecondaryConsumer);
190 static THREAD_CLEAN(cleanFridgeConsumer);
191 static THREAD_CLEAN(cleanDeicingConsumer);
194 static THREAD_CLEAN(cleanBolometerConsumer);
195 static THREAD_CLEAN(cleanSquidConsumer);
233 XMLConsumer* deicingConsumer_;
239 XMLConsumer* pointingTelConsumer_;
245 XMLConsumer* holoConsumer_;
251 XMLConsumer* secondaryConsumer_;
257 XMLConsumer* fridgeConsumer_;
280 static const unsigned int NUM_BUFFER_FRAMES = 10;
281 static const unsigned int MIN_FRAMES_IN_QUEUE = 4;
290 bool dispatchPending_;
304 std::vector<unsigned> nArchiveAntenna_;
310 std::vector<int> antStartSlots_;
316 std::vector<int> antRecSlots_;
322 unsigned antReceivedCurrent_;
323 unsigned antReceivedLast_;
328 void setAntReceived(
bool received,
334 void setAntReceived(
unsigned iant,
bool received,
340 bool antennasChangedState();
345 void reportStateChange();
371 void connectScanner(
bool reEnable);
376 void disconnectScanner();
389 startNewArrayFrame();
405 void checkDataFrames();
410 void pollConsumers();
421 void dispatchNextFrame();
436 void sendDispatchDataFrameMsg();
444 void sendFlagAntennaMsg(
unsigned antenna,
bool flag);
449 void sendScannerConnectedMsg(
bool connected);
454 void sendControlConnectedMsg(
bool connected);
459 void respondToHeartBeat();
464 void parseGreeting();
469 static NET_READ_HANDLER(readHandler);
474 static NET_SEND_HANDLER(sendHandler);
479 static NET_ERROR_HANDLER(networkError);
485 void serviceMsgQSave();
490 void changeFeatures(
unsigned seq,
unsigned mode,
unsigned mask);
492 Master* parent() {
return parent_;};
504 #endif // End #ifndef GCP_MEDIATOR_SCANNER_H
Definition: BoardDataFrameManager.h:31
Definition: ArrayDataFrameManager.h:22
Definition: TcpClient.h:18
Definition: ArrayFrameBuffer.h:19
Definition: DataFrame.h:27
Definition: XMLConsumer.h:29
Definition: AntennaDataFrameManager.h:22
Definition: RegMapDataFrameManager.h:26
Definition: DioConsumer.h:32
Definition: GenericTask.h:33
Definition: arraymap.h:177