The Data Repeater is an interface between the Console and other programs running within the local network. It streams IQ data in either 16-bit or 32-bit format, also providing the name of the radio, center frequency and bandwidth.
- 16-bit - signed 16-bit integers, range -32,768 to +32767 [link]
- 32-bit - floating point data, range +/- 32767.
The interface is provided by a DLL available for 32-bit and 64-bit programs. This page describes the interface in detail.
A sample Windows program with full source is available below, Visual Studio 2013 or later is required.
void SDRRepeaterDisconnect()Closes the connection, stops streaming.
void SDRRepeaterSetProgram(LPCTSTR lpszProgramName)
The name of the program, this is displayed in the console's Data Repeater management window.
void SDRRepeaterLogfileMsg(CWnd* pParent, UINT nMessage)
Diagnostic messages from the DLL are posted as messages using ::PostMessage(UINT message, WPARAM wParam, LPARAM lParam).
- WPARAM is a pointer to a null-terminated string containing the message title.
- LPARAM is a pointer to a null-terminated string containing the message body.
The client must free this storage using delete.
void SDRRepeaterIQDataSetCallback(pfnIQDataCallback pfnCallback)
The samples are returned via a callback function.
void CALLBACK IQDataCallback(const void* pData, const int nDataType, const int nSamples)
- void* pData - pointer to the IQ data.
- int nDataType - 16 for 16-bit samples, 32 for 32-bit samples
- int nSamples - number of samples.
Do not free the storage!
void SDRRepeaterRadioSetCallback(pfnRadioCallback pfnCallback)
The radio, center frequency and bandwidth are returned via a callback.
void CALLBACK RadioCallback(LPCTSTR lpszRadio, const __int64 n64FrequencyHz, const UINT nBandwidth)
Do not free the radio string!
The client sends a TCP connection request on port 50050 (user configurable). The connection is accepted, a REPEATER_SETTINGS structure is returned.
The client must send an ACK message every second, when received a REPEATER_ACK message is returned.
The client can request an updates REPEATER_SETTINGS structure at any time.