The latest SDR# version uses .NET 6.0 and UI has based on Telerik UI since .NET 5.0 version of the SDR#.
SDR# SDK for Plugin Developers: https://airspy.com/download/
Previous .NET 5.0 based SDR# SDK required many settings adjustments in Visual Studio (https://teknokoodiradio.vuodatus.net/lue/2021/02/developing-plugins-for-sdr-net-5-desktop), now the SDK sample project builds ok right away in Visual Studio 2022 with .NET 6 Windows x86 SDK installed.
From SDR# .NET 5.0 version SDRSharp. assemblies are embedded in SDRSharp.exe.
Telerik & SDRSharp controls.
Modify SDK example plugin to show RDS info
EmptyPlugin.cs
...
public void LoadGui()
{
if (_gui == null)
{
_gui = new ControlPanel(_control);
}
}
public void Initialize(ISharpControl control)
{
_control = control;
control.RegisterStreamHook((object)new RdsHwnd(_gui), ProcessorType.RDSBitStream);
}
public void Close()
{
}
....
using System.Text;
using SDRSharp.Radio;
namespace SDRSharp.Empty
{
public unsafe class RdsHwnd : IRdsBitStreamProcessor, IBaseProcessor
{
private bool _enabled = true;
private readonly ControlPanel _rdsiPluginPanel;
private StringBuilder _sb = new StringBuilder();
public RdsHwnd(ControlPanel _rdsPanelRef)
{
_rdsiPluginPanel = _rdsPanelRef;
}
public bool Enabled
{
get
{
return _enabled;
}
set
{
_enabled = value;
}
}
public void Process(ref RdsFrame _rdsFrame)
{
_rdsFrame.Filter = false;
string pic = string.Format("{0:X}", _rdsFrame.GroupA).Trim();
if (pic.Length != 4)
return;
_sb.Clear();
_sb.Append(string.Format("{0:X}", _rdsFrame.GroupA));
_sb.Append(string.Format("{0:X}", _rdsFrame.GroupB));
_sb.Append(string.Format("{0:X}", _rdsFrame.GroupC));
_sb.Append(string.Format("{0:X}", _rdsFrame.GroupD));
_sb.Append("\r\n");
_rdsiPluginPanel.Rds(_sb.ToString(), pic);
}
}
}
ControlPanel.cs
public void Rds(String groups, String picode)
{
textBoxRDS.Text = _control.RdsPICode.ToString() + Environment.NewLine +
_control.RdsProgramService + Environment.NewLine +
_control.RdsRadioText + Environment.NewLine +
_control.RdsUseFEC.ToString();
}
Kommentit
Tämän blogin kommentit tarkistetaan ennen julkaisua.