10 #ifndef CARMA_DOWNCONVERTER_SPECTRALDOWNCONVERTER_H
11 #define CARMA_DOWNCONVERTER_SPECTRALDOWNCONVERTER_H
19 #include "carma/corba/corba.h"
22 #include "carma/downconverter/spectral/SpectralDownconverterControl.h"
23 #include "carma/monitor/SldcSubsystem.h"
31 namespace downconverter {
51 carma::monitor::SldcSubsystem & sldcMon );
65 std::map<carma::canbus::msgType, std::string>
85 std::vector<carma::canbus::byteType> &data,
bool sim);
119 unsigned short input,
120 unsigned short band);
147 void setPsys(::CORBA::Float psys)
const;
181 void setIfOut(::CORBA::Float ifout)
const;
269 ::CORBA::Float power,
270 ::CORBA::Float delta);
303 void processBlankingFramePacket1(
304 std::vector<carma::canbus::byteType> &data);
305 void processBlankingFramePacket2(
306 std::vector<carma::canbus::byteType> &data);
307 void processBlankingFramePacket3(
308 std::vector<carma::canbus::byteType> &data);
309 void processBlankingFramePacket4(
310 std::vector<carma::canbus::byteType> &data);
311 void processBlankingFramePacket5(
312 std::vector<carma::canbus::byteType> &data);
313 void processBlankingFramePacket6(
314 std::vector<carma::canbus::byteType> &data);
326 void setState( carma::canbus::deviceStateType state );
329 ::std::string printInputAndBand()
const;
331 const unsigned short inputNo_;
332 const unsigned short bandNo_;
333 log4cpp::Category &log_;
334 carma::monitor::SldcSubsystem::Input * mon_;
335 double ifOutputPower_;
337 unsigned int lastLogWarnFrame_;
338 unsigned int offlinesSinceLastLog_;
339 bool commandLoggingEnabled_;
void setIModulatorVoltage(::CORBA::Short I) const
Manually set the differential voltage on the I channel of the 90 degree I/Q modulator to a particular...
void setPsysPreset() const
Set Psys power level to the preset value stored in the compensation EEPROM.
static carma::canbus::nodeType calculateNodeId(unsigned short input, unsigned short band)
Calculate node id based on the input and band id.
carma::canbus::Message simulateMsg(carma::canbus::msgType mid)
Produce a simulated CAN message for a given msgType.
virtual ~SpectralDownconverter()
Destructor.
Declarations of carma::canbus types.
Class to encapsulate a CAN message.
FilterType
Valid output bandwidth filter types.
void disableCommandLogging()
Disable command logging.
static carma::canbus::apiType getApiId()
Staticly retrieve the API Id.
void selectSideband(enum SpectralDownconverterControl::SidebandType sideband) const
Select which sideband the single sideband downconverter is to use.
::CORBA::Boolean isOnline()
Is this module online?
void setIfOutPreset() const
Set the IF Output Power level to the preset value stored in the compensation EEPROM.
void updateFrameData()
Update data on a frame time scale This routine is called automatically by carma::canbus::Master every...
void selectOutputFilter(enum SpectralDownconverterControl::FilterType filter) const
Select which of the available output bandwidth defining filters to use.
XacDevice canbus::device class implementation.
void enableCommandLogging()
Enable command logging.
void enableIfOutAlc(::CORBA::Boolean enable) const
Enable or disable the IF Output ALC (Automatic Level Control) loop (normally on). ...
unsigned short apiType
Carma API id type.
static std::string filterAsString(const carma::downconverter::DownconverterControl::FilterType filter)
Return a string representation of the input filter.
void setQModulatorVoltage(::CORBA::Short Q) const
Manually set the differential voltage on the Q channel of the 90 degree I/Q modulator to a particular...
void setPsysAtten(::CORBA::Float atten) const
Set Psys attenuation level to the requested level.
void processMsg(carma::canbus::msgType mid, std::vector< carma::canbus::byteType > &data, bool sim)
Process a CAN message.
unsigned short nodeType
Carma Node Type id type.
std::map< carma::canbus::msgType, std::string > getSlowMonitors() const
Retrieve a map of this devices slow monitor points.
void setIfOut(::CORBA::Float ifout) const
Set the IF Output power level to the requested level.
SpectralDownconverter CAN Device class implementation.
void setPsys(::CORBA::Float psys) const
Set Psys to requested power level.
void setLOFrequency(::CORBA::Double lofreq) const
Sends the 2nd LO frequency to this module which in turn uses it to determine required I and Q modulat...
SidebandType
Sideband type.
carma::canbus::devices::XacDevice class declaration.
void enableRfInputAmp(::CORBA::Boolean enable) const
Switch the RF Input Amplifier on or off.
std::map< carma::canbus::msgType, std::string > getHalfSecMonitors() const
Retrieve a map of this devices half second monitor points.
unsigned short msgType
Carma Message id type.
void setIfOutAtten(::CORBA::Float atten) const
Set the downconverter IF Output Attenuation to the requested value.
SpectralDownconverter(carma::canbus::nodeType node, carma::canbus::CanOutput &co, carma::monitor::SldcSubsystem &sldcMon)
Constructor.
::CORBA::Boolean checkIfOutputPower(::CORBA::Float power,::CORBA::Float delta)
Check that IF Output power is within a specified range.