libcyberradio  22.01.24
RadioHandler.h
1 /***************************************************************************
2  * \file RadioHandler.h
3  * \brief Defines the basic radio handler interface for an NDR-class radio.
4  * \author DA
5  * \author NH
6  * \author MN
7  * \copyright (c) 2017 CyberRadio Solutions, Inc. All rights reserved.
8  *
9  ***************************************************************************/
10 
11 #ifndef INCLUDED_LIBCYBERRADIO_DRIVER_RADIOHANDLER_H
12 #define INCLUDED_LIBCYBERRADIO_DRIVER_RADIOHANDLER_H
13 
14 #include "LibCyberRadio/Common/BasicDict.h"
15 #include "LibCyberRadio/Common/BasicList.h"
16 #include "LibCyberRadio/Driver/Configurable.h"
17 #include "LibCyberRadio/Driver/DataPort.h"
18 #include "LibCyberRadio/Driver/DucComponent.h"
19 #include "LibCyberRadio/Driver/NbddcComponent.h"
20 #include "LibCyberRadio/Driver/NbddcGroupComponent.h"
21 #include "LibCyberRadio/Driver/RadioTransport.h"
22 #include "LibCyberRadio/Driver/SimpleIpSetup.h"
23 #include "LibCyberRadio/Driver/TransmitterComponent.h"
24 #include "LibCyberRadio/Driver/TunerComponent.h"
25 #include "LibCyberRadio/Driver/VitaIfSpec.h"
26 #include "LibCyberRadio/Driver/WbddcComponent.h"
27 #include "LibCyberRadio/Driver/WbddcGroupComponent.h"
28 #include <cstdint>
29 #include <string>
30 
31 
35 namespace LibCyberRadio
36 {
40  namespace Driver
41  {
54  class RadioHandler : public Configurable
55  {
56  public:
89  const std::string& name = "NDR",
90  int numTuner = 0,
91  int tunerIndexBase = 1,
92  int numWbddc = 0,
93  int wbddcIndexBase = 1,
94  int numNbddc = 0,
95  int nbddcIndexBase = 1,
96  int numTunerBoards = 1,
97  int maxTunerBw = 0,
98  int numTransmitter = 0,
99  int transmitterIndexBase = 1,
100  int numDuc = 0,
101  int ducIndexBase = 1,
102  int numWbddcGroups = 0,
103  int wbddcGroupIndexBase = 1,
104  int numNbddcGroups = 0,
105  int nbddcGroupIndexBase = 1,
106  int numDdcGroups = 0,
107  int ddcGroupIndexBase = 1,
108  int numDataPorts = 0,
109  int dataPortIndexBase = 1,
110  int numSimpleIpSetups = 0,
111  double adcRate = 102.4e6,
112  VitaIfSpec ifSpec = VitaIfSpec(),
113  bool debug = false
114  );
118  virtual ~RadioHandler();
123  RadioHandler(const RadioHandler& other);
129  virtual RadioHandler& operator=(const RadioHandler& other);
134  virtual bool isConnected() const;
154  virtual bool connect(
155  const std::string& mode,
156  const std::string& host_or_dev,
157  const int port_or_baudrate
158  );
162  virtual void disconnect();
171  const std::string& cmdString,
172  double timeout = -1
173  );
185  virtual bool setConfiguration(ConfigurationDict& cfg);
191  virtual void queryConfiguration();
197  virtual std::string getLastCommandErrorInfo() const;
203  virtual bool sendReset(int resetType=0);
209  virtual bool getPps();
217  virtual bool setTimeNextPps(bool checkTime=false, bool useGpsTime=false);
222  virtual time_t getTimeNow();
227  virtual time_t getTimeNextPps();
233  virtual unsigned int getStatus();
239  virtual unsigned int getTstatus();
247  virtual bool setReferenceMode(int mode);
255  virtual bool setBypassMode(int mode);
264  virtual bool setTimeAdjustment(int tunerIndex, int timeAdjustValue);
277  virtual int getTemperature();
283  virtual int getGpioOutput();
289  virtual BasicIntList getGpioOutputByIndex(int index);
297  virtual bool setGpioOutput(int value);
312  virtual bool setGpioOutputByIndex(int index, int value,
313  int duration, int loop, int go);
319  virtual double getCalibrationFrequency() const;
326  virtual bool setCalibrationFrequency(double freq);
331  virtual int getNumDataPorts() const;
336  virtual BasicIntList getDataPortIndexRange() const;
343  virtual int getNumDataPortDipEntries() const;
354  virtual BasicStringList getConnectionModeList() const;
359  virtual bool isConnectionModeSupported(const std::string& mode) const;
364  virtual double getAdcRate() const;
369  virtual int getVitaHeaderSize() const;
374  virtual int getVitaPayloadSize() const;
379  virtual int getVitaTailSize() const;
385  virtual bool isByteswapped() const;
391  virtual bool isIqSwapped() const;
396  virtual const char* getByteOrder() const;
397  // getVitaEnableOptionSet()
402  virtual int getNumTuner() const;
407  virtual int getNumTunerBoards() const;
412  virtual BasicIntList getTunerIndexRange() const;
417  virtual BasicDoubleList getTunerFrequencyRange() const;
422  virtual double getTunerFrequencyRes() const;
435  virtual double getTunerFrequencyUnit() const;
445  virtual double getTunerAttenuationRes() const;
451  virtual bool isTunerEnabled(int index) const;
458  virtual bool enableTuner(int index, bool enabled = true);
464  virtual bool disableTuner(int index);
470  virtual double getTunerFrequency(int index) const;
477  virtual bool setTunerFrequency(int index, double freq);
483  virtual double getTunerAttenuation(int index) const;
490  virtual bool setTunerAttenuation(int index, double atten);
496  virtual int getTunerFilter(int index) const;
503  virtual bool setTunerFilter(int index, int filter);
509  virtual ConfigurationDict getTunerConfiguration(int index) const;
516  virtual bool setTunerConfiguration(int index, ConfigurationDict& cfg);
521  virtual int getNumWbddc() const;
526  virtual BasicIntList getWbddcIndexRange() const;
531  virtual bool isWbddcTunable() const;
537  virtual bool isWbddcSelectableSource() const;
543  virtual BasicDoubleList getWbddcFrequencyRange() const;
549  virtual double getWbddcFrequencyRes() const;
562  virtual double getWbddcFrequencyUnit() const;
567  virtual WbddcRateSet getWbddcRateSet() const;
573  virtual BasicDoubleList getWbddcRateList() const;
579  virtual bool isWbddcEnabled(int index) const;
586  virtual bool enableWbddc(int index, bool enabled = true);
592  virtual bool disableWbddc(int index);
599  virtual double getWbddcFrequency(int index) const;
607  virtual bool setWbddcFrequency(int index, double freq);
615  virtual int getWbddcSource(int index) const;
624  virtual bool setWbddcSource(int index, int source);
630  virtual int getWbddcRateIndex(int index) const;
637  virtual bool setWbddcRateIndex(int index, int rateIndex);
643  virtual int getWbddcUdpDestination(int index) const;
650  virtual bool setWbddcUdpDestination(int index, int dest);
656  virtual int getWbddcVitaEnable(int index) const;
663  virtual bool setWbddcVitaEnable(int index, int enable);
669  virtual unsigned int getWbddcStreamId(int index) const;
676  virtual bool setWbddcStreamId(int index, unsigned int sid);
683  virtual int getWbddcDataPort(int index) const;
691  virtual bool setWbddcDataPort(int index, int port);
698  virtual bool setWbddcRateSet(int index, const WbddcRateSet& set);
704  virtual ConfigurationDict getWbddcConfiguration(int index) const;
711  virtual bool setWbddcConfiguration(int index, ConfigurationDict& cfg);
716  virtual int getNumNbddc() const;
721  virtual BasicIntList getNbddcIndexRange() const;
727  virtual BasicDoubleList getNbddcFrequencyRange() const;
733  virtual double getNbddcFrequencyRes() const;
746  virtual double getNbddcFrequencyUnit() const;
751  virtual NbddcRateSet getNbddcRateSet() const;
757  virtual BasicDoubleList getNbddcRateList() const;
763  virtual bool isNbddcEnabled(int index) const;
770  virtual bool enableNbddc(int index, bool enabled = true);
776  virtual bool disableNbddc(int index);
783  virtual double getNbddcFrequency(int index) const;
791  virtual bool setNbddcFrequency(int index, double freq);
799  virtual int getNbddcSource(int index) const;
808  virtual bool setNbddcSource(int index, int source);
814  virtual int getNbddcRateIndex(int index) const;
821  virtual bool setNbddcRateIndex(int index, int rateIndex);
827  virtual int getNbddcUdpDestination(int index) const;
834  virtual bool setNbddcUdpDestination(int index, int dest);
840  virtual int getNbddcVitaEnable(int index) const;
847  virtual bool setNbddcVitaEnable(int index, int enable);
853  virtual unsigned int getNbddcStreamId(int index) const;
860  virtual bool setNbddcStreamId(int index, unsigned int sid);
867  virtual int getNbddcDataPort(int index) const;
875  virtual bool setNbddcDataPort(int index, int port);
882  virtual bool setNbddcRateSet(int index, const NbddcRateSet& set);
888  virtual ConfigurationDict getNbddcConfiguration(int index) const;
895  virtual bool setNbddcConfiguration(int index, ConfigurationDict& cfg);
900  virtual int getNumTransmitters() const;
905  virtual BasicIntList getTransmitterIndexRange() const;
915  virtual double getTransmitterFrequencyRes() const;
928  virtual double getTransmitterFrequencyUnit() const;
939  virtual double getTransmitterAttenuationRes() const;
945  virtual bool isTransmitterEnabled(int index) const;
952  virtual bool enableTransmitter(int index, bool enabled = true);
958  virtual bool disableTransmitter(int index);
964  virtual double getTransmitterFrequency(int index) const;
971  virtual bool setTransmitterFrequency(int index, double freq);
977  virtual double getTransmitterAttenuation(int index) const;
984  virtual bool setTransmitterAttenuation(int index, double atten);
990  virtual ConfigurationDict getTransmitterConfiguration(int index) const;
997  virtual bool setTransmitterConfiguration(int index, ConfigurationDict& cfg);
1003  virtual bool transmitterSupportsCW() const;
1009  virtual int getTransmitterCWNum() const;
1014  virtual BasicIntList getTransmitterCWIndexRange() const;
1024  virtual double getTransmitterCWFrequencyRes() const;
1034  virtual double getTransmitterCWAmplitudeRes() const;
1044  virtual int getTransmitterCWPhaseRes() const;
1049  virtual bool transmitterSupportsCWSweep() const;
1059  virtual double getTransmitterCWSweepStartRes() const;
1069  virtual double getTransmitterCWSweepStopRes() const;
1079  virtual double getTransmitterCWSweepStepRes() const;
1089  virtual double getTransmitterCWSweepDwellRes() const;
1097  virtual bool enableTransmitterCW(int index, int cwIndex,
1098  bool enabled = true);
1105  virtual bool disableTransmitterCW(int index, int cwIndex);
1113  int cwIndex) const;
1122  virtual bool setTransmitterCWConfiguration(int index, int cwIndex,
1123  ConfigurationDict& cfg);
1130  virtual double getTransmitterCWFrequency(int index, int cwIndex) const;
1138  virtual bool setTransmitterCWFrequency(int index, int cwIndex, double freq);
1145  virtual double getTransmitterCWAmplitude(int index, int cwIndex) const;
1153  virtual bool setTransmitterCWAmplitude(int index, int cwIndex, double amp);
1160  virtual double getTransmitterCWPhase(int index, int cwIndex) const;
1168  virtual bool setTransmitterCWPhase(int index, int cwIndex, double phase);
1176  virtual bool transmitterSupportsCWSweep(int index, int cwIndex) const;
1184  virtual double getTransmitterCWSweepStartFrequency(int index, int cwIndex) const;
1192  virtual double getTransmitterCWSweepStopFrequency(int index, int cwIndex) const;
1200  virtual double getTransmitterCWSweepFrequencyStep(int index, int cwIndex) const;
1208  virtual double getTransmitterCWSweepDwellTime(int index, int cwIndex) const;
1220  virtual bool setTransmitterCWFrequencySweep(int index, int cwIndex, double start,
1221  double stop, double step, double dwell);
1226  virtual int getNumDuc() const;
1231  virtual BasicIntList getDucIndexRange() const;
1236  virtual bool ducSupportsSnapshotLoad() const;
1241  virtual bool ducSupportsSnapshotTransmit() const;
1248  virtual bool enableDuc(int index, bool enabled);
1254  virtual bool disableDuc(int index);
1260  virtual ConfigurationDict getDucConfiguration(int index) const;
1267  virtual bool setDucConfiguration(int index, ConfigurationDict& cfg);
1273  virtual int getDucDataPort(int index) const;
1281  virtual bool setDucDataPort(int index, int port);
1287  virtual double getDucFrequency(int index) const;
1294  virtual bool setDucFrequency(int index, double freq);
1299  virtual BasicDoubleList getDucFrequencyRange() const;
1304  virtual double getDucFrequencyRes() const;
1309  virtual double getDucFrequencyUnit() const;
1315  virtual double getDucAttenuation(int index) const;
1322  virtual bool setDucAttenuation(int index, double atten);
1327  virtual BasicDoubleList getDucAttenuationRange() const;
1332  virtual double getDucAttenuationRes() const;
1338  virtual int getDucRateIndex(int index) const;
1345  virtual bool setDucRateIndex(int index, int rateIndex);
1354  virtual int getDucTxChannelBitmap(int index) const;
1364  virtual bool setDucTxChannelBitmap(int index, int txChannels);
1370  virtual int getDucMode(int index) const;
1377  virtual bool setDucMode(int index, int mode);
1383  virtual unsigned int getDucStreamId(int index) const;
1390  virtual bool setDucStreamId(int index, unsigned int sid);
1407  virtual bool loadDucSnapshot(int index,
1408  const std::string& filename,
1409  unsigned int startSample = 0,
1410  unsigned int samples = 0
1411  );
1416  virtual DucRateSet getDucRateSet() const;
1422  virtual BasicDoubleList getDucRateList() const;
1427  virtual int getNumWbddcGroups() const;
1432  virtual BasicIntList getWbddcGroupIndexRange() const;
1438  virtual bool isWbddcGroupEnabled(int index) const;
1445  virtual bool enableWbddcGroup(int index, bool enabled);
1451  virtual bool disableWbddcGroup(int index);
1457  virtual ConfigurationDict getWbddcGroupConfiguration(int index) const;
1464  virtual bool setWbddcGroupConfiguration(int index, ConfigurationDict& cfg);
1470  virtual BasicIntList getWbddcGroupMembers(int index) const;
1477  virtual bool setWbddcGroupMembers(int index, const BasicIntList& groupMembers);
1484  virtual bool addWbddcGroupMember(int index, int member);
1491  virtual bool removeWbddcGroupMember(int index, int member);
1496  virtual int getNumNbddcGroups() const;
1501  virtual BasicIntList getNbddcGroupIndexRange() const;
1507  virtual bool isNbddcGroupEnabled(int index) const;
1514  virtual bool enableNbddcGroup(int index, bool enabled);
1520  virtual bool disableNbddcGroup(int index);
1526  virtual ConfigurationDict getNbddcGroupConfiguration(int index) const;
1533  virtual bool setNbddcGroupConfiguration(int index, ConfigurationDict& cfg);
1539  virtual BasicIntList getNbddcGroupMembers(int index) const;
1546  virtual bool setNbddcGroupMembers(int index, const BasicIntList& groupMembers);
1553  virtual bool addNbddcGroupMember(int index, int member);
1560  virtual bool removeNbddcGroupMember(int index, int member);
1565  virtual bool disableTenGigFlowControl();
1570  virtual bool enableTenGigFlowControl();
1576  virtual bool setTenGigFlowControlStatus(bool enable);
1588  virtual ConfigurationDict getDataPortConfiguration(int index) const;
1596  virtual bool setDataPortConfiguration(int index, ConfigurationDict& cfg);
1602  virtual std::string getDataPortSourceIP(int index) const;
1609  virtual bool setDataPortSourceIP(int index, const std::string& ipAddr);
1616  virtual bool enableDataPortErrors(int index, bool enabled = true);
1622  virtual bool disableDataPortErrors(int index);
1629  virtual bool enableDataPortFlowControl(int index, bool enabled = true);
1635  virtual bool disableDataPortFlowControl(int index);
1643  virtual std::string getDataPortDestMACAddress(int index, int dipIndex) const;
1652  virtual bool setDataPortDestMACAddress(int index, int dipIndex,
1653  const std::string& macAddr);
1661  virtual std::string getDataPortDestIPAddress(int index, int dipIndex) const;
1670  virtual bool setDataPortDestIPAddress(int index, int dipIndex,
1671  const std::string& ipAddr);
1679  virtual unsigned int getDataPortDestSourcePort(int index, int dipIndex) const;
1688  virtual bool setDataPortDestSourcePort(int index, int dipIndex,
1689  unsigned int sourcePort);
1697  virtual unsigned int getDataPortDestDestPort(int index, int dipIndex) const;
1706  virtual bool setDataPortDestDestPort(int index, int dipIndex,
1707  unsigned int destPort);
1719  virtual bool setDataPortDestInfo(int index,
1720  int dipIndex,
1721  const std::string& ipAddr,
1722  const std::string& macAddr,
1723  unsigned int sourcePort,
1724  unsigned int destPort);
1737  virtual bool setSimpleIPConfiguration(ConfigurationDict& cfg);
1743  virtual std::string getSimpleSourceMACAddress() const;
1749  virtual std::string getSimpleSourceIPAddress() const;
1756  virtual bool setSimpleSourceIPAddress(const std::string& ipAddr);
1762  virtual std::string getSimpleDestMACAddress() const;
1769  virtual bool setSimpleDestMACAddress(const std::string& macAddr);
1775  virtual std::string getSimpleDestIPAddress() const;
1782  virtual bool setSimpleDestIPAddress(const std::string& ipAddr);
1792  virtual int getDefaultDeviceInfo() const;
1796  virtual uint32_t getMessageId( void );
1797 
1798  protected:
1809  virtual void initConfigurationDict();
1816  virtual void updateConfigurationDict();
1817  // Queries the radio for its version information.
1818  virtual bool queryVersionInfo();
1819  // Queries the radio for its specific configuration information.
1820  // Individual radios should override this as necessary.
1821  virtual bool queryRadioConfiguration();
1822  // Executes the *IDN? query on the radio.
1823  virtual bool executeQueryIDN(std::string& model,
1824  std::string& serialNumber);
1825  // Executes the VER? query on the radio.
1826  virtual bool executeQueryVER(std::string& softwareVersion,
1827  std::string& firmwareVersion,
1828  std::string& referenceVersion,
1829  std::string& firmwareDate);
1830  // Executes the HREV? query on the radio.
1831  virtual bool executeQueryHREV(std::string& hardwareInfo);
1832  // Executes the reset command on the radio.
1833  // Override this as needed for radios that support this command.
1834  virtual bool executeResetCommand(int resetType=0);
1835  // Executes the PPS command on the radio.
1836  // Override this as needed for radios that support this command.
1837  virtual bool executePpsQuery();
1838  // Executes the time query on the radio.
1839  // Override this as needed for radios that support this command.
1840  // Time is an in/out parameter
1841  virtual bool executeTimeQuery(std::string& timeStr);
1842  // Executes the time command on the radio.
1843  // Override this as needed for radios that support this command.
1844  // Time is an in/out parameter
1845  virtual bool executeTimeCommand(std::string& timeStr);
1846  // Executes the GPS time query on the radio.
1847  // Override this as needed for radios that support this command.
1848  // Time is an in/out parameter
1849  virtual bool executeGpsTimeQuery(std::string& timeStr);
1850  // Executes the config mode query on the radio.
1851  // Override this as needed for radios that support this command.
1852  // Config mode is an in/out parameter
1853  virtual bool executeConfigModeQuery(int& configMode);
1854  // Executes the config mode command on the radio.
1855  // Override this as needed for radios that support this command.
1856  // Config mode is an input parameter
1857  virtual bool executeConfigModeCommand(int& configMode);
1858  // Executes the coherent mode query on the radio.
1859  // Override this as needed for radios that support this command.
1860  // Coherent mode is an in/out parameter
1861  virtual bool executeCoherentModeQuery(int& coherentMode);
1862  // Executes the coherent mode command on the radio.
1863  // Override this as needed for radios that support this command.
1864  // Coherent mode is an in/out parameter
1865  virtual bool executeCoherentModeCommand(int& coherentMode);
1866  // Executes the frequency normalization query on the radio.
1867  // Override this as needed for radios that support this command.
1868  // FNR mode is an in/out parameter
1869  virtual bool executeFreqNormalizationQuery(int& fnrMode);
1870  // Executes the frequency normalization command on the radio.
1871  // Override this as needed for radios that support this command.
1872  // FNR mode is an in/out parameter
1873  virtual bool executeFreqNormalizationCommand(int& fnrMode);
1874  // Executes the GPS enabled query on the radio.
1875  // Override this as needed for radios that support this command.
1876  // GPS mode is an in/out parameter
1877  virtual bool executeGpsEnabledQuery(int& enabled);
1878  // Executes the GPS enabled command on the radio.
1879  // Override this as needed for radios that support this command.
1880  // GPS mode is an in/out parameter
1881  virtual bool executeGpsEnabledCommand(int& enabled);
1882  // Executes the GPS position query on the radio.
1883  // Override this as needed for radios that support this command.
1884  // GPS position are in/out parameters
1885  virtual bool executeGpsPositionQuery(double& lat, double& lon);
1886  // Executes the reference mode query on the radio.
1887  // Override this as needed for radios that support this command.
1888  // Ref mode is an in/out parameter
1889  virtual bool executeReferenceModeQuery(int& refMode);
1890  // Executes the reference mode command on the radio.
1891  // Override this as needed for radios that support this command.
1892  // Ref mode is an in/out parameter
1893  virtual bool executeReferenceModeCommand(int& refMode);
1894  // Executes the reference bypass query on the radio.
1895  // Override this as needed for radios that support this command.
1896  // Ref bypass is an in/out parameter
1897  virtual bool executeReferenceBypassQuery(int& bypassMode);
1898  // Executes the reference bypass command on the radio.
1899  // Override this as needed for radios that support this command.
1900  // Ref bypass is an in/out parameter
1901  virtual bool executeReferenceBypassCommand(int& bypassMode);
1902  // Executes the reference tuning voltage query on the radio.
1903  // Override this as needed for radios that support this command.
1904  // Ref tuning voltage is an in/out parameter
1905  virtual bool executeReferenceVoltageQuery(int& voltage);
1906  // Executes the reference tuning voltage command on the radio.
1907  // Override this as needed for radios that support this command.
1908  // Ref tuning voltage is an in/out parameter
1909  virtual bool executeReferenceVoltageCommand(int& voltage);
1910  // Executes the status query on the radio.
1911  // Override this as needed for radios that support this command.
1912  // Status is an in/out parameter
1913  virtual bool executeStatusQuery(unsigned int& stat);
1914  // Executes the tuner status query on the radio.
1915  // Override this as needed for radios that support this command.
1916  // Status is an in/out parameter
1917  virtual bool executeTstatusQuery(unsigned int& stat);
1918  // Executes the temperature query on the radio.
1919  // Override this as needed for radios that support this command.
1920  // Temperature is an in/out parameter
1921  virtual bool executeTemperatureQuery(int& temp);
1922  // Executes the GPIO static query
1923  // Override this as needed for radios that support this command.
1924  // Value is an in/out parameter
1925  virtual bool executeGpioStaticQuery(int& value);
1926  // Executes the GPIO sequence query
1927  // Override this as needed for radios that support this command.
1928  // Value, duration, loop are in/out parameters
1929  virtual bool executeGpioSequenceQuery(int index, int& value,
1930  int &duration, int& loop);
1931  // Executes the GPIO static command
1932  // Override this as needed for radios that support this command.
1933  // Value is an in/out parameter
1934  virtual bool executeGpioStaticCommand(int& value);
1935  // Executes the GPIO sequence comamnd
1936  // Override this as needed for radios that support this command.
1937  // Value, duration, loop, go are in/out parameters
1938  virtual bool executeGpioSequenceCommand(int index, int& value,
1939  int &duration, int& loop,
1940  int &go);
1941  // Executes the calibration frequency query
1942  // Override this as needed for radios that support this command.
1943  // Freq is an in/out parameter
1944  virtual bool executeCalibFrequencyQuery(double& freq);
1945  // Executes the calibration frequency command
1946  // Override this as needed for radios that support this command.
1947  // Freq is an in/out parameter
1948  virtual bool executeCalibFrequencyCommand(double& freq);
1949  // Converts an NMEA 0183-formatted coordinate string to decimal degrees.
1950  virtual double getDecimalDegreesFromNmea(const std::string& coord);
1951 
1952 
1953 
1954  protected:
1955  std::string _name;
1956  RadioTransport _transport;
1957  BasicStringList _connModesSupported;
1958  // Radio capabilities
1959  int _numTuner;
1960  int _tunerIndexBase;
1961  int _numWbddc;
1962  int _wbddcIndexBase;
1963  int _numNbddc;
1964  int _nbddcIndexBase;
1965  int _numTunerBoards;
1966  int _maxTunerBw;
1967  int _numTransmitter;
1968  int _transmitterIndexBase;
1969  int _numDuc;
1970  int _ducIndexBase;
1971  int _numWbddcGroups;
1972  int _wbddcGroupIndexBase;
1973  int _numNbddcGroups;
1974  int _nbddcGroupIndexBase;
1975  int _numDdcGroups;
1976  int _ddcGroupIndexBase;
1977  int _numDataPorts;
1978  int _dataPortIndexBase;
1979  int _numSimpleIpSetups;
1980  double _adcRate;
1981  VitaIfSpec _ifSpec;
1982  // Radio configuration items
1983  int _configMode;
1984  int _coherentMode;
1985  int _freqNormalization;
1986  int _gpsEnabled;
1987  int _referenceMode;
1988  int _referenceTuningVoltage;
1989  int _referenceBypass;
1990  double _calibFrequency;
1991  // Components
1992  TunerComponentDict _tuners;
1993  WbddcComponentDict _wbddcs;
1994  NbddcComponentDict _nbddcs;
1996  DucComponentDict _ducs;
1997  WbddcGroupComponentDict _wbddcGroups;
1998  NbddcGroupComponentDict _nbddcGroups;
1999  // Other configurables
2000  DataPortDict _dataPorts;
2001  SimpleIpSetupDict _simpleIpSetups;
2002  // Status
2003  std::string _lastCmdErrorInfo;
2004  BasicStringStringDict _versionInfo;
2005  BasicStringStringDict _connectionInfo;
2006  double _defaultTimeout;
2007  int _defaultDeviceInfo;
2008 
2009  }; /* class RadioHandler */
2010 
2011  } /* namespace Driver */
2012 
2013 } /* namespace LibCyberRadio */
2014 
2015 #endif /* INCLUDED_LIBCYBERRADIO_DRIVER_RADIOHANDLER_H */
virtual BasicIntList getWbddcIndexRange() const
Gets the range of WBDDC indices on the radio.
virtual BasicDoubleList getTransmitterCWSweepStepRange() const
Gets the CW frequency step range.
virtual ~RadioHandler()
Destroys a RadioHandler object.
virtual BasicIntList getTransmitterCWIndexRange() const
Gets the range of indices for CW tone generators.
virtual bool disableTransmitterCW(int index, int cwIndex)
Disables a given CW tone generator.
virtual BasicDoubleList getTransmitterCWSweepStopRange() const
Gets the CW stop frequency range.
virtual WbddcRateSet getWbddcRateSet() const
Gets the WBDDC rate set.
virtual std::string getDataPortDestMACAddress(int index, int dipIndex) const
Gets the MAC address for a given entry in the destination IP table on a given data port...
virtual bool setWbddcSource(int index, int source)
Sets the source (which tuner is supplying the signal) for a given WBDDC.
virtual bool setWbddcStreamId(int index, unsigned int sid)
Sets the VITA 49 stream ID for a given WBDDC.
virtual double getWbddcFrequency(int index) const
Gets the tuned frequency for a given WBDDC.
virtual int getNumDataPortDipEntries() const
Gets the number of UDP destination table entries for the 10GigE data ports on the radio...
BASIC_DICT_CONTAINER< int, TransmitterComponent * > TransmitterComponentDict
A dictionary of tuner components, keyed by index.
virtual RadioHandler & operator=(const RadioHandler &other)
Assignment operator for RadioHandler objects.
virtual bool setNbddcGroupConfiguration(int index, ConfigurationDict &cfg)
Sets the configuration dictionary for a given NBDDC group.
virtual bool setReferenceMode(int mode)
Sets the reference mode on the radio.
virtual int getNumNbddc() const
Gets the number of NBDDCs on the radio.
virtual unsigned int getTstatus()
Gets the tuner status from the radio.
virtual BasicDoubleList getDucRateList() const
Gets the list of allowed DUC sample rates, based on the rate set.
virtual double getTransmitterAttenuation(int index) const
Gets the attenuation for a given transmitter.
virtual std::string getDataPortSourceIP(int index) const
Gets the source IP address for a given data port.
virtual bool setTimeAdjustment(int tunerIndex, int timeAdjustValue)
Sets the time adjustment for tuners on the radio.
virtual double getTunerFrequencyUnit() const
Gets the tuned frequency units for tuners.
virtual bool setWbddcGroupConfiguration(int index, ConfigurationDict &cfg)
Sets the configuration dictionary for a given WBDDC group.
virtual int getNumDataPorts() const
Gets the number of 10GigE data ports on the radio.
virtual double getDucFrequencyRes() const
Gets the tuned frequency resolution for DUCs.
virtual int getWbddcDataPort(int index) const
Gets the data port for a given WBDDC.
virtual bool setNbddcUdpDestination(int index, int dest)
Sets the UDP destination for a given NBDDC.
virtual BasicIntList getNbddcGroupMembers(int index) const
Gets the list of group members for a given NBDDC group.
virtual bool enableTransmitterCW(int index, int cwIndex, bool enabled=true)
Enables a given CW tone generator.
virtual bool isWbddcSelectableSource() const
Gets whether the WBDDCs on this radio support selecting their tuner source.
virtual int getNumWbddc() const
Gets the number of WBDDCs on the radio.
virtual double getTransmitterCWSweepStepRes() const
Gets the CW frequency step resolution.
virtual bool removeWbddcGroupMember(int index, int member)
Removes a WBDDC from the given WBDDC group.
virtual int getDucDataPort(int index) const
Gets the data port for a given DUC.
virtual bool setWbddcVitaEnable(int index, int enable)
Sets the VITA 49 setting for a given WBDDC.
virtual bool setConfiguration(ConfigurationDict &cfg)
Sets the configuration dictionary for this object.
BASIC_DICT_CONTAINER< int, DucComponent * > DucComponentDict
A dictionary of DUC components, keyed by index.
Definition: DucComponent.h:420
virtual ConfigurationDict getSimpleIPConfiguration() const
Gets the "simple" IP configuration dictionary for radios without 10Gig data ports.
virtual bool setDucRateIndex(int index, int rateIndex)
Sets the rate index for a given DUC.
virtual double getTransmitterCWSweepDwellRes() const
Gets the CW dwell time resolution.
Class that defines the VITA interface specification for an NDR-class radio.
Definition: VitaIfSpec.h:33
virtual bool setNbddcSource(int index, int source)
Sets the source (which tuner is supplying the signal) for a given NBDDC.
virtual ConfigurationDict getDucConfiguration(int index) const
Gets the configuration dictionary for a given DUC.
virtual bool setWbddcFrequency(int index, double freq)
Sets the tuned frequency for a given WBDDC.
virtual bool setTransmitterCWConfiguration(int index, int cwIndex, ConfigurationDict &cfg)
Sets the configuration dictionary for a given CW tone generator.
virtual bool disableTenGigFlowControl()
Disables flow control on all 10GigE data ports.
virtual double getDucFrequency(int index) const
Gets the tuned frequency for a given DUC.
virtual bool setTransmitterCWFrequency(int index, int cwIndex, double freq)
Sets the constant frequency for a given CW tone generator.
virtual bool disableWbddc(int index)
Disables a given WBDDC.
virtual bool setDataPortConfiguration(int index, ConfigurationDict &cfg)
Sets the configuration dictionary for a given data port.
virtual BasicDoubleList getTransmitterCWFrequencyRange() const
Gets the CW frequency range.
virtual bool disableWbddcGroup(int index)
Disables a given WBDDC group.
virtual bool setWbddcDataPort(int index, int port)
Sets the data port for a given WBDDC.
virtual bool setTenGigFlowControlStatus(bool enable)
Sets flow control status on all 10GigE data ports.
virtual bool setNbddcRateIndex(int index, int rateIndex)
Sets the rate index for a given NBDDC.
BASIC_LIST_CONTAINER< double > BasicDoubleList
Type representing a list of doubles.
Definition: BasicList.h:29
virtual double getTransmitterCWAmplitudeRes() const
Gets the CW amplitude resolution.
virtual bool addWbddcGroupMember(int index, int member)
Adds a WBDDC to the given WBDDC group.
RadioHandler(const std::string &name="NDR", int numTuner=0, int tunerIndexBase=1, int numWbddc=0, int wbddcIndexBase=1, int numNbddc=0, int nbddcIndexBase=1, int numTunerBoards=1, int maxTunerBw=0, int numTransmitter=0, int transmitterIndexBase=1, int numDuc=0, int ducIndexBase=1, int numWbddcGroups=0, int wbddcGroupIndexBase=1, int numNbddcGroups=0, int nbddcGroupIndexBase=1, int numDdcGroups=0, int ddcGroupIndexBase=1, int numDataPorts=0, int dataPortIndexBase=1, int numSimpleIpSetups=0, double adcRate=102.4e6, VitaIfSpec ifSpec=VitaIfSpec(), bool debug=false)
Constructs a RadioHandler object.
virtual NbddcRateSet getNbddcRateSet() const
Gets the NBDDC rate set.
virtual bool setDucConfiguration(int index, ConfigurationDict &cfg)
Sets the configuration dictionary for a given DUC.
virtual ConfigurationDict getTunerConfiguration(int index) const
Gets the configuration dictionary for a given tuner.
virtual bool connect(const std::string &mode, const std::string &host_or_dev, const int port_or_baudrate)
Connects to the radio.
virtual bool isTunerEnabled(int index) const
Gets whether or not a given tuner is enabled.
virtual double getTransmitterFrequency(int index) const
Gets the frequency for a given transmitter.
virtual bool setSimpleSourceIPAddress(const std::string &ipAddr)
Sets the source IP address for radios without 10Gig data ports.
virtual bool setCalibrationFrequency(double freq)
Sets the calibration frequency.
virtual bool disableDataPortFlowControl(int index)
Disables flow control on the data port.
virtual bool setDataPortDestInfo(int index, int dipIndex, const std::string &ipAddr, const std::string &macAddr, unsigned int sourcePort, unsigned int destPort)
Sets the destination table information for a given entry in the DIP table on a given data port...
virtual bool setDucTxChannelBitmap(int index, int txChannels)
Sets the transmit channel bitmap for a given DUC.
virtual BasicDoubleList getDucAttenuationRange() const
Gets the DUC attenuation range.
BASIC_DICT_CONTAINER< int, double > NbddcRateSet
A rate set for a NBDDC.
virtual ConfigurationDict getWbddcConfiguration(int index) const
Gets the configuration dictionary for a given WBDDC.
virtual ConfigurationDict getDataPortConfiguration(int index) const
Gets the configuration dictionary for a given data port.
virtual double getTunerAttenuationRes() const
Gets the attenuation resolution.
virtual bool isConnected() const
Gets whether or not the handler is connected.
virtual BasicDoubleList getTunerFrequencyRange() const
Gets the tunable frequency range.
virtual int getDucMode(int index) const
Gets the mode for a given DUC.
virtual int getDefaultDeviceInfo() const
Gets the default device information.
virtual double getDucAttenuationRes() const
Gets the DUC attenuation resolution.
virtual time_t getTimeNow()
Gets the current radio time.
virtual bool setTunerAttenuation(int index, double atten)
Sets the attenuation for a given tuner.
virtual BasicIntBoolDict getTenGigFlowControlStatus()
Gets flow control status on all 10GigE data ports.
virtual double getTunerFrequencyRes() const
Gets the tuned frequency resolution.
virtual BasicIntList getNbddcIndexRange() const
Gets the range of NBDDC indices on the radio.
virtual bool transmitterSupportsCW() const
Gets whether transmitters support continuous-wave (CW) tone generation.
virtual bool isNbddcGroupEnabled(int index) const
Gets whether or not a given NBDDC group is enabled.
virtual int getNbddcSource(int index) const
Gets the source (which tuner is supplying the signal) for a given NBDDC.
virtual bool setTransmitterFrequency(int index, double freq)
Sets the frequency for a given transmitter.
virtual bool setDucFrequency(int index, double freq)
Sets the tuned frequency for a given DUC.
virtual BasicDoubleList getNbddcRateList() const
Gets the list of allowed NBDDC sample rates, based on the rate set.
BASIC_DICT_CONTAINER< int, WbddcGroupComponent * > WbddcGroupComponentDict
A dictionary of WBDDC group components, keyed by index.
virtual BasicDoubleList getTransmitterCWSweepStartRange() const
Gets the CW start frequency range.
virtual double getCalibrationFrequency() const
Gets the calibration frequency.
virtual void initConfigurationDict()
Initializes the configuration dictionary, defining the allowed keys.
virtual double getTransmitterCWSweepStopFrequency(int index, int cwIndex) const
Gets the stop frequency for a signal sweep for a given CW tone generator.
virtual double getTransmitterCWSweepStopRes() const
Gets the CW stop frequency resolution.
virtual bool enableDuc(int index, bool enabled)
Enables a given DUC.
virtual int getNbddcDataPort(int index) const
Gets the data port for a given NBDDC.
virtual double getTransmitterFrequencyUnit() const
Gets the frequency unit for transmitters on the radio.
virtual bool setNbddcStreamId(int index, unsigned int sid)
Sets the VITA 49 stream ID for a given NBDDC.
virtual bool ducSupportsSnapshotTransmit() const
Gets whether DUCs support transmitting snapshots.
virtual bool setDataPortDestDestPort(int index, int dipIndex, unsigned int destPort)
Sets the VITA stream ID for a given entry in the destination IP table on a given data port...
virtual bool setWbddcGroupMembers(int index, const BasicIntList &groupMembers)
Sets the list of group members for a given WBDDC group.
virtual BasicIntList getNbddcGroupIndexRange() const
Gets the range of NBDDC group indices on the radio.
virtual bool setTransmitterCWPhase(int index, int cwIndex, double phase)
Sets the signal phase for a given CW tone generator.
virtual unsigned int getNbddcStreamId(int index) const
Gets the VITA 49 stream ID for a given NBDDC.
virtual bool setTunerFilter(int index, int filter)
Sets the filter setting for a given tuner.
virtual bool setDataPortSourceIP(int index, const std::string &ipAddr)
Sets the source IP address for a given data port.
virtual bool setWbddcRateIndex(int index, int rateIndex)
Sets the rate index for a given WBDDC.
BASIC_DICT_CONTAINER< int, DataPort * > DataPortDict
A dictionary of data ports, keyed by index.
Definition: DataPort.h:336
virtual bool disableDuc(int index)
Disables a given DUC.
virtual bool isNbddcEnabled(int index) const
Gets whether or not a given NBDDC is enabled.
virtual bool addNbddcGroupMember(int index, int member)
Adds a NBDDC to the given NBDDC group.
virtual int getNumTransmitters() const
Gets the number of transmitters on the radio.
virtual BasicDoubleList getTransmitterAttenuationRange() const
Gets the attenuation range for the transmitters on the radio.
virtual int getVitaTailSize() const
Gets the size of the VITA 49 tail.
virtual int getDucTxChannelBitmap(int index) const
Gets the transmit channel bitmap for a given DUC.
virtual std::string getSimpleSourceIPAddress() const
Gets the source IP address for radios without 10Gig data ports.
virtual bool setDucMode(int index, int mode)
Sets the mode for a given DUC.
virtual bool enableNbddcGroup(int index, bool enabled)
Enables a given NBDDC group.
virtual bool disableNbddcGroup(int index)
Disables a given NBDDC group.
virtual double getTransmitterCWSweepDwellTime(int index, int cwIndex) const
Gets the dwell time for a signal sweep for a given CW tone generator.
virtual BasicDoubleList getWbddcFrequencyRange() const
Gets the tunable frequency range for WBDDCs.
virtual int getVitaHeaderSize() const
Gets the size of the VITA 49 header.
Generic radio handler class.
Definition: RadioHandler.h:54
virtual unsigned int getDataPortDestDestPort(int index, int dipIndex) const
Gets the destination UDP port number for a given entry in the destination IP table on a given data po...
virtual std::string getSimpleDestIPAddress() const
Gets the destination IP address for radios without 10Gig data ports.
virtual int getWbddcSource(int index) const
Gets the source (which tuner is supplying the signal) for a given WBDDC.
virtual int debug(const char *format,...)
Outputs debug information.
Definition: Debuggable.cpp:95
virtual double getTransmitterFrequencyRes() const
Gets the frequency resolution for transmitters on the radio.
BASIC_LIST_CONTAINER< std::string > BasicStringList
Type representing a list of strings.
Definition: BasicList.h:25
virtual bool disableTransmitter(int index)
Disables a given transmitter.
virtual bool isTransmitterEnabled(int index) const
Gets whether a given transmitter is enabled.
virtual double getWbddcFrequencyRes() const
Gets the tuned frequency resolution for WBDDCs.
virtual bool setTransmitterAttenuation(int index, double atten)
Sets the attenuation for a given transmitter.
BASIC_DICT_CONTAINER< int, double > DucRateSet
A rate set for a DUC.
Definition: DucComponent.h:36
virtual double getTransmitterCWSweepFrequencyStep(int index, int cwIndex) const
Gets the frequency step for a signal sweep for a given CW tone generator.
virtual DucRateSet getDucRateSet() const
Gets the DUC&#39;s rate set.
virtual BasicIntList getWbddcGroupMembers(int index) const
Gets the list of group members for a given WBDDC group.
virtual BasicIntList getTunerIndexRange() const
Gets the tuner index range.
virtual int getWbddcRateIndex(int index) const
Gets the rate index for a given WBDDC.
virtual bool setNbddcFrequency(int index, double freq)
Sets the tuned frequency for a given NBDDC.
virtual double getTransmitterCWSweepStartRes() const
Gets the CW start frequency resolution.
virtual ConfigurationDict getNbddcGroupConfiguration(int index) const
Gets the configuration dictionary for a given NBDDC group.
BASIC_DICT_CONTAINER< int, bool > BasicIntBoolDict
Type representing a dictionary of Boolean values, keyed by integers.
Definition: BasicDict.h:37
Defines functionality for LibCyberRadio applications.
Definition: App.h:23
virtual bool ducSupportsSnapshotLoad() const
Gets whether DUCs support loading snapshot files.
Generic radio transport class.
virtual bool enableDataPortErrors(int index, bool enabled=true)
Enables errors on the data port.
virtual BasicDoubleList getTransmitterCWPhaseRange() const
Gets the CW phase range.
virtual bool setNbddcDataPort(int index, int port)
Sets the data port for a given NBDDC.
virtual BasicStringStringDict getVersionInfo()
Gets version information for the radio.
virtual double getTunerAttenuation(int index) const
Gets the attenuation for a given tuner.
virtual bool isWbddcEnabled(int index) const
Gets whether or not a given WBDDC is enabled.
virtual double getTransmitterCWFrequencyRes() const
Gets the CW frequency resolution.
virtual int getNumWbddcGroups() const
Gets the number of WBDDC groups on the radio.
A configuration dictionary.
Definition: Configurable.h:51
virtual double getTransmitterCWSweepStartFrequency(int index, int cwIndex) const
Gets the start frequency for a signal sweep for a given CW tone generator.
BASIC_DICT_CONTAINER< std::string, std::string > BasicStringStringDict
Type representing a dictionary of strings, keyed by string values.
Definition: BasicDict.h:27
virtual BasicDoubleList getTransmitterCWAmplitudeRange() const
Gets the CW amplitude range.
virtual BasicDoubleList getDucFrequencyRange() const
Gets the tunable frequency range for DUCs.
virtual BasicDoubleList getTransmitterCWSweepDwellRange() const
Gets the CW dwell time range.
virtual bool setSimpleIPConfiguration(ConfigurationDict &cfg)
Sets the "simple" IP configuration dictionary for radios without 10Gig data ports.
virtual bool enableDataPortFlowControl(int index, bool enabled=true)
Enables flow control on the data port.
virtual bool setDataPortDestIPAddress(int index, int dipIndex, const std::string &ipAddr)
Sets the IP address for a given entry in the destination IP table on a given data port...
virtual double getNbddcFrequencyUnit() const
Gets the tuned frequency units for NBDDCs.
virtual std::string getLastCommandErrorInfo() const
Gets the error message from the last command attempted.
virtual double getTransmitterCWPhase(int index, int cwIndex) const
Gets the signal phase for a given CW tone generator.
virtual bool setSimpleDestMACAddress(const std::string &macAddr)
Sets the destination MAC address for radios without 10Gig data ports.
virtual BasicIntList getWbddcGroupIndexRange() const
Gets the range of WBDDC group indices on the radio.
virtual bool setDataPortDestMACAddress(int index, int dipIndex, const std::string &macAddr)
Sets the MAC address for a given entry in the destination IP table on a given data port...
virtual bool setTimeNextPps(bool checkTime=false, bool useGpsTime=false)
Sets the time for the next PPS rising edge on the radio.
virtual BasicIntList getGpioOutputByIndex(int index)
Gets the GPIO output settings for a given sequence index.
virtual bool setDucAttenuation(int index, double atten)
Sets the attenuation for a given DUC.
virtual int getVitaPayloadSize() const
Gets the size of the VITA 49 payload.
BASIC_DICT_CONTAINER< int, SimpleIpSetup * > SimpleIpSetupDict
A dictionary of data ports, keyed by index.
virtual int getNumTuner() const
Gets the number of tuners on the radio.
virtual std::string getSimpleDestMACAddress() const
Gets the destination MAC address for radios without 10Gig data ports.
virtual double getWbddcFrequencyUnit() const
Gets the tuned frequency units for WBDDCs.
BASIC_DICT_CONTAINER< int, TunerComponent * > TunerComponentDict
A dictionary of tuner components, keyed by index.
virtual int getNbddcRateIndex(int index) const
Gets the rate index for a given NBDDC.
virtual time_t getTimeNextPps()
Gets the time for the next PPS rising edge on the radio.
virtual bool setWbddcRateSet(int index, const WbddcRateSet &set)
Sets the rate set for a given WBDDC.
virtual bool disableDataPortErrors(int index)
Disables errors on the data port.
virtual BasicIntList getDataPortIndexRange() const
Gets the range of indices 10GigE data ports on the radio.
virtual bool setTunerFrequency(int index, double freq)
Sets the tuned frequency for a given tuner.
virtual bool setDucStreamId(int index, unsigned int sid)
Sets the VITA 49 stream ID for a given DUC.
virtual bool sendReset(int resetType=0)
Resets the radio.
virtual bool isWbddcGroupEnabled(int index) const
Gets whether or not a given WBDDC group is enabled.
virtual ConfigurationDict getTransmitterCWConfiguration(int index, int cwIndex) const
Gets the configuration for a given CW tone generator.
virtual int getGpioOutput()
Gets the current GPIO output bits.
virtual bool setTunerConfiguration(int index, ConfigurationDict &cfg)
Sets the configuration dictionary for a given tuner.
virtual int getTransmitterCWPhaseRes() const
Gets the CW phase resolution.
virtual ConfigurationDict getNbddcConfiguration(int index) const
Gets the configuration dictionary for a given NBDDC.
virtual int getWbddcVitaEnable(int index) const
Gets the VITA 49 setting for a given WBDDC.
virtual BasicIntList getTransmitterIndexRange() const
Gets the list of transmitter indices on the radio.
virtual bool getPps()
Gets the pulse-per-second (PPS) rising edge from the radio.
virtual void updateConfigurationDict()
Updates the configuration dictionary from object settings.
virtual bool setNbddcConfiguration(int index, ConfigurationDict &cfg)
Sets the configuration dictionary for a given NBDDC.
BASIC_DICT_CONTAINER< int, WbddcComponent * > WbddcComponentDict
A dictionary of WBDDC components, keyed by index.
virtual const char * getByteOrder() const
Gets the byte order (endianness) of the VITA 49.
virtual bool setNbddcRateSet(int index, const NbddcRateSet &set)
Sets the rate set for a given NBDDC.
virtual bool isByteswapped() const
Gets whether the VITA 49 is byte-swapped with respect to the host operating system.
virtual BasicStringList sendCommand(const std::string &cmdString, double timeout=-1)
Sends a command to the radio.
BASIC_DICT_CONTAINER< int, double > WbddcRateSet
A rate set for a WBDDC.
virtual BasicStringStringDict getConnectionInfo()
Gets connection information for the radio.
virtual int getDucRateIndex(int index) const
Gets the rate index for a given DUC.
virtual BasicDoubleList getNbddcFrequencyRange() const
Gets the tunable frequency range for NBDDCs.
virtual bool enableWbddcGroup(int index, bool enabled)
Enables a given WBDDC group.
virtual ConfigurationDict getWbddcGroupConfiguration(int index) const
Gets the configuration dictionary for a given WBDDC group.
Base configurable object class.
Definition: Configurable.h:79
virtual bool transmitterSupportsCWSweep() const
Gets whether the transmitter supports CW tone sweeping.
virtual bool setWbddcConfiguration(int index, ConfigurationDict &cfg)
Sets the configuration dictionary for a given WBDDC.
BASIC_LIST_CONTAINER< int > BasicIntList
Type representing a list of integers.
Definition: BasicList.h:27
virtual bool setTransmitterConfiguration(int index, ConfigurationDict &cfg)
Sets the configuration dictionary for a given transmitter.
virtual bool enableTuner(int index, bool enabled=true)
Enables a given tuner.
virtual bool enableNbddc(int index, bool enabled=true)
Enables a given NBDDC.
virtual int getNbddcUdpDestination(int index) const
Gets the UDP destination for a given NBDDC.
virtual double getTunerFrequency(int index) const
Gets the tuned frequency for a given tuner.
virtual BasicIntList getDataPortDipEntryIndexRange() const
Gets the list of UDP destination table indices for the 10GigE data ports on the radio.
virtual unsigned int getWbddcStreamId(int index) const
Gets the VITA 49 stream ID for a given WBDDC.
virtual unsigned int getDataPortDestSourcePort(int index, int dipIndex) const
Gets the source UDP port number for a given entry in the destination IP table on a given data port...
virtual double getTransmitterCWFrequency(int index, int cwIndex) const
Gets the constant frequency for a given CW tone generator.
virtual BasicDoubleList getTransmitterFrequencyRange() const
Gets the frequency range for the transmitters on the radio.
virtual bool enableTransmitter(int index, bool enabled=true)
Enables a given transmitter.
BASIC_DICT_CONTAINER< int, NbddcComponent * > NbddcComponentDict
A dictionary of NBDDC components, keyed by index.
virtual void disconnect()
Disconnects from the radio.
virtual double getDucAttenuation(int index) const
Gets the attenuation for a given DUC.
virtual bool setBypassMode(int mode)
Sets the reference bypass mode on the radio.
BASIC_DICT_CONTAINER< int, NbddcGroupComponent * > NbddcGroupComponentDict
A dictionary of NBDDC group components, keyed by index.
virtual bool disableTuner(int index)
Disables a given tuner.
virtual bool setWbddcUdpDestination(int index, int dest)
Sets the UDP destination for a given WBDDC.
virtual int getTransmitterCWNum() const
Gets the number of CW tone generators associated with transmitters on this radio. ...
virtual unsigned int getDucStreamId(int index) const
Gets the VITA 49 stream ID for a given DUC.
virtual int getTemperature()
Gets the current radio temperature.
virtual double getNbddcFrequencyRes() const
Gets the tuned frequency resolution for NBDDCs.
virtual std::string getSimpleSourceMACAddress() const
Gets the source MAC address for radios without 10Gig data ports.
virtual double getNbddcFrequency(int index) const
Gets the tuned frequency for a given NBDDC.
virtual bool disableNbddc(int index)
Disables a given NBDDC.
virtual int getNumTunerBoards() const
Gets the number of tuner boards on the radio.
virtual int getTunerFilter(int index) const
Gets the filter setting for a given tuner.
virtual int getWbddcUdpDestination(int index) const
Gets the UDP destination for a given WBDDC.
virtual std::string getDataPortDestIPAddress(int index, int dipIndex) const
Gets the IP address for a given entry in the destination IP table on a given data port...
virtual unsigned int getStatus()
Gets the status from the radio.
virtual bool setTransmitterCWAmplitude(int index, int cwIndex, double amp)
Sets the signal amplitude for a given CW tone generator.
virtual ConfigurationDict getTransmitterConfiguration(int index) const
Gets the configuration dictionary for a given transmitter.
virtual bool enableWbddc(int index, bool enabled=true)
Enables a given WBDDC.
virtual int getNbddcVitaEnable(int index) const
Gets the VITA 49 setting for a given NBDDC.
virtual void queryConfiguration()
Tells the radio to query its hardware configuration in order to create its configuration dictionary (...
virtual bool setGpioOutputByIndex(int index, int value, int duration, int loop, int go)
Sets the GPIO output settings for a given sequence index.
virtual int getNumNbddcGroups() const
Gets the number of NBDDC groups on the radio.
virtual bool enableTenGigFlowControl()
Enables flow control on all 10GigE data ports.
virtual bool isIqSwapped() const
Gets whether the VITA 49 format swaps real and imaginary (I and Q) portions of each sample...
virtual double getTransmitterAttenuationRes() const
Gets the attenuation resolution for transmitters on the radio.
virtual double getDucFrequencyUnit() const
Gets the tuned frequency units for DUCs.
virtual bool setGpioOutput(int value)
Sets the current GPIO output bits.
virtual bool setDucDataPort(int index, int port)
Sets the data port for a given DUC.
virtual bool setTransmitterCWFrequencySweep(int index, int cwIndex, double start, double stop, double step, double dwell)
Sets the parameters for a frequency sweep for a given CW tone generator.
virtual BasicDoubleList getGpsPosition()
Gets the current GPS position the radio.
virtual bool setDataPortDestSourcePort(int index, int dipIndex, unsigned int sourcePort)
Sets the UDP port number for a given entry in the destination IP table on a given data port...
virtual bool isConnectionModeSupported(const std::string &mode) const
Gets whether the radio supports the given connection mode.
virtual double getAdcRate() const
Gets the ADC sample rate.
virtual bool setNbddcVitaEnable(int index, int enable)
Sets the VITA 49 setting for a given NBDDC.
virtual bool removeNbddcGroupMember(int index, int member)
Removes a NBDDC from the given NBDDC group.
virtual bool loadDucSnapshot(int index, const std::string &filename, unsigned int startSample=0, unsigned int samples=0)
Load a snapshot file into a given DUC&#39;s memory block.
virtual bool setSimpleDestIPAddress(const std::string &ipAddr)
Sets the destination IP address for radios without 10Gig data ports.
virtual bool setNbddcGroupMembers(int index, const BasicIntList &groupMembers)
Sets the list of group members for a given NBDDC group.
virtual BasicIntList getDucIndexRange() const
Gets the range of DUC indices on the radio.
virtual BasicDoubleList getWbddcRateList() const
Gets the list of allowed WBDDC sample rates, based on the rate set.
virtual double getTransmitterCWAmplitude(int index, int cwIndex) const
Gets the signal amplitude for a given CW tone generator.
virtual BasicDoubleList getTunerAttenuationRange() const
Gets the tuner attenuation range.
virtual BasicStringList getConnectionModeList() const
Gets the list of connection methods that the radio supports.
virtual int getNumDuc() const
Gets the number of DUCs on the radio.
virtual uint32_t getMessageId(void)
Get a json Message ID.
virtual bool isWbddcTunable() const
Gets whether the WBDDCs on this radio are tunable.