11 #ifndef CARMA_DOWNCONVERTER_SLDCMASTER_H
12 #define CARMA_DOWNCONVERTER_SLDCMASTER_H
21 #include "carma/switchyard/Switchyard.h"
22 #include "carma/util/PthreadCond.h"
23 #include "carma/util/PthreadMutex.h"
31 class SignalPathSubsystem;
39 namespace downconverter {
56 SldcMaster( ::carma::monitor::SldcSubsystem & sldcMon,
57 ::carma::monitor::SignalPathSubsystem & signalPathMon );
75 SldcMaster( const ::std::vector< CanDio::DevTermPair > & devTermPairs,
77 ::carma::monitor::SldcSubsystem & sldcMon,
78 ::carma::monitor::SignalPathSubsystem & signalPathMon );
104 unsigned short inputIndex,
105 unsigned short bandIndex);
193 std::map<carma::canbus::msgType, std::string>
getControls()
const;
213 static void * runThreadEntry(
void *arg);
215 pthread_t runThreadId_;
220 carma::monitor::SldcSubsystem & sldcMon_;
221 carma::monitor::SignalPathSubsystem & signalPathMon_;
238 QuadModDeviceMap quadMods_;
239 BlockDcDeviceMap blockDownconverters_;
240 SldcDeviceMap sldcDevices_;
241 ::carma::switchyard::Switchyard switchyard_;
242 ::carma::switchyard::Switchyard dcLoSwitchyard_;
248 const std::string hostname_;
Device class declaration for Noise Source CAN device (CAN API 97).
SpectralDownconverter & getGlobalSldc()
Retrieve a reference to the global (node 0) SpectralDownconverter.
LoMonitor Device class implementation for Carma CANbus API 192.
QuadratureModulator & getGlobalQuadMod()
Retrieve a reference to the global (node 0) quad mod.
LoControl & getLoControl()
Retrieve a reference to the LoControl module.
LoMonitor & getLoMonitor()
Retrieve a reference to the LoMonitor module.
Noise Source Device Class.
LoMonitor Device class implementation.
void addDevice(carma::canbus::Device *device)
Add a device to the master.
BlockDownconverter & getBlockDownconverter(unsigned short inputNo)
Get a reference to a block downconverter module.
::carma::switchyard::Switchyard & getDcLoSwitchyard()
Retrieve a reference to the downconverter LO switchyard.
void updateStatus()
Update the status of the Sldc CAN Master.
Declaration of carma::canbus::Master class.
Quadrature modulator Device class implementation.
SpectralDownconverter & getSldc(unsigned short inputIndex, unsigned short bandIndex)
Retrieve a reference to a SpectralDownconverter residing on this system.
Spectral Downconverter System CAN Master.
A simple wrapper class that makes use of ::pthread_cond_t easier in a C++ world.
void reset()
Reset all modules on all controlled busses via the DIO lines.
std::map< carma::canbus::msgType, std::string > getControls() const
Retrieve a map of CAN controls provided by this class.
unsigned short nodeType
Carma Node Type id type.
Carma Quadrature Modulator CAN Device class implementation.
Spectral Line Downconverter LO Control declaration (API #200).
void softReset()
Reset all Xac modules on all controlled busses via the RESET message.
void stop()
Stop the sldc master.
Abstract base class for all CAN Bus devices.
Carma Canbus Master class.
SpectralDownconverter CAN Device class implementation.
QuadratureModulator & getQuadMod(unsigned short inputNo)
Retrieve a reference to specified QuadMod module.
::carma::switchyard::Switchyard & getSwitchyard()
Retrieve a reference to the switchyard.
virtual ~SldcMaster()
Destructor.
NoiseSource & getNoiseSource()
Retrieve a reference to the NoiseSource module.
SpectralDownconverter Device class implementation (CARMA CANbus API 024).
void start()
Start sldc master in a separate thread.
A simple wrapper class that makes use of ::pthread_mutex_t easier in a C++ world. ...
Spectral Line Downconverter LO Control module class.
CAN device implementation for block downconverter (API #4).
CAN Device class declaration for the Block Downconverter (API 4).
SldcMaster(::carma::monitor::SldcSubsystem &sldcMon,::carma::monitor::SignalPathSubsystem &signalPathMon)
Default constructor for emulation.
BlockDownconverter & getGlobalBlockDownconverter()
Retrieve a reference to the global (node 0) block downconverter.