34
34
#include "rtl-sdr.h"
35
35
#include "convenience/convenience.h"
36
36
37
- #define DEFAULT_SAMPLE_RATE 2048000
37
+ #define DEFAULT_SAMPLE_RATE 1500000
38
38
#define DEFAULT_BUF_LENGTH (16 * 16384)
39
39
#define MINIMAL_BUF_LENGTH 512
40
40
#define MAXIMAL_BUF_LENGTH (256 * 16384)
@@ -48,13 +48,17 @@ void usage(void)
48
48
fprintf (stderr ,
49
49
"rtl_sdr, an I/Q recorder for RTL2832 based DVB-T receivers\n\n"
50
50
"Usage:\t -f frequency_to_tune_to [Hz]\n"
51
- "\t[-s samplerate (default: 2048000 Hz)]\n"
51
+ "\t[-s samplerate (default: 1500000 Hz)]\n"
52
52
"\t[-d device_index (default: 0)]\n"
53
53
"\t[-g gain (default: 0 for auto)]\n"
54
54
"\t[-p ppm_error (default: 0)]\n"
55
55
"\t[-b output_block_size (default: 16 * 16384)]\n"
56
56
"\t[-n number of samples to read (default: 0, infinite)]\n"
57
57
"\t[-S force sync output (default: async)]\n"
58
+ "\t[-E enable_option (default: none)]\n"
59
+ "\t[use multiple -E to enable multiple options]\n"
60
+ "\t[direct: enable direct sampling 1 (usually I)]\n"
61
+ "\t[direct2: enable direct sampling 2 (usually Q)]\n"
58
62
"\tfilename (a '-' dumps samples to stdout)\n\n" );
59
63
exit (1 );
60
64
}
@@ -113,15 +117,16 @@ int main(int argc, char **argv)
113
117
int gain = 0 ;
114
118
int ppm_error = 0 ;
115
119
int sync_mode = 0 ;
120
+ int direct_sampling = 0 ;
116
121
FILE * file ;
117
122
uint8_t * buffer ;
118
123
int dev_index = 0 ;
119
124
int dev_given = 0 ;
120
- uint32_t frequency = 100000000 ;
125
+ uint32_t frequency = 1500000 ;
121
126
uint32_t samp_rate = DEFAULT_SAMPLE_RATE ;
122
127
uint32_t out_block_size = DEFAULT_BUF_LENGTH ;
123
128
124
- while ((opt = getopt (argc , argv , "d:f:g:s:b:n:p:S" )) != -1 ) {
129
+ while ((opt = getopt (argc , argv , "d:f:g:s:b:n:p:S:E: " )) != -1 ) {
125
130
switch (opt ) {
126
131
case 'd' :
127
132
dev_index = verbose_device_search (optarg );
@@ -148,6 +153,12 @@ int main(int argc, char **argv)
148
153
case 'S' :
149
154
sync_mode = 1 ;
150
155
break ;
156
+ case 'E' :
157
+ if (strcmp ("direct" , optarg ) == 0 ) {
158
+ direct_sampling = 1 ;}
159
+ if (strcmp ("direct2" , optarg ) == 0 ) {
160
+ direct_sampling = 2 ;}
161
+ break ;
151
162
default :
152
163
usage ();
153
164
break ;
@@ -197,11 +208,6 @@ int main(int argc, char **argv)
197
208
#else
198
209
SetConsoleCtrlHandler ( (PHANDLER_ROUTINE ) sighandler , TRUE );
199
210
#endif
200
- /* Set the sample rate */
201
- verbose_set_sample_rate (dev , samp_rate );
202
-
203
- /* Set the frequency */
204
- verbose_set_frequency (dev , frequency );
205
211
206
212
if (0 == gain ) {
207
213
/* Enable automatic gain */
@@ -212,6 +218,15 @@ int main(int argc, char **argv)
212
218
verbose_gain_set (dev , gain );
213
219
}
214
220
221
+ if (direct_sampling )
222
+ verbose_direct_sampling (dev , direct_sampling );
223
+
224
+ /* Set the frequency */
225
+ verbose_set_frequency (dev , frequency );
226
+
227
+ /* Set the sample rate */
228
+ verbose_set_sample_rate (dev , samp_rate );
229
+
215
230
verbose_ppm_set (dev , ppm_error );
216
231
217
232
if (strcmp (filename , "-" ) == 0 ) { /* Write samples to stdout */
0 commit comments