105 static std::vector<Device *>
make(
const std::vector<std::string> &argsList);
114 static void unmake(
const std::vector<Device *> &devices);
185 virtual bool getFullDuplex(
const int direction,
const size_t channel)
const;
197 virtual std::vector<std::string>
getStreamFormats(
const int direction,
const size_t channel)
const;
269 const std::string &format,
270 const std::vector<size_t> &channels = std::vector<size_t>(),
311 const long long timeNs = 0,
312 const size_t numElems = 0);
331 const long long timeNs = 0);
355 const size_t numElems,
358 const long timeoutUs = 100000);
381 const void *
const *buffs,
382 const size_t numElems,
384 const long long timeNs = 0,
385 const long timeoutUs = 100000);
412 const long timeoutUs = 100000);
470 const long timeoutUs = 100000);
481 const size_t handle);
505 const long timeoutUs = 100000);
525 const size_t numElems,
527 const long long timeNs = 0);
539 virtual std::vector<std::string>
listAntennas(
const int direction,
const size_t channel)
const;
547 virtual void setAntenna(
const int direction,
const size_t channel,
const std::string &name);
555 virtual std::string
getAntenna(
const int direction,
const size_t channel)
const;
575 virtual void setDCOffsetMode(
const int direction,
const size_t channel,
const bool automatic);
591 virtual bool hasDCOffset(
const int direction,
const size_t channel)
const;
599 virtual void setDCOffset(
const int direction,
const size_t channel,
const std::complex<double> &offset);
607 virtual std::complex<double>
getDCOffset(
const int direction,
const size_t channel)
const;
615 virtual bool hasIQBalance(
const int direction,
const size_t channel)
const;
623 virtual void setIQBalance(
const int direction,
const size_t channel,
const std::complex<double> &balance);
631 virtual std::complex<double>
getIQBalance(
const int direction,
const size_t channel)
const;
647 virtual void setIQBalanceMode(
const int direction,
const size_t channel,
const bool automatic);
692 virtual std::vector<std::string>
listGains(
const int direction,
const size_t channel)
const;
700 virtual bool hasGainMode(
const int direction,
const size_t channel)
const;
708 virtual void setGainMode(
const int direction,
const size_t channel,
const bool automatic);
716 virtual bool getGainMode(
const int direction,
const size_t channel)
const;
725 virtual void setGain(
const int direction,
const size_t channel,
const double value);
734 virtual void setGain(
const int direction,
const size_t channel,
const std::string &name,
const double value);
742 virtual double getGain(
const int direction,
const size_t channel)
const;
751 virtual double getGain(
const int direction,
const size_t channel,
const std::string &name)
const;
768 virtual Range getGainRange(
const int direction,
const size_t channel,
const std::string &name)
const;
819 virtual void setFrequency(
const int direction,
const size_t channel,
const std::string &name,
const double frequency,
const Kwargs &args =
Kwargs());
829 virtual double getFrequency(
const int direction,
const size_t channel)
const;
838 virtual double getFrequency(
const int direction,
const size_t channel,
const std::string &name)
const;
847 virtual std::vector<std::string>
listFrequencies(
const int direction,
const size_t channel)
const;
884 virtual void setSampleRate(
const int direction,
const size_t channel,
const double rate);
892 virtual double getSampleRate(
const int direction,
const size_t channel)
const;
901 virtual std::vector<double>
listSampleRates(
const int direction,
const size_t channel)
const;
921 virtual void setBandwidth(
const int direction,
const size_t channel,
const double bw);
929 virtual double getBandwidth(
const int direction,
const size_t channel)
const;
938 virtual std::vector<double>
listBandwidths(
const int direction,
const size_t channel)
const;
1095 template <
typename Type>
1096 Type readSensor(
const std::string &key)
const;
1105 virtual std::vector<std::string>
listSensors(
const int direction,
const size_t channel)
const;
1126 virtual std::string
readSensor(
const int direction,
const size_t channel,
const std::string &key)
const;
1136 template <
typename Type>
1137 Type readSensor(
const int direction,
const size_t channel,
const std::string &key)
const;
1157 virtual void writeRegister(
const std::string &name,
const unsigned addr,
const unsigned value);
1165 virtual unsigned readRegister(
const std::string &name,
const unsigned addr)
const;
1193 virtual void writeRegisters(
const std::string &name,
const unsigned addr,
const std::vector<unsigned> &value);
1202 virtual std::vector<unsigned>
readRegisters(
const std::string &name,
const unsigned addr,
const size_t length)
const;
1220 virtual void writeSetting(
const std::string &key,
const std::string &value);
1228 template <
typename Type>
1229 void writeSetting(
const std::string &key,
const Type &value);
1244 template <
typename Type>
1245 Type readSetting(
const std::string &key);
1263 virtual void writeSetting(
const int direction,
const size_t channel,
const std::string &key,
const std::string &value);
1273 template <
typename Type>
1274 void writeSetting(
const int direction,
const size_t channel,
const std::string &key,
const Type &value);
1283 virtual std::string
readSetting(
const int direction,
const size_t channel,
const std::string &key)
const;
1293 template <
typename Type>
1294 Type readSetting(
const int direction,
const size_t channel,
const std::string &key);
1310 virtual void writeGPIO(
const std::string &bank,
const unsigned value);
1318 virtual void writeGPIO(
const std::string &bank,
const unsigned value,
const unsigned mask);
1325 virtual unsigned readGPIO(
const std::string &bank)
const;
1342 virtual void writeGPIODir(
const std::string &bank,
const unsigned dir,
const unsigned mask);
1363 virtual void writeI2C(
const int addr,
const std::string &data);
1373 virtual std::string
readI2C(
const int addr,
const size_t numBytes);
1393 virtual unsigned transactSPI(
const int addr,
const unsigned data,
const size_t numBits);
1412 virtual void writeUART(
const std::string &which,
const std::string &data);
1422 virtual std::string
readUART(
const std::string &which,
const long timeoutUs = 100000)
const;
1439template <
typename Type>
1445template <
typename Type>
1451template <
typename Type>
1457template <
typename Type>
1463template <
typename Type>
1469template <
typename Type>
#define SOAPY_SDR_API
Definition Config.h:41
virtual std::vector< std::string > getStreamFormats(const int direction, const size_t channel) const
virtual bool hasHardwareTime(const std::string &what="") const
virtual void setReferenceClockRate(const double rate)
virtual unsigned readGPIODir(const std::string &bank) const
virtual std::vector< std::string > listTimeSources(void) const
virtual std::string readSensor(const std::string &key) const
virtual Kwargs getHardwareInfo(void) const
virtual void setFrequency(const int direction, const size_t channel, const double frequency, const Kwargs &args=Kwargs())
virtual double getFrequency(const int direction, const size_t channel) const
virtual Range getGainRange(const int direction, const size_t channel) const
virtual ArgInfo getSensorInfo(const int direction, const size_t channel, const std::string &key) const
virtual void setBandwidth(const int direction, const size_t channel, const double bw)
virtual void writeI2C(const int addr, const std::string &data)
virtual bool hasDCOffset(const int direction, const size_t channel) const
virtual void setHardwareTime(const long long timeNs, const std::string &what="")
virtual long long getHardwareTime(const std::string &what="") const
virtual bool hasFrequencyCorrection(const int direction, const size_t channel) const
virtual RangeList getFrequencyRange(const int direction, const size_t channel) const
virtual std::string getFrontendMapping(const int direction) const
virtual std::string getClockSource(void) const
virtual RangeList getReferenceClockRates(void) const
virtual void releaseWriteBuffer(Stream *stream, const size_t handle, const size_t numElems, int &flags, const long long timeNs=0)
virtual double getMasterClockRate(void) const
virtual void setAntenna(const int direction, const size_t channel, const std::string &name)
virtual void setFrequencyCorrection(const int direction, const size_t channel, const double value)
virtual Range getGainRange(const int direction, const size_t channel, const std::string &name) const
virtual std::vector< unsigned > readRegisters(const std::string &name, const unsigned addr, const size_t length) const
virtual void setDCOffset(const int direction, const size_t channel, const std::complex< double > &offset)
virtual void setGain(const int direction, const size_t channel, const std::string &name, const double value)
virtual std::vector< std::string > listUARTs(void) const
virtual void closeStream(Stream *stream)
virtual void setIQBalance(const int direction, const size_t channel, const std::complex< double > &balance)
virtual std::string getHardwareKey(void) const
virtual void writeGPIO(const std::string &bank, const unsigned value, const unsigned mask)
virtual RangeList getBandwidthRange(const int direction, const size_t channel) const
virtual std::string readSensor(const int direction, const size_t channel, const std::string &key) const
virtual std::vector< std::string > listAntennas(const int direction, const size_t channel) const
virtual std::string getAntenna(const int direction, const size_t channel) const
virtual void setTimeSource(const std::string &source)
virtual void writeGPIODir(const std::string &bank, const unsigned dir, const unsigned mask)
virtual RangeList getSampleRateRange(const int direction, const size_t channel) const
virtual void writeUART(const std::string &which, const std::string &data)
static KwargsList enumerate(const Kwargs &args=Kwargs())
virtual unsigned transactSPI(const int addr, const unsigned data, const size_t numBits)
virtual bool getDCOffsetMode(const int direction, const size_t channel) const
virtual std::vector< std::string > listFrequencies(const int direction, const size_t channel) const
static std::vector< Device * > make(const std::vector< std::string > &argsList)
virtual bool hasGainMode(const int direction, const size_t channel) const
virtual int readStreamStatus(Stream *stream, size_t &chanMask, int &flags, long long &timeNs, const long timeoutUs=100000)
static void unmake(Device *device)
virtual void writeGPIODir(const std::string &bank, const unsigned dir)
virtual std::vector< double > listBandwidths(const int direction, const size_t channel) const
virtual void setFrequency(const int direction, const size_t channel, const std::string &name, const double frequency, const Kwargs &args=Kwargs())
virtual int getDirectAccessBufferAddrs(Stream *stream, const size_t handle, void **buffs)
virtual Stream * setupStream(const int direction, const std::string &format, const std::vector< size_t > &channels=std::vector< size_t >(), const Kwargs &args=Kwargs())
virtual std::vector< std::string > listSensors(void) const
virtual void writeRegister(const unsigned addr, const unsigned value)
virtual int deactivateStream(Stream *stream, const int flags=0, const long long timeNs=0)
virtual ArgInfoList getFrequencyArgsInfo(const int direction, const size_t channel) const
virtual void * getNativeDeviceHandle(void) const
virtual void writeRegisters(const std::string &name, const unsigned addr, const std::vector< unsigned > &value)
virtual std::vector< std::string > listRegisterInterfaces(void) const
virtual void setSampleRate(const int direction, const size_t channel, const double rate)
virtual std::string readUART(const std::string &which, const long timeoutUs=100000) const
virtual double getReferenceClockRate(void) const
virtual std::vector< std::string > listClockSources(void) const
virtual std::string readSetting(const std::string &key) const
virtual ArgInfoList getStreamArgsInfo(const int direction, const size_t channel) const
virtual std::vector< std::string > listGPIOBanks(void) const
static Device * make(const Kwargs &args=Kwargs())
virtual int readStream(Stream *stream, void *const *buffs, const size_t numElems, int &flags, long long &timeNs, const long timeoutUs=100000)
virtual ArgInfoList getSettingInfo(const int direction, const size_t channel) const
virtual std::vector< std::string > listGains(const int direction, const size_t channel) const
virtual void writeSetting(const std::string &key, const std::string &value)
virtual bool hasIQBalance(const int direction, const size_t channel) const
static KwargsList enumerate(const std::string &args)
virtual void writeSetting(const int direction, const size_t channel, const std::string &key, const std::string &value)
virtual ~Device(void)
virtual destructor for inheritance
virtual double getFrequencyCorrection(const int direction, const size_t channel) const
virtual double getSampleRate(const int direction, const size_t channel) const
virtual std::vector< std::string > listSensors(const int direction, const size_t channel) const
virtual bool hasIQBalanceMode(const int direction, const size_t channel) const
virtual std::string getDriverKey(void) const
virtual bool getFullDuplex(const int direction, const size_t channel) const
virtual void setFrontendMapping(const int direction, const std::string &mapping)
virtual std::string readI2C(const int addr, const size_t numBytes)
virtual int acquireReadBuffer(Stream *stream, size_t &handle, const void **buffs, int &flags, long long &timeNs, const long timeoutUs=100000)
virtual void setCommandTime(const long long timeNs, const std::string &what="")
virtual std::vector< double > listSampleRates(const int direction, const size_t channel) const
virtual void releaseReadBuffer(Stream *stream, const size_t handle)
virtual ArgInfo getSensorInfo(const std::string &key) const
virtual void writeGPIO(const std::string &bank, const unsigned value)
virtual bool hasDCOffsetMode(const int direction, const size_t channel) const
static void unmake(const std::vector< Device * > &devices)
virtual unsigned readRegister(const std::string &name, const unsigned addr) const
virtual size_t getNumDirectAccessBuffers(Stream *stream)
virtual void setGainMode(const int direction, const size_t channel, const bool automatic)
virtual unsigned readGPIO(const std::string &bank) const
virtual double getBandwidth(const int direction, const size_t channel) const
virtual std::string getTimeSource(void) const
virtual void setMasterClockRate(const double rate)
virtual std::complex< double > getIQBalance(const int direction, const size_t channel) const
virtual std::complex< double > getDCOffset(const int direction, const size_t channel) const
virtual void setIQBalanceMode(const int direction, const size_t channel, const bool automatic)
virtual bool getGainMode(const int direction, const size_t channel) const
virtual void setGain(const int direction, const size_t channel, const double value)
virtual std::string getNativeStreamFormat(const int direction, const size_t channel, double &fullScale) const
virtual size_t getNumChannels(const int direction) const
virtual size_t getStreamMTU(Stream *stream) const
virtual void setDCOffsetMode(const int direction, const size_t channel, const bool automatic)
virtual RangeList getMasterClockRates(void) const
virtual bool getIQBalanceMode(const int direction, const size_t channel) const
static std::vector< Device * > make(const KwargsList &argsList)
virtual double getGain(const int direction, const size_t channel, const std::string &name) const
virtual ArgInfoList getSettingInfo(void) const
virtual double getGain(const int direction, const size_t channel) const
virtual RangeList getFrequencyRange(const int direction, const size_t channel, const std::string &name) const
virtual unsigned readRegister(const unsigned addr) const
virtual int acquireWriteBuffer(Stream *stream, size_t &handle, void **buffs, const long timeoutUs=100000)
virtual void writeRegister(const std::string &name, const unsigned addr, const unsigned value)
virtual int activateStream(Stream *stream, const int flags=0, const long long timeNs=0, const size_t numElems=0)
virtual Kwargs getChannelInfo(const int direction, const size_t channel) const
virtual double getFrequency(const int direction, const size_t channel, const std::string &name) const
virtual std::string readSetting(const int direction, const size_t channel, const std::string &key) const
virtual void setClockSource(const std::string &source)
virtual int writeStream(Stream *stream, const void *const *buffs, const size_t numElems, int &flags, const long long timeNs=0, const long timeoutUs=100000)
static Device * make(const std::string &args)
Definition ConverterPrimitives.hpp:15
std::vector< Range > RangeList
Definition Types.hpp:92
std::vector< ArgInfo > ArgInfoList
Definition Types.hpp:149
Type StringToSetting(const std::string &s)
Definition Types.hpp:240
std::map< std::string, std::string > Kwargs
Typedef for a dictionary of key-value string arguments.
Definition Types.hpp:24
std::vector< Kwargs > KwargsList
Typedef for a list of key-word dictionaries.
Definition Types.hpp:39
std::string SettingToString(const Type &s)
Definition Types.hpp:246