1 #ifndef SPECIFICSHARE_H
2 #define SPECIFICSHARE_H
15 #include "gcp/util/common/DoubleBufferVec.h"
16 #include "gcp/util/common/TimeVal.h"
18 #include "gcp/util/common/AntennaDataFrameManager.h"
19 #include "gcp/util/common/QuadPath.h"
21 #include "gcp/antenna/control/specific/PolarEncoderPos.h"
22 #include "gcp/antenna/control/specific/Site.h"
26 #include "gcp/control/code/unix/libunix_src/specific/specificregs.h"
27 #include "gcp/control/code/unix/libunix_src/common/astrom.h"
29 #include "gcp/util/common/Directives.h"
59 static const unsigned int NANOSECONDS_PER_POSITION = 10000000;
71 unsigned nElPerSample_;
72 unsigned nFastElPerFrame_;
73 unsigned nBytePerSample_;
75 unsigned nBytePerFrame_;
77 unsigned char* bufPtr_;
78 unsigned char* framePtr_;
82 Block(
char* boardName,
char* blockName,
87 void buffer(
unsigned iSamp,
void* data,
bool print=
false);
88 void buffer(
void* data,
bool print=
false);
192 pthread_mutex_t guard_;
213 unsigned* boardStatusReg(
int board);
245 void setClock(
unsigned long mjd,
unsigned long sec,
246 unsigned long nanoSeconds);
276 pthread_mutex_t guard_;
310 void setSite(
double longitude,
double latitude,
double altitude);
356 pthread_mutex_t guard_;
410 pthread_mutex_t guard_;
425 RegMapBlock *host_read_;
549 double getLst(
double utc);
554 double getTt(
double lst);
568 void setClock(
unsigned long mjd,
unsigned long sec,
569 unsigned long nanoSeconds);
592 void setSite(
double longitude,
double latitude,
double altitude);
674 void setNewFramePending() {newFramePending_ =
true;};
676 void clearNewFramePending() {newFramePending_ =
false;};
678 bool isNewFramePending() {
return newFramePending_;};
697 std::vector<Block*> bufferedBlocks_;
707 std::string controlHost_;
712 SpecificRegDb *regdb_;
720 volatile bool newFramePending_;
725 SpecificClock *clock_;
730 SpecificAstrom *astrom_;
735 SpecificPmacLock *pmac_lock_;
void unfreezePmacReadout()
SpecificPmacLock(SpecificShare *share)
double getTt(double lst)
Definition: SpecificShare.cc:1124
void setSite(double longitude, double latitude, double altitude)
Definition: SpecificShare.cc:1191
void flagBoard(int board)
Definition: SpecificShare.cc:180
void switchBuffers()
Definition: SpecificShare.cc:1464
Definition: SpecificShare.h:387
void grabRegs(TimeOut timeout)
Definition: SpecificShare.cc:697
Block * addBufferedBlock(char *boardName, char *blockName)
Definition: SpecificShare.cc:1343
void extendEqnEqx(double tt, double eqneqx)
Definition: SpecificShare.cc:929
void extendUt1Utc(double utc, double ut1utc)
Definition: SpecificShare.cc:1200
SpecificClock()
Definition: SpecificShare.cc:365
bool verifyBoard(int board)
Definition: SpecificShare.cc:302
double getUtc()
Definition: SpecificShare.cc:1140
void ungrabRegs()
Definition: SpecificShare.cc:705
Definition: SpecificShare.h:103
void getSite(gcp::antenna::control::Site *site)
Definition: SpecificShare.cc:847
~SpecificShare()
Definition: SpecificShare.cc:655
unsigned int getNarchived()
Definition: SpecificShare.cc:1225
void setClock()
Definition: SpecificShare.cc:461
SpecificRegDb()
Definition: SpecificShare.cc:52
~SpecificAstrom()
Definition: SpecificShare.cc:769
Definition: SpecificShare.h:65
bool verifyBoard(int board)
Definition: SpecificShare.cc:729
void buffer(unsigned iSamp, void *data, bool print=false)
Definition: SpecificShare.cc:1420
void unflagBoard(int board)
Definition: SpecificShare.cc:243
unsigned int getNboard()
Definition: SpecificShare.cc:1217
void grabRegs(TimeOut timeout)
Definition: SpecificShare.cc:131
void switchBuffers()
Definition: SpecificShare.cc:1364
void setClock()
Definition: SpecificShare.cc:1183
void ungrabRegs()
Definition: SpecificShare.cc:153
void copyDataToFrame()
Definition: SpecificShare.cc:1474
static void pciSegvErrorHandler(int sig)
void extendUt1Utc(double utc, double ut1utc)
Definition: SpecificShare.cc:882
TimeOut
Definition: Share.h:45
~SpecificClock()
Definition: SpecificShare.cc:375
static HostAddress host_address[]
Definition: Share.h:412
static SpecificShare * share
Definition: SpecificShare.h:447
RegMapBoard * findRegMapBoard(std::string boardName)
void extendEqnEqx(double tt, double eqneqx)
Definition: SpecificShare.cc:1209
double getEqnEqx(double tt)
Definition: SpecificShare.cc:1033
Definition: SpecificShare.h:289
double getUt1Utc(double utc)
Definition: SpecificShare.cc:1158
double getUt1Utc(double utc)
Definition: SpecificShare.cc:979
double getUtc()
Definition: SpecificShare.cc:495
DataFrame * frame()
Definition: DataFrameManager.cc:384
RegMapBoard * findRegMapBoard(std::string boardName)
Definition: SpecificShare.cc:162
unsigned int getNbyte()
Definition: SpecificShare.cc:1241
double getEqnEqx(double tt)
Definition: SpecificShare.cc:1149
Definition: QuadPath.h:27
static void pciBusErrorHandler(int sig)
Definition: DataFrameManager.h:23
static std::string hostIpAddress(std::string host)
void packFrame(gcp::util::DataFrameManager *frame)
Definition: SpecificShare.cc:1324
void flagBoard(int board)
Definition: SpecificShare.cc:713
Definition: SpecificShare.h:224
void setSite(double longitude, double latitude, double altitude)
Definition: SpecificShare.cc:796
unsigned int getNreg()
Definition: SpecificShare.cc:1233
void copyBufferedBlocksToFrame()
Definition: SpecificShare.cc:1355
Definition: AntennaDataFrameManager.h:22
Block(char *boardName, char *blockName, SpecificShare *parent)
Definition: SpecificShare.cc:1377
void unflagBoard(int board)
Definition: SpecificShare.cc:721
SpecificShare(std::string host)
SpecificAstrom()
Definition: SpecificShare.cc:742
~SpecificRegDb()
Definition: SpecificShare.cc:99
double getLst(double utc)
Definition: SpecificShare.cc:1086