41 static std::vector<Kwargs> enumerate(
const Kwargs &args =
Kwargs());
49 static std::vector<Kwargs> enumerate(
const std::string &args);
77 static Device *make(
const std::string &args);
87 static void unmake(
Device *device);
98 virtual std::string getDriverKey(
void)
const;
105 virtual std::string getHardwareKey(
void)
const;
114 virtual Kwargs getHardwareInfo(
void)
const;
126 virtual void setFrontendMapping(
const int direction,
const std::string &mapping);
133 virtual std::string getFrontendMapping(
const int direction)
const;
138 virtual size_t getNumChannels(
const int direction)
const;
146 virtual bool getFullDuplex(
const int direction,
const size_t channel)
const;
180 virtual Stream *setupStream(
182 const std::string &format,
183 const std::vector<size_t> &channels = std::vector<size_t>(),
191 virtual void closeStream(Stream *stream);
202 virtual size_t getStreamMTU(Stream *stream)
const;
221 virtual int activateStream(
224 const long long timeNs = 0,
225 const size_t numElems = 0);
241 virtual int deactivateStream(
244 const long long timeNs = 0);
259 virtual int readStream(
262 const size_t numElems,
265 const long timeoutUs = 100000);
280 virtual int writeStream(
282 const void *
const *buffs,
283 const size_t numElems,
285 const long long timeNs = 0,
286 const long timeoutUs = 100000);
300 virtual int readStreamStatus(
305 const long timeoutUs = 100000);
320 virtual size_t getNumDirectAccessBuffers(Stream *stream);
335 virtual int getDirectAccessBufferAddrs(Stream *stream,
const size_t handle,
void **buffs);
357 virtual int acquireReadBuffer(
363 const long timeoutUs = 100000);
372 virtual void releaseReadBuffer(
374 const size_t handle);
396 virtual int acquireWriteBuffer(
400 const long timeoutUs = 100000);
417 virtual void releaseWriteBuffer(
420 const size_t numElems,
422 const long long timeNs = 0);
434 virtual std::vector<std::string> listAntennas(
const int direction,
const size_t channel)
const;
442 virtual void setAntenna(
const int direction,
const size_t channel,
const std::string &name);
450 virtual std::string getAntenna(
const int direction,
const size_t channel)
const;
462 virtual void setDCOffsetMode(
const int direction,
const size_t channel,
const bool automatic);
470 virtual bool getDCOffsetMode(
const int direction,
const size_t channel)
const;
478 virtual void setDCOffset(
const int direction,
const size_t channel,
const std::complex<double> &offset);
486 virtual std::complex<double> getDCOffset(
const int direction,
const size_t channel)
const;
494 virtual void setIQBalance(
const int direction,
const size_t channel,
const std::complex<double> &balance);
502 virtual std::complex<double> getIQBalance(
const int direction,
const size_t channel)
const;
515 virtual std::vector<std::string> listGains(
const int direction,
const size_t channel)
const;
523 virtual void setGainMode(
const int direction,
const size_t channel,
const bool automatic);
531 virtual bool getGainMode(
const int direction,
const size_t channel)
const;
541 virtual void setGain(
const int direction,
const size_t channel,
const double value);
550 virtual void setGain(
const int direction,
const size_t channel,
const std::string &name,
const double value);
558 virtual double getGain(
const int direction,
const size_t channel)
const;
567 virtual double getGain(
const int direction,
const size_t channel,
const std::string &name)
const;
575 virtual Range getGainRange(
const int direction,
const size_t channel)
const;
584 virtual Range getGainRange(
const int direction,
const size_t channel,
const std::string &name)
const;
617 virtual void setFrequency(
const int direction,
const size_t channel,
const double frequency,
const Kwargs &args =
Kwargs());
635 virtual void setFrequency(
const int direction,
const size_t channel,
const std::string &name,
const double frequency,
const Kwargs &args =
Kwargs());
645 virtual double getFrequency(
const int direction,
const size_t channel)
const;
654 virtual double getFrequency(
const int direction,
const size_t channel,
const std::string &name)
const;
663 virtual std::vector<std::string> listFrequencies(
const int direction,
const size_t channel)
const;
671 virtual RangeList getFrequencyRange(
const int direction,
const size_t channel)
const;
680 virtual RangeList getFrequencyRange(
const int direction,
const size_t channel,
const std::string &name)
const;
692 virtual void setSampleRate(
const int direction,
const size_t channel,
const double rate);
700 virtual double getSampleRate(
const int direction,
const size_t channel)
const;
708 virtual std::vector<double> listSampleRates(
const int direction,
const size_t channel)
const;
716 virtual void setBandwidth(
const int direction,
const size_t channel,
const double bw);
724 virtual double getBandwidth(
const int direction,
const size_t channel)
const;
732 virtual std::vector<double> listBandwidths(
const int direction,
const size_t channel)
const;
742 virtual void setMasterClockRate(
const double rate);
748 virtual double getMasterClockRate(
void)
const;
754 virtual std::vector<std::string> listClockSources(
void)
const;
760 virtual void setClockSource(
const std::string &source);
766 virtual std::string getClockSource(
void)
const;
772 virtual std::vector<std::string> listTimeSources(
void)
const;
778 virtual void setTimeSource(
const std::string &source);
784 virtual std::string getTimeSource(
void)
const;
795 virtual bool hasHardwareTime(
const std::string &what =
"")
const;
803 virtual long long getHardwareTime(
const std::string &what =
"")
const;
811 virtual void setHardwareTime(
const long long timeNs,
const std::string &what =
"");
820 virtual void setCommandTime(
const long long timeNs,
const std::string &what =
"");
831 virtual std::vector<std::string> listSensors(
void)
const;
840 virtual std::string readSensor(
const std::string &name)
const;
853 virtual void writeRegister(
const unsigned addr,
const unsigned value);
860 virtual unsigned readRegister(
const unsigned addr)
const;
872 virtual void writeSetting(
const std::string &key,
const std::string &value);
879 virtual std::string readSetting(
const std::string &key)
const;
888 virtual std::vector<std::string> listGPIOBanks(
void)
const;
895 virtual void writeGPIO(
const std::string &bank,
const unsigned value);
902 virtual unsigned readGPIO(
const std::string &bank)
const;
915 virtual void writeI2C(
const int addr,
const std::string &data);
925 virtual std::string readI2C(
const int addr,
const size_t numBytes);
945 virtual unsigned transactSPI(
const int addr,
const unsigned data,
const size_t numBits);
955 virtual std::vector<std::string> listUARTs(
void)
const;
964 virtual void writeUART(
const std::string &which,
const std::string &data);
974 virtual std::string readUART(
const std::string &which,
const long timeoutUs = 100000)
const;
std::map< std::string, std::string > Kwargs
Typedef for a dictionary of key-value string arguments.
Definition: Types.hpp:22
std::vector< Range > RangeList
Definition: Types.hpp:52
Definition: Device.hpp:29
#define SOAPY_SDR_API
Definition: Config.h:41