51 static KwargsList enumerate(
const std::string &args);
73 static Device *make(
const std::string &args);
80 static void unmake(
Device *device);
91 virtual std::string getDriverKey(
void)
const;
98 virtual std::string getHardwareKey(
void)
const;
107 virtual Kwargs getHardwareInfo(
void)
const;
119 virtual void setFrontendMapping(
const int direction,
const std::string &mapping);
126 virtual std::string getFrontendMapping(
const int direction)
const;
131 virtual size_t getNumChannels(
const int direction)
const;
143 virtual Kwargs getChannelInfo(
const int direction,
const size_t channel)
const;
151 virtual bool getFullDuplex(
const int direction,
const size_t channel)
const;
163 virtual std::vector<std::string> getStreamFormats(
const int direction,
const size_t channel)
const;
174 virtual std::string getNativeStreamFormat(
const int direction,
const size_t channel,
double &fullScale)
const;
182 virtual ArgInfoList getStreamArgsInfo(
const int direction,
const size_t channel)
const;
233 virtual Stream *setupStream(
235 const std::string &format,
236 const std::vector<size_t> &channels = std::vector<size_t>(),
244 virtual void closeStream(Stream *stream);
255 virtual size_t getStreamMTU(Stream *stream)
const;
274 virtual int activateStream(
277 const long long timeNs = 0,
278 const size_t numElems = 0);
294 virtual int deactivateStream(
297 const long long timeNs = 0);
318 virtual int readStream(
321 const size_t numElems,
324 const long timeoutUs = 100000);
345 virtual int writeStream(
347 const void *
const *buffs,
348 const size_t numElems,
350 const long long timeNs = 0,
351 const long timeoutUs = 100000);
373 virtual int readStreamStatus(
378 const long timeoutUs = 100000);
393 virtual size_t getNumDirectAccessBuffers(Stream *stream);
408 virtual int getDirectAccessBufferAddrs(Stream *stream,
const size_t handle,
void **buffs);
430 virtual int acquireReadBuffer(
436 const long timeoutUs = 100000);
445 virtual void releaseReadBuffer(
447 const size_t handle);
467 virtual int acquireWriteBuffer(
471 const long timeoutUs = 100000);
488 virtual void releaseWriteBuffer(
491 const size_t numElems,
493 const long long timeNs = 0);
505 virtual std::vector<std::string> listAntennas(
const int direction,
const size_t channel)
const;
513 virtual void setAntenna(
const int direction,
const size_t channel,
const std::string &name);
521 virtual std::string getAntenna(
const int direction,
const size_t channel)
const;
533 virtual bool hasDCOffsetMode(
const int direction,
const size_t channel)
const;
541 virtual void setDCOffsetMode(
const int direction,
const size_t channel,
const bool automatic);
549 virtual bool getDCOffsetMode(
const int direction,
const size_t channel)
const;
557 virtual bool hasDCOffset(
const int direction,
const size_t channel)
const;
565 virtual void setDCOffset(
const int direction,
const size_t channel,
const std::complex<double> &offset);
573 virtual std::complex<double> getDCOffset(
const int direction,
const size_t channel)
const;
581 virtual bool hasIQBalance(
const int direction,
const size_t channel)
const;
589 virtual void setIQBalance(
const int direction,
const size_t channel,
const std::complex<double> &balance);
597 virtual std::complex<double> getIQBalance(
const int direction,
const size_t channel)
const;
605 virtual bool hasFrequencyCorrection(
const int direction,
const size_t channel)
const;
613 virtual void setFrequencyCorrection(
const int direction,
const size_t channel,
const double value);
621 virtual double getFrequencyCorrection(
const int direction,
const size_t channel)
const;
634 virtual std::vector<std::string> listGains(
const int direction,
const size_t channel)
const;
642 virtual bool hasGainMode(
const int direction,
const size_t channel)
const;
650 virtual void setGainMode(
const int direction,
const size_t channel,
const bool automatic);
658 virtual bool getGainMode(
const int direction,
const size_t channel)
const;
667 virtual void setGain(
const int direction,
const size_t channel,
const double value);
676 virtual void setGain(
const int direction,
const size_t channel,
const std::string &name,
const double value);
684 virtual double getGain(
const int direction,
const size_t channel)
const;
693 virtual double getGain(
const int direction,
const size_t channel,
const std::string &name)
const;
701 virtual Range getGainRange(
const int direction,
const size_t channel)
const;
710 virtual Range getGainRange(
const int direction,
const size_t channel,
const std::string &name)
const;
743 virtual void setFrequency(
const int direction,
const size_t channel,
const double frequency,
const Kwargs &args =
Kwargs());
761 virtual void setFrequency(
const int direction,
const size_t channel,
const std::string &name,
const double frequency,
const Kwargs &args =
Kwargs());
771 virtual double getFrequency(
const int direction,
const size_t channel)
const;
780 virtual double getFrequency(
const int direction,
const size_t channel,
const std::string &name)
const;
789 virtual std::vector<std::string> listFrequencies(
const int direction,
const size_t channel)
const;
797 virtual RangeList getFrequencyRange(
const int direction,
const size_t channel)
const;
806 virtual RangeList getFrequencyRange(
const int direction,
const size_t channel,
const std::string &name)
const;
814 virtual ArgInfoList getFrequencyArgsInfo(
const int direction,
const size_t channel)
const;
826 virtual void setSampleRate(
const int direction,
const size_t channel,
const double rate);
834 virtual double getSampleRate(
const int direction,
const size_t channel)
const;
843 virtual std::vector<double> listSampleRates(
const int direction,
const size_t channel)
const;
851 virtual RangeList getSampleRateRange(
const int direction,
const size_t channel)
const;
863 virtual void setBandwidth(
const int direction,
const size_t channel,
const double bw);
871 virtual double getBandwidth(
const int direction,
const size_t channel)
const;
880 virtual std::vector<double> listBandwidths(
const int direction,
const size_t channel)
const;
888 virtual RangeList getBandwidthRange(
const int direction,
const size_t channel)
const;
898 virtual void setMasterClockRate(
const double rate);
904 virtual double getMasterClockRate(
void)
const;
910 virtual RangeList getMasterClockRates(
void)
const;
916 virtual std::vector<std::string> listClockSources(
void)
const;
922 virtual void setClockSource(
const std::string &source);
928 virtual std::string getClockSource(
void)
const;
938 virtual std::vector<std::string> listTimeSources(
void)
const;
944 virtual void setTimeSource(
const std::string &source);
950 virtual std::string getTimeSource(
void)
const;
957 virtual bool hasHardwareTime(
const std::string &what =
"")
const;
965 virtual long long getHardwareTime(
const std::string &what =
"")
const;
973 virtual void setHardwareTime(
const long long timeNs,
const std::string &what =
"");
983 virtual void setCommandTime(
const long long timeNs,
const std::string &what =
"");
994 virtual std::vector<std::string> listSensors(
void)
const;
1002 virtual ArgInfo getSensorInfo(
const std::string &key)
const;
1011 virtual std::string readSensor(
const std::string &key)
const;
1020 virtual std::vector<std::string> listSensors(
const int direction,
const size_t channel)
const;
1030 virtual ArgInfo getSensorInfo(
const int direction,
const size_t channel,
const std::string &key)
const;
1041 virtual std::string readSensor(
const int direction,
const size_t channel,
const std::string &key)
const;
1051 virtual std::vector<std::string> listRegisterInterfaces(
void)
const;
1061 virtual void writeRegister(
const std::string &name,
const unsigned addr,
const unsigned value);
1069 virtual unsigned readRegister(
const std::string &name,
const unsigned addr)
const;
1079 virtual void writeRegister(
const unsigned addr,
const unsigned value);
1087 virtual unsigned readRegister(
const unsigned addr)
const;
1097 virtual void writeRegisters(
const std::string &name,
const unsigned addr,
const std::vector<unsigned> &value);
1106 virtual std::vector<unsigned> readRegisters(
const std::string &name,
const unsigned addr,
const size_t length)
const;
1124 virtual void writeSetting(
const std::string &key,
const std::string &value);
1131 virtual std::string readSetting(
const std::string &key)
const;
1139 virtual ArgInfoList getSettingInfo(
const int direction,
const size_t channel)
const;
1149 virtual void writeSetting(
const int direction,
const size_t channel,
const std::string &key,
const std::string &value);
1158 virtual std::string readSetting(
const int direction,
const size_t channel,
const std::string &key)
const;
1167 virtual std::vector<std::string> listGPIOBanks(
void)
const;
1174 virtual void writeGPIO(
const std::string &bank,
const unsigned value);
1182 virtual void writeGPIO(
const std::string &bank,
const unsigned value,
const unsigned mask);
1189 virtual unsigned readGPIO(
const std::string &bank)
const;
1197 virtual void writeGPIODir(
const std::string &bank,
const unsigned dir);
1206 virtual void writeGPIODir(
const std::string &bank,
const unsigned dir,
const unsigned mask);
1214 virtual unsigned readGPIODir(
const std::string &bank)
const;
1227 virtual void writeI2C(
const int addr,
const std::string &data);
1237 virtual std::string readI2C(
const int addr,
const size_t numBytes);
1257 virtual unsigned transactSPI(
const int addr,
const unsigned data,
const size_t numBits);
1267 virtual std::vector<std::string> listUARTs(
void)
const;
1276 virtual void writeUART(
const std::string &which,
const std::string &data);
1286 virtual std::string readUART(
const std::string &which,
const long timeoutUs = 100000)
const;
std::vector< Kwargs > KwargsList
Typedef for a list of key-word dictionaries.
Definition: Types.hpp:37
std::vector< ArgInfo > ArgInfoList
Definition: Types.hpp:127
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:70
Definition: Device.hpp:22
Definition: Device.hpp:31
#define SOAPY_SDR_API
Definition: Config.h:41