CARMA C++
|
Manages correlator control DO connections. More...
#include <carma/control/VlbiHandle.h>
Public Member Functions | |
void | flattenPhases (const int preferredSeqNo) |
Flatten phases on the band. More... | |
util::CorrelatorFpgaModeType | getFpgaMode () const |
Get the FPGA mode of this band. More... | |
bool | isActionComplete (const monitor::MonitorSystem &monsys, int monDataErrorLimit) |
Compare next sequence number with one returned from monitor system. More... | |
bool | isOffline () const |
void | optimizeThresholds (const int preferredSeqNo) |
Optimize thresholds on the band. More... | |
void | setAstroBandMode (util::CorrelatorFpgaModeType astroBandMode) |
Set the Astroband (FPGA) mode of this band. More... | |
void | setBandwidth (carma::correlator::obsRecord2::BandWidthType bw, const int preferredSeqNo, const unsigned int astroBandNo=0) |
Set bandwidth with a preferred sequence number. More... | |
void | setInputDelayTriplets (::std::vector< correlator::obsRecord2::DelayTriplet > triplets) |
set input delay triplets for a single polarization. More... | |
void | setOnline (const bool online) |
Mark a band offline or online. More... | |
VlbiHandle (unsigned int band, monitor::MonitorSystem &monitorSys, monitor::ControlSubsystemBase::Reachable &reachable, bool defaultLogIfNotReach) | |
Constructor. More... | |
![]() | |
template<typename S > | |
S::_var_type | narrowedRemoteObj () const |
Returns remote object handle as var. More... | |
T::_var_type | remoteObj () const |
Returns remote object handle as var. More... | |
RemoteObjHandleT (const ::std::string &doName, monitor::MonitorPointBool *mpReachable, const monitor::MonitorSubsystem *subsystem, monitor::MonitorSystem *system, bool defaultLogIfNotReachable, bool defaultLogSentCommands) | |
Constructor. More... | |
virtual | ~RemoteObjHandleT () |
Destructor. More... | |
![]() | |
bool | attemptToReconnectIfNeeded () |
Try reconnect to the DO if needed. More... | |
::std::string | doName () const |
get the DO name More... | |
void | forceFullReconnect () |
Force a full re-lookup of the DO by name. More... | |
bool | isObjReachable () |
If state is 'not reachable' and monitor system is current, tries to reconnect. More... | |
bool | isObjReachable (bool logIfNotReachable) |
RemoteObjHandleBase (const ::std::string &doName, monitor::MonitorPointBool *mpReachable, const monitor::MonitorSubsystem *subsystem, monitor::MonitorSystem *system, bool defaultLogIfNotReachable, bool defaultLogSentCommands) | |
Constructor. More... | |
virtual | ~RemoteObjHandleBase () |
Destructor. More... | |
Additional Inherited Members | |
![]() | |
virtual bool | resolveObjRef () |
![]() | |
bool | getDefaultLogIfNotReachable () const |
bool | getDefaultLogSentCommands () const |
void | invalidateObjRef () |
void | invalidateObjRefIfNeededForCaught () |
void | logException (const ::std::string &callString, const ::std::string &exString) const |
void | logSentCommand (const ::std::string &callString, const double mjd) const |
void | logSentCommand (const ::std::string &callString, const double mjd, const ::std::string &subDoName) const |
void | logSentCommandIfNeeded (const ::std::string &callString, const double mjd) const |
void | logSentCommandIfNeeded (const ::std::string &callString, const double mjd, const ::std::string &subDoName) const |
void | markObjRefValid () |
void | processException (const ::std::string &callString, const ::CORBA::Exception &corbaException) |
void | throwBadRemoteObjAccess () const |
void | throwIfObjRefIsNotValid () const |
Manages correlator control DO connections.
Definition at line 43 of file VlbiHandle.h.
carma::control::VlbiHandle::VlbiHandle | ( | unsigned int | band, |
monitor::MonitorSystem & | monitorSys, | ||
monitor::ControlSubsystemBase::Reachable & | reachable, | ||
bool | defaultLogIfNotReach | ||
) |
Constructor.
monitorSystem | monitor system reference which allows this handle to get a reference to its own monitor stream. This constructor will throw ErrorException if the Band hardware type comes back as HARDWARE_TYPE_UNKNOWN. |
void carma::control::VlbiHandle::flattenPhases | ( | const int | preferredSeqNo | ) |
Flatten phases on the band.
The process on the remote object takes ~30 seconds Noise source must be ON
preferredSeqNo | - The preferred sequence number for this command. If the preferred sequence number has already been used, the actual sequence number is set to preferred + 10. |
util::CorrelatorFpgaModeType carma::control::VlbiHandle::getFpgaMode | ( | ) | const |
Get the FPGA mode of this band.
Definition at line 134 of file VlbiHandle.h.
bool carma::control::VlbiHandle::isActionComplete | ( | const monitor::MonitorSystem & | monsys, |
int | monDataErrorLimit | ||
) |
Compare next sequence number with one returned from monitor system.
If they are the same then the last drive action is complete.
monsys | monitor system from which to retrieve completion |
monitorDataErrorLimit | number of consecutive monitor data invalid limit before thowing an exception |
if | number of consecutive monitor data errors is exceeed |
bool carma::control::VlbiHandle::isOffline | ( | ) | const |
Definition at line 76 of file VlbiHandle.h.
void carma::control::VlbiHandle::optimizeThresholds | ( | const int | preferredSeqNo | ) |
Optimize thresholds on the band.
The process on the remote object takes ~10 seconds Noise source must be OFF.
preferredSeqNo | - The preferred sequence number for this command. If the preferred sequence number has already been used, the actual sequence number is set to preferred + 10. |
void carma::control::VlbiHandle::setAstroBandMode | ( | util::CorrelatorFpgaModeType | astroBandMode | ) |
Set the Astroband (FPGA) mode of this band.
This will typically happen from within configband().
astroBandMode | The FPGA configuration mode: CORR_SINGLEPOL, CORR_DUALPOL, CORR_FULLPOL, or CORR_CARMA23 |
Definition at line 130 of file VlbiHandle.h.
void carma::control::VlbiHandle::setBandwidth | ( | carma::correlator::obsRecord2::BandWidthType | bw, |
const int | preferredSeqNo, | ||
const unsigned int | astroBandNo = 0 |
||
) |
Set bandwidth with a preferred sequence number.
Sets spectral bandwidth mode for the band. The process takes several seconds and is spawned off in a thread.
bw | bandwidth indicator (500MHZ, 250MHZ_3BIT, etc) |
preferredSeqNo | - The preferred sequence number for this command. If the preferred sequence number has already been used, the actual sequence number is set to preferred + 10. |
The | astroBand number to set. Default of -1 means the cobra library will set it to the Correlator Band number. |
void carma::control::VlbiHandle::setInputDelayTriplets | ( | ::std::vector< correlator::obsRecord2::DelayTriplet > | triplets | ) |
set input delay triplets for a single polarization.
void carma::control::VlbiHandle::setOnline | ( | const bool | online | ) |
Mark a band offline or online.
An offline band will ignore all commands.
Definition at line 81 of file VlbiHandle.h.