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()); } }