1 #ifndef ANTENNAMASTER_H
2 #define ANTENNAMASTER_H
22 #include "gcp/util/common/AntNum.h"
23 #include "gcp/util/common/GenericMasterTask.h"
24 #include "gcp/util/common/SignalTask.h"
26 #include "gcp/util/specific/Directives.h"
30 #include "gcp/antenna/control/specific/AntennaTask.h"
31 #include "gcp/antenna/control/specific/AntennaMasterMsg.h"
32 #include "gcp/antenna/control/specific/SpecificShare.h"
33 #include "gcp/antenna/control/specific/SpecificTask.h"
35 #define ANTENNA_HEARTBEAT_SIGNAL SIGRTMIN
36 #define ANTENNA_MONITOR_SIGNAL SIGRTMIN+1
37 #define ANTENNA_SERVO_CMD_SIGNAL SIGRTMIN+2
38 #define ANTENNA_SERVO_READ_SIGNAL SIGRTMIN+3
39 #define CONNECT_SIGNAL SIGRTMIN+4
40 #define ANTENNA_GPIB_SIGNAL SIGRTMIN+5
41 #define ANTENNA_RX_SIGNAL SIGRTMIN+6
42 #define ANTENNA_RX_READ_SIGNAL SIGRTMIN+7
43 #define ANTENNA_LNA_READ_SIGNAL SIGRTMIN+8
44 #define ANTENNA_ROACH_SIGNAL SIGRTMIN+9
45 #define ANTENNA_ROACH_READ_SIGNAL SIGRTMIN+10
46 #define ANTENNA_ADC_READ_SIGNAL SIGRTMIN+11
53 #define ANTENNA_HEARTBEAT_SEC 5
60 #define ANTENNA_MONITOR_SEC 1 // 1Hz data pulse
61 #define ANTENNA_MONITOR_NSEC 0
67 #define ANTENNA_SERVO_CMD_SEC 1
68 #define ANTENNA_SERVO_CMD_NSEC 750000000 // 0.75 seconds after the
78 #define ANTENNA_SERVO_READ_SEC 1
79 #define ANTENNA_SERVO_READ_NSEC 250000000 // 0.25 seconds after the
88 #define CONNECT_SEC 2 // Connect timer
89 #define CONNECT_NSEC 750000000 // 0.25 seconds after the
97 #define ANTENNA_GPIB_SEC 1
98 #define ANTENNA_GPIB_NSEC 200000000
99 #define ANTENNA_GPIB_DELAY_NSEC 50000000 // start timer 50 ms after
108 #define ANTENNA_ROACH_SEC 0
109 #define ANTENNA_ROACH_NSEC 100000000
110 #define ANTENNA_ROACH_DELAY_NSEC 10000000 // start timer 10 ms after the
117 #define ANTENNA_ROACH_READ_SEC 0
118 #define ANTENNA_ROACH_READ_NSEC 1000000000
119 #define ANTENNA_ROACH_READ_DELAY_NSEC 300000000 // start timer 0.3 s after the
127 #define ANTENNA_RX_SEC 0
128 #define ANTENNA_RX_NSEC 100000000
129 #define ANTENNA_RX_DELAY_NSEC 10000000 // start timer 10 ms after the
136 #define ANTENNA_RX_READ_SEC 0
137 #define ANTENNA_RX_READ_NSEC 1000000000
138 #define ANTENNA_RX_READ_DELAY_NSEC 300000000 // start timer 0.3 s after the
146 #define ANTENNA_LNA_READ_SEC 1
147 #define ANTENNA_LNA_READ_NSEC 1000000000
148 #define ANTENNA_LNA_READ_DELAY_NSEC 150000000 // start timer 150 ms after the
151 #define ANTENNA_ADC_READ_SEC 10
152 #define ANTENNA_ADC_READ_NSEC 5000000000
153 #define ANTENNA_ADC_READ_DELAY_NSEC 550000000 // start timer 150 ms after the
156 #define ANTENNAMASTER_TASK_FWD_FN(fn) void (fn)(AntennaMasterMsg* msg)
167 class AntennaControl;
168 class AntennaMonitor;
197 bool simRoach1=
false,
198 bool simRoach2=
false);
402 inline std::string
host() {
return host_;}
476 static THREAD_START(startAntennaDrive);
481 static THREAD_START(startAntennaMonitor);
486 static THREAD_START(startAntennaControl);
491 static THREAD_START(startAntennaRx);
496 static THREAD_START(startAntennaRoach);
501 static THREAD_START(startAntennaSignal);
510 static THREAD_CLEAN(cleanAntennaDrive);
515 static THREAD_CLEAN(cleanAntennaMonitor);
520 static THREAD_CLEAN(cleanAntennaControl);
525 static THREAD_CLEAN(cleanAntennaRx);
530 static THREAD_CLEAN(cleanAntennaRoach);
535 static THREAD_CLEAN(cleanAntennaSignal);
545 static THREAD_PING(pingAntennaControl);
552 static THREAD_PING(pingAntennaDrive);
559 static THREAD_PING(pingAntennaMonitor);
566 static THREAD_PING(pingAntennaRx);
573 static THREAD_PING(pingAntennaRoach);
665 void sendHeartBeat();
670 void installTimers();
675 void installSignals();
SIGNALTASK_HANDLER_FN(doNothing)
Definition: AntennaControl.h:43
gcp::antenna::control::AntennaRx * AntennaRx()
Definition: AntennaMaster.cc:502
Definition: AntennaRx.h:32
static ANTENNAMASTER_TASK_FWD_FN(forwardMasterMsg)
Id
Definition: AntennaTask.h:25
gcp::antenna::control::AntennaRoach * AntennaRoach()
Definition: AntennaMaster.cc:581
void sendDriveShutDownMessage()
Definition: AntennaMaster.cc:1385
Definition: AntennaRoach.h:32
Definition: AntennaMasterMsg.h:31
gcp::antenna::control::AntennaControl * AntennaControl()
Definition: AntennaMaster.cc:419
Definition: GenericMasterTask.h:22
Definition: AntennaMonitor.h:37
SpecificShare * getShare()
Definition: AntennaMaster.cc:1163
void sendAdoptBoardMsg(unsigned short, AntennaTask::Id taskId)
bool usePrio()
Definition: AntennaMaster.cc:1420
Definition: SpecificTask.h:19
~AntennaMaster()
Definition: AntennaMaster.cc:161
gcp::util::AntNum * getAnt()
Definition: AntennaMaster.cc:1171
void restartServices()
Definition: AntennaMaster.cc:657
AntennaMaster(std::string host, bool simPmac=false, bool simGpib=false, bool simDlp=false, bool priv=true, bool simLna=false, bool simAdc=false, bool simRoach1=false, bool simRoach2=false)
Definition: AntennaMaster.cc:45
Definition: AntennaMaster.h:179
Definition: AntennaDrive.h:43
gcp::antenna::control::AntennaMonitor * AntennaMonitor()
Definition: AntennaMaster.cc:269
std::string host()
Definition: AntennaMaster.h:402
gcp::antenna::control::AntennaDrive * AntennaDrive()
Definition: AntennaMaster.cc:188