42 static std::vector<Kwargs> enumerate(
const Kwargs &args =
Kwargs());
50 static std::vector<Kwargs> enumerate(
const std::string &args);
78 static Device *make(
const std::string &args);
88 static void unmake(
Device *device);
99 virtual std::string getDriverKey(
void)
const;
106 virtual std::string getHardwareKey(
void)
const;
115 virtual Kwargs getHardwareInfo(
void)
const;
127 virtual void setFrontendMapping(
const int direction,
const std::string &mapping);
134 virtual std::string getFrontendMapping(
const int direction)
const;
139 virtual size_t getNumChannels(
const int direction)
const;
147 virtual bool getFullDuplex(
const int direction,
const size_t channel)
const;
181 virtual Stream *setupStream(
183 const std::string &format,
184 const std::vector<size_t> &channels = std::vector<size_t>(),
192 virtual void closeStream(Stream *stream);
203 virtual size_t getStreamMTU(Stream *stream)
const;
222 virtual int activateStream(
225 const long long timeNs = 0,
226 const size_t numElems = 0);
242 virtual int deactivateStream(
245 const long long timeNs = 0);
260 virtual int readStream(
263 const size_t numElems,
266 const long timeoutUs = 100000);
281 virtual int writeStream(
283 const void *
const *buffs,
284 const size_t numElems,
286 const long long timeNs = 0,
287 const long timeoutUs = 100000);
301 virtual int readStreamStatus(
306 const long timeoutUs = 100000);
321 virtual size_t getNumDirectAccessBuffers(Stream *stream);
336 virtual int getDirectAccessBufferAddrs(Stream *stream,
const size_t handle,
void **buffs);
358 virtual int acquireReadBuffer(
364 const long timeoutUs = 100000);
373 virtual void releaseReadBuffer(
375 const size_t handle);
397 virtual int acquireWriteBuffer(
401 const long timeoutUs = 100000);
418 virtual void releaseWriteBuffer(
421 const size_t numElems,
423 const long long timeNs = 0);
435 virtual std::vector<std::string> listAntennas(
const int direction,
const size_t channel)
const;
443 virtual void setAntenna(
const int direction,
const size_t channel,
const std::string &name);
451 virtual std::string getAntenna(
const int direction,
const size_t channel)
const;
463 virtual bool hasDCOffsetMode(
const int direction,
const size_t channel)
const;
471 virtual void setDCOffsetMode(
const int direction,
const size_t channel,
const bool automatic);
479 virtual bool getDCOffsetMode(
const int direction,
const size_t channel)
const;
487 virtual bool hasDCOffset(
const int direction,
const size_t channel)
const;
495 virtual void setDCOffset(
const int direction,
const size_t channel,
const std::complex<double> &offset);
503 virtual std::complex<double> getDCOffset(
const int direction,
const size_t channel)
const;
511 virtual bool hasIQBalance(
const int direction,
const size_t channel)
const;
519 virtual void setIQBalance(
const int direction,
const size_t channel,
const std::complex<double> &balance);
527 virtual std::complex<double> getIQBalance(
const int direction,
const size_t channel)
const;
540 virtual std::vector<std::string> listGains(
const int direction,
const size_t channel)
const;
548 virtual void setGainMode(
const int direction,
const size_t channel,
const bool automatic);
556 virtual bool getGainMode(
const int direction,
const size_t channel)
const;
566 virtual void setGain(
const int direction,
const size_t channel,
const double value);
575 virtual void setGain(
const int direction,
const size_t channel,
const std::string &name,
const double value);
583 virtual double getGain(
const int direction,
const size_t channel)
const;
592 virtual double getGain(
const int direction,
const size_t channel,
const std::string &name)
const;
600 virtual Range getGainRange(
const int direction,
const size_t channel)
const;
609 virtual Range getGainRange(
const int direction,
const size_t channel,
const std::string &name)
const;
642 virtual void setFrequency(
const int direction,
const size_t channel,
const double frequency,
const Kwargs &args =
Kwargs());
660 virtual void setFrequency(
const int direction,
const size_t channel,
const std::string &name,
const double frequency,
const Kwargs &args =
Kwargs());
670 virtual double getFrequency(
const int direction,
const size_t channel)
const;
679 virtual double getFrequency(
const int direction,
const size_t channel,
const std::string &name)
const;
688 virtual std::vector<std::string> listFrequencies(
const int direction,
const size_t channel)
const;
696 virtual RangeList getFrequencyRange(
const int direction,
const size_t channel)
const;
705 virtual RangeList getFrequencyRange(
const int direction,
const size_t channel,
const std::string &name)
const;
717 virtual void setSampleRate(
const int direction,
const size_t channel,
const double rate);
725 virtual double getSampleRate(
const int direction,
const size_t channel)
const;
733 virtual std::vector<double> listSampleRates(
const int direction,
const size_t channel)
const;
741 virtual void setBandwidth(
const int direction,
const size_t channel,
const double bw);
749 virtual double getBandwidth(
const int direction,
const size_t channel)
const;
757 virtual std::vector<double> listBandwidths(
const int direction,
const size_t channel)
const;
767 virtual void setMasterClockRate(
const double rate);
773 virtual double getMasterClockRate(
void)
const;
779 virtual std::vector<std::string> listClockSources(
void)
const;
785 virtual void setClockSource(
const std::string &source);
791 virtual std::string getClockSource(
void)
const;
797 virtual std::vector<std::string> listTimeSources(
void)
const;
803 virtual void setTimeSource(
const std::string &source);
809 virtual std::string getTimeSource(
void)
const;
820 virtual bool hasHardwareTime(
const std::string &what =
"")
const;
828 virtual long long getHardwareTime(
const std::string &what =
"")
const;
836 virtual void setHardwareTime(
const long long timeNs,
const std::string &what =
"");
845 virtual void setCommandTime(
const long long timeNs,
const std::string &what =
"");
856 virtual std::vector<std::string> listSensors(
void)
const;
865 virtual std::string readSensor(
const std::string &name)
const;
874 virtual std::vector<std::string> listSensors(
const int direction,
const size_t channel)
const;
885 virtual std::string readSensor(
const int direction,
const size_t channel,
const std::string &name)
const;
898 virtual void writeRegister(
const unsigned addr,
const unsigned value);
905 virtual unsigned readRegister(
const unsigned addr)
const;
917 virtual void writeSetting(
const std::string &key,
const std::string &value);
924 virtual std::string readSetting(
const std::string &key)
const;
933 virtual std::vector<std::string> listGPIOBanks(
void)
const;
940 virtual void writeGPIO(
const std::string &bank,
const unsigned value);
948 virtual void writeGPIO(
const std::string &bank,
const unsigned value,
const unsigned mask);
955 virtual unsigned readGPIO(
const std::string &bank)
const;
963 virtual void writeGPIODir(
const std::string &bank,
const unsigned dir);
972 virtual void writeGPIODir(
const std::string &bank,
const unsigned dir,
const unsigned mask);
980 virtual unsigned readGPIODir(
const std::string &bank)
const;
993 virtual void writeI2C(
const int addr,
const std::string &data);
1003 virtual std::string readI2C(
const int addr,
const size_t numBytes);
1023 virtual unsigned transactSPI(
const int addr,
const unsigned data,
const size_t numBits);
1033 virtual std::vector<std::string> listUARTs(
void)
const;
1042 virtual void writeUART(
const std::string &which,
const std::string &data);
1052 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:30
#define SOAPY_SDR_API
Definition: Config.h:41