diff --git a/BladeRF/BladeRFDevice.cs b/BladeRF/BladeRFDevice.cs
index 614bd80..6bc4300 100644
--- a/BladeRF/BladeRFDevice.cs
+++ b/BladeRF/BladeRFDevice.cs
@@ -24,6 +24,7 @@ public sealed class BladeRFDevice : IDisposable
private double _sampleRate = DefaultSamplerate;
private int _bandwidth;
private bool _isFpgaLoaded = false;
+ private bool _RXConfigured = false;
private string _fpga_path = Utils.GetStringSetting("BladeRFFPGA", "");
private bladerf_lna_gain _lnaGain = (bladerf_lna_gain)Utils.GetIntSetting("BladeRFLNAGain", (int) bladerf_lna_gain.BLADERF_LNA_GAIN_MID);
private int _vga1Gain = Utils.GetIntSetting("BladeRFRXVGA1Gain", 20);
@@ -398,6 +399,10 @@ private unsafe void ReceiveSamples_sync()
}
if ((status = NativeMethods.bladerf_sync_config(_dev, bladerf_module.BLADERF_MODULE_RX, bladerf_format.BLADERF_FORMAT_SC16_Q11, NumBuffers, cur_len, NumBuffers / 2, SampleTimeoutMs)) != 0)
_isStreaming = false;
+ lock(syncLock)
+ {
+ _RXConfigured = true;
+ }
while (status == 0 && cur_len == new_len)
{
try
@@ -567,6 +572,14 @@ public unsafe void Start()
_sampleThread.Priority = ThreadPriority.Highest;
_isStreaming = true;
_sampleThread.Start();
+ bool ready = false;
+ while (!ready)
+ {
+ lock (syncLock)
+ {
+ ready = _RXConfigured;
+ }
+ }
if ((error = NativeMethods.bladerf_enable_module(_dev, bladerf_module.BLADERF_MODULE_RX, 1)) != 0)
throw new ApplicationException(String.Format("bladerf_enable_module() error. {0}", NativeMethods.bladerf_strerror(error)));
}
diff --git a/BladeRF/NativeMethods.cs b/BladeRF/NativeMethods.cs
index 77dbec3..539e10a 100644
--- a/BladeRF/NativeMethods.cs
+++ b/BladeRF/NativeMethods.cs
@@ -37,7 +37,8 @@ public enum bladerf_error_codes
BLADERF_ERR_CHECKSUM = -10, /**< Invalid checksum */
BLADERF_ERR_NO_FILE = -11, /**< File not found */
BLADERF_ERR_UPDATE_FPGA = -12, /**< An FPGA update is required */
- BLADERF_ERR_UPDATE_FW = -13 /**< A firmware update is requied */
+ BLADERF_ERR_UPDATE_FW = -13, /**< A firmware update is requied */
+ BLADERF_ERR_TIME_PAST = -14 /**< Requested timestamp is in the past */
}
public enum bladerf_module
@@ -162,6 +163,7 @@ public enum bladerf_correction
public enum bladerf_format
{
BLADERF_FORMAT_SC16_Q11 = 0, /**< Signed, Complex 16-bit Q11.*/
+ BLADERF_FORMAT_SC16_Q11_META = 1
}
public enum bladerf_xb
@@ -192,6 +194,12 @@ public enum bladerf_log_level
BLADERF_LOG_LEVEL_CRITICAL = 5, /**< Fatal error level logging */
BLADERF_LOG_LEVEL_SILENT = 6 /**< No output */
}
+
+ public enum bladerf_xb200_path
+ {
+ BLADERF_XB200_BYPASS = 0, /**< Bypass the XB-200 mixer */
+ BLADERF_XB200_MIX = 1 /**< Pass signals through the XB-200 mixer */
+ }
#endregion
#region Internal structs
diff --git a/BladeRF/SDRSharp.BladeRF.csproj b/BladeRF/SDRSharp.BladeRF.csproj
index 2df37ea..da93339 100644
--- a/BladeRF/SDRSharp.BladeRF.csproj
+++ b/BladeRF/SDRSharp.BladeRF.csproj
@@ -105,7 +105,9 @@
-
+
+ Designer
+