/*! \mainpage Introduction

LMS API is a set of C functions that are exported by LimeSuite library. Its main purpose is to  provide a relatively simple interface for controlling LimeSDR boards. LMS API provides both high-level and low-level methods for configuring devices. \ref FN_HIGH_LVL allow to quickly configure device by accessing and modifying multiple internal device settings during their execution. Meanwhile, \ref FN_LOW_LVL provide an ability to individually access various internal device settings (registers, clocks, etc.).


### Further Information

\li \ref page_changelog "LMS API Changelog"
\li <a href="https://wiki.myriadrf.org/LimeSDR">LimeSDR boards </a>
\li <a href="https://github.com/myriadrf/LimeSuite">LimeSuite GitHub page</a>

*/

/*! \page page_changelog Changelog

### v20.10.0

\li Fixed GFIR floating point comparison
\li Fixed null pointer dereferences in StreamChannel::Write() and StreamChannel::Read() functions
\li Changed USB processing, FIFO and remote thread priorities
\li Added \ref lms_stream_t::linkFmt options to set data link format
\li Added optional LMS_SetGaindB(), LMS_SetNormalizedGain(), LMS_GetGaindB(), LMS_GetNormalizedGain() functionality

### v20.07.0

\li Fix for lms chip id not changing when setting interface frequency
\li Set stream FIFO size to be at least 4 packets
\li Increased availble COM port values for LimeRFE board
\li Added unicode check when LimeRFE COM port is being opened

### v20.01.0

\li Remove LMS_EnableCalibCache() function
\li Fixed \ref lms_stream_t::throughputVsLatency setting not working for Tx streams
\li Added automatic reconfiguration of GFIR when sample rate is changed after calling LMS_SetGFIRLPF()
\li Added \ref LMS_ALIGN_CH_PHASE option to run Rx phase alignment for MIMO configuration
\li Fixed RF path being auto-set after it was explicitly selected for LimeSDR-Mini
\li Added log level definition \ref LMS_LOG_CRITICAL

### v19.04.0

\li Added support for LimeNet-Micro
\li Added saving and loading of analog IQ/DC calibration state to LMS_SaveConfig() and LMS_SaveConfig()
\li Fixed Rx stream failing to start on LimeSDR-USB when Tx is disabled and sample rate is <2.5 MSps 
\li Fixed Tx ch.B calibration when Rx ch.B is disabled 

### v19.01.0

\li Changed LMS_VCTCXOWrite() to save value to non-volatile storage
\li Changed LMS_VCTCXORead() to read value from non-volatile storage
\li Added automatic RF path selection option \ref LMS_PATH_AUTO (default for LimeSDR-Mini and LimeNet-Micro)
\li Removed LMS_Disconnect() and LMS_IsOpen() functions
\li Added board parameter definitions (\ref BOARD_PARAM)
\li Changed RX RF port set by LMS_Init() for LimeSDR-USB to LNA_L
\li Changed LMS_Init() to disable Tx channel

### v18.10.0

\li Fixed LMS_SetLPFBW() failing to set bandwidth lower than ~2MHz for the second channel 
\li Fixed incorrectly set or reported Tx gain values under certain conditions
\li LMS_SetSampleRate() and LMS_SetSampleRateDir() now always selects SISOSDR mode for LimeSDR-Mini
\li LMS_EnableCalibCache() has been depracated because of confusing name, LMS_EnableCache() has been added to take its place.
\li LMS_EnableCache()/LMS_EnableCalibCache() now also enables caching of FPGA registers and LMS7 VCO setting values.
\li LMS_SetGFIRCoeff() no longer attempts to order GFIR coefficient based on oversampling when coefficient count is to high

### v18.06.0

\li Added log level definitions (\ref LMS_LOG_LEVEL) to LimeSuite.h
\li Zeros filled packet is no longer transmited every ~500 ms when Tx FIFO is empty
\li Added support of oversample=1 to LMS_SetSampleRate() for LimeSDR-USB board
\li LMS_SetNormalizedGain() and LMS_SetGaindB() no longer calibrate gain everytime Tx gain is changed 
\li Updated parameter range information returned by API to match datasheets/schematics
\li Fixed some sample timing isues when using LMS_SetGFIRLPF()

*/



