/RTKDAB_Interface

This is an interface for the Realtek "RTKDAB.dll"

Primary LanguageC++GNU General Public License v2.0GPL-2.0

RTKDAB_Interface

This is an interface for the Realtek "RTKDAB.dll". It provides the DLL functiona via a MessagePack TCP API.

Description

"RTKDAB.dll" is a SDR library which demodulates a DAB signal from raw ADC samples. It works much better with weak signals compared to SDR-J or dab2eti. To goal is to use this library together with open source DAB software and RTL2832U dongles. Since it is a binary MS Windows DLL a interface is necessary which also runs in wine.

Why is "RTKDAB.dll" better?

Maybe because it is based on the "Fraunhofer DAB/DRM MultimediaPlayer" where a lot of Fraunhofer IIS engineers and researches work on this library.

Usage

"RTKDAB_Interface" uses the program "rtl_tcp" to read data from the RTL2832U dongles. You have to install "rtl_tcp" first and to start it. For Ubuntu you can do:

# sudo apt-get install rtl-sdr
# rtl_tcp

How-to obtain "RTKDAB.dll"

Because of license problems it is not possible to provide "RTKDAB.dll". But it is included in the program "NOXON DAB MediaPlayer".

Now you can run "RTKDAB_Interface.exe"

How-to run "RTKDAB_Interface.exe" in wine

  • Basically the same like MS Windows
  • Make sure that you have the Microsoft Visual C++ Redistributable Package 2012 installed. For the installation see here
  • Tested with wine 1.7.50 and Ubuntu 14.04

MessagePack TCP API

RTKDAB_Interface has two MessagePack TCP interfaces. A MessagePack client to transmit the FIC and MSC data ("RTKDAB.dll" callback) and a MessagePack server to provide the "RTKDAB.dll" API.

MessagePack client methods

"RTKDAB_Interface" will connect to a MessagePack TCP server and call the following methods.

Method Parameters Return Description
MSCData bin DataArray, int MSC data size, int SCID None Transmits the MSC data to a given sub-channel
FICData bin DataArray, int FIC data size, int Mode None Transmits the FIC data to a given channel
StreamData N/A N/A Not implemented
PacketData N/A N/A Not implemented
MWFICData N/A N/A Not implemented

MessagePack server methods

"RTKDAB_Interface" provides the following methods. A MessagePack TCP client can call it.

Method Parameters Return Description
AddServiceCom int ParaMode, int ID, int StartCU, int U_E, int Index, int EEPIdx, int CUNum, int PacketAddr, int FEC None Adda a service componente
DelServiceCom int ParaMode, int ID, int PacketAddr None Deletes a service componente
SetFreq int Frequency in kHz None Sets the tuner to a mid frequeny
OpenDevice N/A N/A Not implemented
CloseDevice N/A N/A Not implemented
Start N/A N/A Not implemented
Stop N/A N/A Not implemented
ChangeSCOrg N/A N/A Not implemented
GetFreqAndBW N/A N/A Not implemented
GetSignalQuality N/A N/A Not implemented
GetSignalLock N/A N/A Not implemented
GetSignalPresent N/A N/A Not implemented
GetSignalStrength N/A N/A Not implemented

Building

  • Microsoft Visual Studio Community 2015 with platform toolset Visual Studio 2012

Dependencys

Forked into this repository

References