30#ifdef LIBYRADIO_EXPORTS
31#define YRADIO_API __declspec(dllexport)
33#ifndef LIBYRADIO_STATIC
34#define YRADIO_API __declspec(dllimport)
129 IntegrityProtect = 0x01,
130 IntegrityProtectCiphered = 0x02,
131 IntegrityProtectNewEPSCtxt = 0x03,
132 IntegrityProtectCipheredNewEPSCtxt = 0x04,
133 ServiceRequestHeader = 0xa0,
195 inline void setFlags(uint8_t flgs,
bool reset =
false)
226 {
return m_printDbg; }
250 unsigned int heptets = (
unsigned int)-1);
292 unsigned int decodeXml(XmlElement* xml,
const NamedList& params,
const String& pduTag);
293 unsigned int encodeXml(XmlElement* xml,
const NamedList& params,
const String& pduTag);
294 void printDbg(
int dbgLevel,
const uint8_t* in,
unsigned int len, XmlElement* xml,
bool encode =
false);
319 uint64_t maxTuneFreq;
320 uint64_t minTuneFreq;
321 unsigned maxSampleRate;
322 unsigned minSampleRate;
323 unsigned maxFilterBandwidth;
324 unsigned minFilterBandwidth;
341 : samples(0), offs(0), valid(0)
348 inline void reset(
unsigned int value = 0)
349 { offs = valid = value; }
356 inline void reset(
unsigned int offset,
unsigned int validS) {
367 {
return !minSamples || minSamples >= offs || minSamples >= valid; }
390 : m_bufSamples(len), m_validMin(validThres)
398 inline void reset(
unsigned int len,
unsigned int validThres) {
400 m_validMin = validThres;
411 {
return m_bufSamples; }
419 {
return buf.offs >= m_bufSamples; }
441 unsigned int m_bufSamples;
442 unsigned int m_validMin;
474 HardwareIOError = (1 << 2),
475 NotInitialized = (1 << 3),
476 NotSupported = (1 << 4),
477 NotCalibrated = (1 << 5),
480 OutOfRange = (1 << 8),
482 DataLost = (1 << 10),
483 Saturation = (1 << 11),
484 RFHardwareFail = (1 << 12),
485 RFHardwareChange = (1 << 13),
486 EnvironmentalFault = (1 << 14),
487 InvalidPort = (1 << 15),
489 Cancelled = (1 << 17),
491 HardwareNotAvailable = (1 << 19),
492 InsufficientSpeed = (1 << 20),
496 NoAutoRestartMask = HardwareNotAvailable | InsufficientSpeed,
498 FatalErrorMask = HardwareIOError | RFHardwareFail | EnvironmentalFault | Failure |
501 ClearErrorMask = TooEarly | TooLate | NotExact | DataLost | Saturation |
502 InvalidPort | Timeout,
504 LocalErrorMask = NotInitialized | NotCalibrated | TooEarly | TooLate | OutOfRange |
505 NotExact | DataLost | Saturation | RFHardwareChange | InvalidPort,
513 PendingInitialize = 0,
523 unsigned int pollPending(
unsigned int oper,
unsigned int waitMs = 0);
531 {
return NotSupported; }
538 {
return m_radioCaps; }
554 {
return NotSupported; }
585 {
return NotSupported; }
601 virtual unsigned int status(
int port = -1)
const = 0;
608 { m_lastErr &= ~ClearErrorMask; }
624 virtual unsigned int send(uint64_t when,
float* samples,
unsigned size,
625 float* powerScale = 0) = 0;
639 virtual unsigned int recv(uint64_t& when,
float* samples,
unsigned& size) = 0;
654 unsigned int& skippedBufs);
661 virtual unsigned int getRxTime(uint64_t& when)
const = 0;
668 virtual unsigned int getTxTime(uint64_t& when)
const = 0;
748 {
return NotSupported; }
755 {
return NotSupported; }
762 {
return NotSupported; }
769 {
return NotSupported; }
780 virtual unsigned int setGain(
bool tx,
int val,
unsigned int port,
781 int* newVal = 0)
const
782 {
return NotSupported; }
812 static inline const char*
errorName(
int code,
const char* defVal = 0)
833 inline void setPending(
unsigned int oper,
unsigned int code = Pending) {
835 if (oper < PendingCount)
836 m_pendingCode[oper] = code;
839 unsigned int m_lastErr;
840 unsigned int m_totalErr;
846 unsigned int m_pendingCode[PendingCount];
880 inline RadioDataDesc(uint8_t eType = Float, uint8_t tsType = TsApp,
881 uint8_t sLen = 2, uint8_t ports = 1)
882 : m_elementType(eType), m_sampleLen(sLen), m_ports(ports ? ports : 1),
887 m_littleEndian(false)
890 m_signature[0] =
'Y';
891 m_signature[1] =
'R';
895 uint8_t m_signature[3];
936 {
return m_file.valid(); }
943 {
return m_littleEndian == m_header.m_littleEndian; }
997 bool ioError(
bool send,
DebugEnabler* dbg,
int* error,
const char* extra);
1001 uint32_t m_chunkSize;
A class that holds just a block of raw data.
Definition yateclass.h:4237
A holder for a debug level.
Definition yateclass.h:312
DebugEnabler(int level=TelEngine::debugLevel(), bool enabled=true)
Definition yateclass.h:319
A stream file class.
Definition yateclass.h:7125
static const TokenDict s_errorsDict[]
Definition yateradio.h:278
static const TokenDict s_typeDict[]
Definition yateradio.h:263
static const TokenDict s_securityHeaders[]
Definition yateradio.h:273
void setCodecDebug(DebugEnabler *enabler=0, void *ptr=0)
Type
Definition yateradio.h:104
static const TokenDict s_protoDict[]
Definition yateradio.h:268
void resetFlags(uint8_t flgs=0)
Definition yateradio.h:206
EPSSecurityHeader
Definition yateradio.h:127
void * ptr() const
Definition yateradio.h:239
bool printDbg() const
Definition yateradio.h:225
uint8_t flags() const
Definition yateradio.h:187
Status
Definition yateradio.h:67
DebugEnabler * dbg() const
Definition yateradio.h:232
unsigned int encode(XmlElement *xml, const NamedList ¶ms=NamedList::empty())
static void decodeGSM7Bit(unsigned char *buf, unsigned int len, String &text, unsigned int heptets=(unsigned int) -1)
unsigned int decode(XmlElement *xml, const NamedList ¶ms=NamedList::empty())
static bool encodeGSM7Bit(const String &text, DataBlock &buf)
void setFlags(uint8_t flgs, bool reset=false)
Definition yateradio.h:195
GSML3Codec(DebugEnabler *dbg=0)
void setPrintDbg(bool on=false)
Definition yateradio.h:218
unsigned int decode(const uint8_t *in, unsigned int len, XmlElement *&out, const NamedList ¶ms=NamedList::empty())
Flags
Definition yateradio.h:58
Protocol
Definition yateradio.h:82
unsigned int encode(const XmlElement *in, DataBlock &out, const NamedList ¶ms=NamedList::empty())
static const TokenDict s_gmmRejectCause[]
Definition yateradio.h:288
XmlType
Definition yateradio.h:118
static const TokenDict s_mmRejectCause[]
Definition yateradio.h:283
Ephemeral mutex or semaphore locking object.
Definition yateclass.h:5833
Mutex support.
Definition yateclass.h:5607
A named string container class.
Definition yateclass.h:5016
static const NamedList & empty()
A buffer description.
Definition yateradio.h:335
void reset(unsigned int value=0)
Definition yateradio.h:348
void reset(unsigned int offset, unsigned int validS)
Definition yateradio.h:356
RadioBufDesc()
Definition yateradio.h:340
bool validSamples(unsigned int minSamples) const
Definition yateradio.h:366
Radio device capabilities Radio capability object describes the parameter ranges of the radio handwar...
Definition yateradio.h:310
Radio data file header This class describes records in radio data files.
Definition yateradio.h:855
ElementType
Definition yateradio.h:860
TsType
Definition yateradio.h:868
RadioDataDesc(uint8_t eType=Float, uint8_t tsType=TsApp, uint8_t sLen=2, uint8_t ports=1) uint8_t m_elementType
Definition yateradio.h:880
RadioDataFile(const char *name, bool dropOnError=true)
bool valid() const
Definition yateradio.h:935
static bool fixEndian(DataBlock &buf, unsigned int bytes)
bool write(uint64_t ts, const void *buf, uint32_t len, DebugEnabler *dbg=0, int *error=0)
void terminate(DebugEnabler *dbg=0)
bool read(uint64_t &ts, DataBlock &buffer, DebugEnabler *dbg=0, int *error=0)
const RadioDataDesc & desc() const
Definition yateradio.h:928
bool sameEndian() const
Definition yateradio.h:942
bool open(const char *fileName, const RadioDataDesc *data, DebugEnabler *dbg=0, int *error=0)
virtual unsigned int setFreqOffset(float offs, float *newVal=0)=0
virtual unsigned int setParams(NamedList ¶ms, bool shareFate=true)=0
static const TokenDict * errorNameDict()
virtual unsigned int setSampleRate(uint64_t hz)=0
virtual unsigned int setLoopback(const char *name=0)
Definition yateradio.h:553
virtual unsigned int setRxGain2(int val, unsigned port)
Definition yateradio.h:768
virtual const RadioCapability * capabilities() const
Definition yateradio.h:537
virtual unsigned int setGain(bool tx, int val, unsigned int port, int *newVal=0) const
Definition yateradio.h:780
virtual void setError(NamedList &p, unsigned int code, const char *str=0)
virtual unsigned int getInterface(String &devicePath) const
Definition yateradio.h:530
virtual unsigned int setDataDump(int dir=0, int level=0, const NamedList *params=0)=0
ErrorCode
Definition yateradio.h:471
void setPending(unsigned int oper, unsigned int code=Pending)
Definition yateradio.h:833
unsigned int pollPending(unsigned int oper, unsigned int waitMs=0)
virtual unsigned int setRxGain1(int val, unsigned port)
Definition yateradio.h:761
virtual unsigned int setTxFreq(uint64_t hz)=0
virtual unsigned int setFilter(uint64_t hz)=0
virtual unsigned int send(uint64_t when, float *samples, unsigned size, float *powerScale=0)=0
virtual unsigned int recv(uint64_t &when, float *samples, unsigned &size)=0
virtual const String & toString() const
virtual unsigned int getFilterWidth(uint64_t &hz) const =0
virtual unsigned int setTxGain1(int val, unsigned port)
Definition yateradio.h:747
virtual unsigned int getRxFreq(uint64_t &hz) const =0
Operation
Definition yateradio.h:512
virtual unsigned int setTxPower(unsigned dBm)=0
virtual unsigned int calibrate()
Definition yateradio.h:584
virtual unsigned int setTxGain2(int val, unsigned port)
Definition yateradio.h:754
virtual void completeDevInfo(NamedList &p, bool full=false, bool retData=false)
static const char * errorName(int code, const char *defVal=0)
Definition yateradio.h:812
virtual unsigned int status(int port=-1) const =0
virtual unsigned int setPorts(unsigned count)=0
virtual unsigned int read(uint64_t &when, RadioReadBufs &bufs, unsigned int &skippedBufs)
virtual unsigned int getSampleRate(uint64_t &hz) const =0
RadioInterface(const char *name)
virtual unsigned int initialize(const NamedList ¶ms=NamedList::empty())=0
virtual unsigned int getRxTime(uint64_t &when) const =0
virtual unsigned int getTxTime(uint64_t &when) const =0
virtual unsigned int setRxFreq(uint64_t hz)=0
virtual unsigned int getTxFreq(uint64_t &hz) const =0
virtual void clearErrors()
Definition yateradio.h:607
RadioInterface read buffers.
Definition yateradio.h:380
void reset(unsigned int len, unsigned int validThres)
Definition yateradio.h:398
RadioReadBufs(unsigned int len=0, unsigned int validThres=0)
Definition yateradio.h:389
String & dump(String &buf)
bool valid(RadioBufDesc &buf) const
Definition yateradio.h:426
unsigned int bufSamples() const
Definition yateradio.h:410
bool full(RadioBufDesc &buf) const
Definition yateradio.h:418
A C-style string handling class.
Definition yateclass.h:2131
Definition yateclass.h:848