public unsafe void GetLimeSDRDeviceInfo()
        {
            try
            {
                if (_owner.LimeSDR_Device != IntPtr.Zero)
                {
                    lms_dev_info_t info = new lms_dev_info_t();

                    info.deviceName          = new char[32];
                    info.expansionName       = new char[32];
                    info.firmwareVersion     = new char[16];
                    info.hardwareVersion     = new char[16];
                    info.protocolVersion     = new char[16];
                    info.boardSerialNumber   = 0;
                    info.gatewareVersion     = new char[16];
                    info.gatewareTargetBoard = new char[32];
                    IntPtr deviceInfo;

                    deviceInfo = (IntPtr)NativeMethods.LMS_GetDeviceInfo(_owner.LimeSDR_Device);
                    byte[] buff = new byte[168];
                    Marshal.Copy(deviceInfo, buff, 0, 168);
                    ASCIIEncoding ascii           = new ASCIIEncoding();
                    string        s               = ascii.GetString(buff);
                    string        deviceName      = ascii.GetString(buff, 0, 32).Trim('\0');
                    string        expansionName   = ascii.GetString(buff, 32, 32).Trim('\0');
                    string        firmwareVersion = ascii.GetString(buff, 64, 16).Trim('\0');
                    string        hardwareVersion = ascii.GetString(buff, 80, 16).Trim('\0');
                    string        protocolVersion = ascii.GetString(buff, 96, 16).Trim('\0');
                    UInt64        serial          = 0;

                    for (int i = 8; i > 0; i--)
                    {
                        serial += buff[111 + i];

                        if (i > 1)
                        {
                            serial = serial << 8;
                        }
                    }

                    string gatewareVersion     = ascii.GetString(buff, 120, 16).Trim('\0');
                    string gatewareTargetBoard = ascii.GetString(buff, 136, 32).Trim('\0');

                    IntPtr libVersion;
                    libVersion = (IntPtr)NativeMethods.LMS_GetLibraryVersion();
                    string limeSuiteVersion = Marshal.PtrToStringAnsi(libVersion);

                    txtFirm_version.Text     = firmwareVersion;
                    txtGatewareVersion.Text  = gatewareVersion;
                    txtLimeSuiteVersion.Text = limeSuiteVersion;
                }
            }
            catch (Exception ex)
            {
                Debug.Write(ex.ToString());
                txtFirm_version.Text     = "";
                txtGatewareVersion.Text  = "";
                txtLimeSuiteVersion.Text = "";
            }
        }
        public unsafe void GetLimeSDRDeviceData()
        {
            try
            {
                if (_owner.LimeSDR_Device != IntPtr.Zero)
                {
                    lms_dev_info_t info = new lms_dev_info_t();

                    info.deviceName          = new char[32];
                    info.expansionName       = new char[32];
                    info.firmwareVersion     = new char[16];
                    info.hardwareVersion     = new char[16];
                    info.protocolVersion     = new char[16];
                    info.boardSerialNumber   = 0;
                    info.gatewareVersion     = new char[16];
                    info.gatewareTargetBoard = new char[32];
                    IntPtr deviceInfo;

                    deviceInfo = (IntPtr)NativeMethods.LMS_GetDeviceInfo(_owner.LimeSDR_Device);
                    byte[] buff = new byte[168];
                    Marshal.Copy(deviceInfo, buff, 0, 168);
                    ASCIIEncoding ascii           = new ASCIIEncoding();
                    string        s               = ascii.GetString(buff);
                    string        deviceName      = ascii.GetString(buff, 0, 32).Trim('\0');
                    string        expansionName   = ascii.GetString(buff, 32, 32).Trim('\0');
                    string        firmwareVersion = ascii.GetString(buff, 64, 16).Trim('\0');
                    string        hardwareVersion = ascii.GetString(buff, 80, 16).Trim('\0');
                    string        protocolVersion = ascii.GetString(buff, 96, 16).Trim('\0');
                }
            }
            catch (Exception ex)
            {
                Debug.Write(ex.ToString());
            }
        }