mirror of https://github.com/drowe67/librtlsdr.git
Updates on rtl_tcp
* Added Bandwidth Parameter (-w) to rtl_tcp to set the device bandwidth through cmd args * Added Bandwidth Network Parameter (0x0E) to rtl_tcp to set the device bandwidth through network * Added RTL_TCP_COMMANDS enum to better organize the network commands * Added binary files to gitignoremaster
parent
cee5d10200
commit
ba43a14e92
|
@ -41,4 +41,13 @@ CMakeFiles
|
|||
*.cmake
|
||||
build
|
||||
|
||||
**/*.o
|
||||
**/*.so*
|
||||
**/*.a
|
||||
src/rtl_adsb
|
||||
src/rtl_eeprom
|
||||
src/rtl_fm
|
||||
src/rtl_power
|
||||
src/rtl_test
|
||||
|
||||
debianize/*.deb
|
||||
|
|
|
@ -26,6 +26,7 @@ extern "C" {
|
|||
|
||||
#include <stdint.h>
|
||||
#include <rtl-sdr_export.h>
|
||||
#include <rtl_tcp.h>
|
||||
|
||||
typedef struct rtlsdr_dev rtlsdr_dev_t;
|
||||
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* rtl-sdr, turns your Realtek RTL2832 based DVB dongle into a SDR receiver
|
||||
* Copyright (C) 2012-2013 by Steve Markgraf <steve@steve-m.de>
|
||||
* Copyright (C) 2012 by Dimitri Stolnikov <horiz0n@gmx.net>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __RTL_TCP_H
|
||||
#define __RTL_TCP_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* This enum defines the possible commands in rtl_tcp
|
||||
*/
|
||||
enum RTL_TCP_COMMANDS {
|
||||
SET_FREQUENCY = 0x01,
|
||||
SET_SAMPLE_RATE = 0x02,
|
||||
SET_GAIN_MODE = 0x03,
|
||||
SET_GAIN = 0x04,
|
||||
SET_FREQUENCY_CORRECTION = 0x05,
|
||||
SET_IF_STAGE = 0x06,
|
||||
SET_TEST_MODE = 0x07,
|
||||
SET_AGC_MODE = 0x08,
|
||||
SET_DIRECT_SAMPLING = 0x09,
|
||||
SET_OFFSET_TUNING = 0x0A,
|
||||
SET_RTL_CRYSTAL = 0x0B,
|
||||
SET_TUNER_CRYSTAL = 0x0C,
|
||||
SET_TUNER_GAIN_BY_INDEX = 0x0D,
|
||||
SET_TUNER_BANDWIDTH = 0x0E
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -94,6 +94,7 @@ void usage(void)
|
|||
"\t[-s samplerate in Hz (default: 2048000 Hz)]\n"
|
||||
"\t[-b number of buffers (default: 15, set by library)]\n"
|
||||
"\t[-n max number of linked list buffers to keep (default: 500)]\n"
|
||||
"\t[-w rtlsdr device bandwidth (for R820T device)\n"
|
||||
"\t[-d device index (default: 0)]\n"
|
||||
"\t[-P ppm_error (default: 0)]\n");
|
||||
exit(1);
|
||||
|
@ -302,59 +303,63 @@ static void *command_worker(void *arg)
|
|||
}
|
||||
}
|
||||
switch(cmd.cmd) {
|
||||
case 0x01:
|
||||
case SET_FREQUENCY:
|
||||
printf("set freq %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_center_freq(dev,ntohl(cmd.param));
|
||||
break;
|
||||
case 0x02:
|
||||
case SET_SAMPLE_RATE:
|
||||
printf("set sample rate %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_sample_rate(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x03:
|
||||
case SET_GAIN_MODE:
|
||||
printf("set gain mode %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_tuner_gain_mode(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x04:
|
||||
case SET_GAIN:
|
||||
printf("set gain %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_tuner_gain(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x05:
|
||||
case SET_FREQUENCY_CORRECTION:
|
||||
printf("set freq correction %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_freq_correction(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x06:
|
||||
case SET_IF_STAGE:
|
||||
tmp = ntohl(cmd.param);
|
||||
printf("set if stage %d gain %d\n", tmp >> 16, (short)(tmp & 0xffff));
|
||||
rtlsdr_set_tuner_if_gain(dev, tmp >> 16, (short)(tmp & 0xffff));
|
||||
break;
|
||||
case 0x07:
|
||||
case SET_TEST_MODE:
|
||||
printf("set test mode %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_testmode(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x08:
|
||||
case SET_AGC_MODE:
|
||||
printf("set agc mode %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_agc_mode(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x09:
|
||||
case SET_DIRECT_SAMPLING:
|
||||
printf("set direct sampling %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_direct_sampling(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x0a:
|
||||
case SET_OFFSET_TUNING:
|
||||
printf("set offset tuning %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_offset_tuning(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x0b:
|
||||
case SET_RTL_CRYSTAL:
|
||||
printf("set rtl xtal %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_xtal_freq(dev, ntohl(cmd.param), 0);
|
||||
break;
|
||||
case 0x0c:
|
||||
case SET_TUNER_CRYSTAL:
|
||||
printf("set tuner xtal %d\n", ntohl(cmd.param));
|
||||
rtlsdr_set_xtal_freq(dev, 0, ntohl(cmd.param));
|
||||
break;
|
||||
case 0x0d:
|
||||
case SET_TUNER_GAIN_BY_INDEX:
|
||||
printf("set tuner gain by index %d\n", ntohl(cmd.param));
|
||||
set_gain_by_index(dev, ntohl(cmd.param));
|
||||
break;
|
||||
case SET_TUNER_BANDWIDTH:
|
||||
printf("set tuner bandwidth to %i\n", ntohl(cmd.param));
|
||||
rtlsdr_set_tuner_bandwidth(dev, ntohl(cmd.param));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -367,7 +372,7 @@ int main(int argc, char **argv)
|
|||
int r, opt, i;
|
||||
char* addr = "127.0.0.1";
|
||||
int port = 1234;
|
||||
uint32_t frequency = 100000000, samp_rate = 2048000;
|
||||
uint32_t frequency = 100000000, samp_rate = 2048000, bandwidth = 0;
|
||||
struct sockaddr_in local, remote;
|
||||
uint32_t buf_num = 0;
|
||||
int dev_index = 0;
|
||||
|
@ -391,7 +396,7 @@ int main(int argc, char **argv)
|
|||
struct sigaction sigact, sigign;
|
||||
#endif
|
||||
|
||||
while ((opt = getopt(argc, argv, "a:p:f:g:s:b:n:d:P:")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "a:p:f:g:s:b:n:d:P:w:")) != -1) {
|
||||
switch (opt) {
|
||||
case 'd':
|
||||
dev_index = verbose_device_search(optarg);
|
||||
|
@ -420,6 +425,9 @@ int main(int argc, char **argv)
|
|||
break;
|
||||
case 'P':
|
||||
ppm_error = atoi(optarg);
|
||||
break;
|
||||
case 'w':
|
||||
bandwidth = (uint32_t)atofs(optarg);
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
|
@ -491,6 +499,14 @@ int main(int argc, char **argv)
|
|||
fprintf(stderr, "Tuner gain set to %f dB.\n", gain/10.0);
|
||||
}
|
||||
|
||||
r = rtlsdr_set_tuner_bandwidth(dev, bandwidth);
|
||||
if (r < 0)
|
||||
fprintf(stderr, "WARNING: Failed to set tuner bandwidth.\n");
|
||||
else if (bandwidth != 0)
|
||||
fprintf(stderr, "Tuner bandwidth set to %i.\n", bandwidth);
|
||||
else
|
||||
fprintf(stderr, "Tuner bandwidth set to automatic.\n");
|
||||
|
||||
/* Reset endpoint before we start reading from it (mandatory) */
|
||||
r = rtlsdr_reset_buffer(dev);
|
||||
if (r < 0)
|
||||
|
|
Loading…
Reference in New Issue