turtleshell 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/ext/librtlsdr/extconf.rb +20 -1
- data/ext/librtlsdr/librtlsdr.c +32 -0
- data/lib/turtleshell/device.rb +12 -0
- data/turtleshell.gemspec +1 -1
- metadata +1 -2
- data/ext/librtlsdr/Makefile +0 -217
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb5dc6ce3ad0ddb16c72026c295a72640f360a83
|
4
|
+
data.tar.gz: 405f2ef9cccaf7630b4e3f83eea7b274b500f093
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3fc4a7d00175527c3871df711600a7e78ccf1cc9baa09c437cc5aad5672003fc65b547ae0c5e2cb7dee32a77779cb0254594e3551ff4f53fa8aac92dff19fa7
|
7
|
+
data.tar.gz: 84e8c8563f2df9041ccfa56cd155924b813f0676bbde4ec095093a7e1de32e2399bad996a5fc7a7a1a44ac557ecc52dd98a24fdd94aa59c7bb6b142cd1b47c8f
|
data/.gitignore
CHANGED
data/ext/librtlsdr/extconf.rb
CHANGED
@@ -3,6 +3,25 @@ require 'mkmf'
|
|
3
3
|
|
4
4
|
have_library('rtlsdr')
|
5
5
|
extension_name = 'librtlsdr'
|
6
|
-
|
7
6
|
dir_config('librtlsdr')
|
7
|
+
|
8
|
+
search_paths = ENV['C_INCLUDE_PATH']
|
9
|
+
standard_include_path = '/usr/local/include'
|
10
|
+
search_paths = search_paths.nil? ? standard_include_path : search_paths
|
11
|
+
|
12
|
+
unless search_paths.include?(standard_include_path) || !File.exists?(standard_include_path)
|
13
|
+
search_paths = [search_paths, standard_include_path].join(':')
|
14
|
+
end
|
15
|
+
|
16
|
+
unless find_header('rtl-sdr.h', search_paths)
|
17
|
+
puts "\n\n***************************************"
|
18
|
+
puts "Error: could not find rtl-sdr.h"
|
19
|
+
puts "Either rtl-sdr.h is not in your include path, or we couldn't find it"
|
20
|
+
puts "This is either a bug in Turtleshell or you haven't installed this dependency yet. Please consider reporting this as a bug!"
|
21
|
+
puts "https://github.com/tjarratt/turtleshell/issues"
|
22
|
+
puts "***************************************\n\n"
|
23
|
+
exit 1
|
24
|
+
end
|
25
|
+
|
26
|
+
|
8
27
|
create_makefile('librtlsdr/librtlsdr')
|
data/ext/librtlsdr/librtlsdr.c
CHANGED
@@ -224,7 +224,28 @@ static VALUE turtleshell_get_gains(VALUE self, VALUE wrapped_device) {
|
|
224
224
|
return buffer;
|
225
225
|
}
|
226
226
|
|
227
|
+
static VALUE turtleshell_get_tuner_type(VALUE self, VALUE wrapped_device) {
|
228
|
+
VALUE hash;
|
229
|
+
int tuner_type;
|
230
|
+
rtlsdr_dev_t *device;
|
231
|
+
Data_Get_Struct(wrapped_device, rtlsdr_dev_t, device);
|
232
|
+
|
233
|
+
hash = rb_const_get(m_rtlsdr, rb_intern("TunerTypes"));
|
234
|
+
tuner_type = rtlsdr_get_tuner_type(device);
|
235
|
+
return rb_hash_aref(hash, tuner_type);
|
236
|
+
}
|
237
|
+
|
238
|
+
static VALUE turtleshell_set_manual_gain(VALUE self, VALUE wrapped_device, VALUE enabled) {
|
239
|
+
int result;
|
240
|
+
rtlsdr_dev_t *device;
|
241
|
+
Data_Get_Struct(wrapped_device, rtlsdr_dev_t, device);
|
242
|
+
|
243
|
+
result = rtlsdr_set_tuner_gain_mode(device, RTEST(enabled));
|
244
|
+
return INT2NUM(result);
|
245
|
+
}
|
246
|
+
|
227
247
|
void Init_librtlsdr() {
|
248
|
+
VALUE tuner_hash;
|
228
249
|
m_turtleshell = rb_define_module("TurtleShell");
|
229
250
|
m_rtlsdr = rb_define_module_under(m_turtleshell, "RTLSDR");
|
230
251
|
c_device = rb_define_class_under(m_rtlsdr, "Device", rb_cObject);
|
@@ -250,4 +271,15 @@ void Init_librtlsdr() {
|
|
250
271
|
rb_define_module_function(m_rtlsdr, "get_gain", turtleshell_get_gain, 1);
|
251
272
|
rb_define_module_function(m_rtlsdr, "set_gain", turtleshell_set_gain, 2);
|
252
273
|
rb_define_module_function(m_rtlsdr, "get_tuner_gains", turtleshell_get_gains, 1);
|
274
|
+
rb_define_module_function(m_rtlsdr, "get_tuner_type", turtleshell_get_tuner_type, 1);
|
275
|
+
rb_define_module_function(m_rtlsdr, "set_manual_gain", turtleshell_set_manual_gain, 2);
|
276
|
+
|
277
|
+
tuner_hash = rb_hash_new();
|
278
|
+
rb_hash_aset(tuner_hash, RTLSDR_TUNER_UNKNOWN, ID2SYM(rb_intern("unknown")));
|
279
|
+
rb_hash_aset(tuner_hash, RTLSDR_TUNER_E4000, ID2SYM(rb_intern("e4000")));
|
280
|
+
rb_hash_aset(tuner_hash, RTLSDR_TUNER_FC0012, ID2SYM(rb_intern("fc0012")));
|
281
|
+
rb_hash_aset(tuner_hash, RTLSDR_TUNER_FC0013, ID2SYM(rb_intern("fc0013")));
|
282
|
+
rb_hash_aset(tuner_hash, RTLSDR_TUNER_R820T, ID2SYM(rb_intern("r820t")));
|
283
|
+
rb_hash_aset(tuner_hash, RTLSDR_TUNER_R828D, ID2SYM(rb_intern("r828d")));
|
284
|
+
rb_define_const(m_rtlsdr, "TunerTypes", tuner_hash);
|
253
285
|
}
|
data/lib/turtleshell/device.rb
CHANGED
@@ -53,6 +53,18 @@ module TurtleShell
|
|
53
53
|
TurtleShell::RTLSDR.get_tuner_gains(@device)
|
54
54
|
end
|
55
55
|
|
56
|
+
def get_tuner_type
|
57
|
+
TurtleShell::RTLSDR.get_tuner_type(@device)
|
58
|
+
end
|
59
|
+
|
60
|
+
def set_manual_gain_mode
|
61
|
+
TurtleShell::RTLSDR.set_manual_gain(@device, true)
|
62
|
+
end
|
63
|
+
|
64
|
+
def disable_manual_gain_mode
|
65
|
+
TurtleShell::RTLSDR.set_manual_gain(@device, false)
|
66
|
+
end
|
67
|
+
|
56
68
|
# read specified number of complex samples from tuner
|
57
69
|
# real and imaginary parts are normalized between [-1, 1]
|
58
70
|
def read_samples(number_of_samples = 1024)
|
data/turtleshell.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turtleshell
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Jarratt
|
@@ -68,7 +68,6 @@ files:
|
|
68
68
|
- examples/async_read_from_device.rb
|
69
69
|
- examples/listing_devices.rb
|
70
70
|
- examples/simple_read_from_device.rb
|
71
|
-
- ext/librtlsdr/Makefile
|
72
71
|
- ext/librtlsdr/extconf.rb
|
73
72
|
- ext/librtlsdr/librtlsdr.c
|
74
73
|
- lib/turtleshell.rb
|
data/ext/librtlsdr/Makefile
DELETED
@@ -1,217 +0,0 @@
|
|
1
|
-
|
2
|
-
SHELL = /bin/sh
|
3
|
-
|
4
|
-
# V=0 quiet, V=1 verbose. other values don't work.
|
5
|
-
V = 0
|
6
|
-
Q1 = $(V:1=)
|
7
|
-
Q = $(Q1:0=@)
|
8
|
-
n=$(NULLCMD)
|
9
|
-
ECHO1 = $(V:1=@$n)
|
10
|
-
ECHO = $(ECHO1:0=@echo)
|
11
|
-
|
12
|
-
#### Start of system configuration section. ####
|
13
|
-
|
14
|
-
srcdir = .
|
15
|
-
topdir = /Users/tjarratt/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1
|
16
|
-
hdrdir = /Users/tjarratt/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1
|
17
|
-
arch_hdrdir = /Users/tjarratt/.rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/$(arch)
|
18
|
-
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
|
19
|
-
prefix = $(DESTDIR)/Users/tjarratt/.rvm/rubies/ruby-1.9.3-p327
|
20
|
-
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
|
21
|
-
exec_prefix = $(prefix)
|
22
|
-
vendorhdrdir = $(rubyhdrdir)/vendor_ruby
|
23
|
-
sitehdrdir = $(rubyhdrdir)/site_ruby
|
24
|
-
rubyhdrdir = $(includedir)/$(RUBY_BASE_NAME)-$(ruby_version)
|
25
|
-
vendordir = $(rubylibprefix)/vendor_ruby
|
26
|
-
sitedir = $(rubylibprefix)/site_ruby
|
27
|
-
ridir = $(datarootdir)/$(RI_BASE_NAME)
|
28
|
-
mandir = $(datarootdir)/man
|
29
|
-
localedir = $(datarootdir)/locale
|
30
|
-
libdir = $(exec_prefix)/lib
|
31
|
-
psdir = $(docdir)
|
32
|
-
pdfdir = $(docdir)
|
33
|
-
dvidir = $(docdir)
|
34
|
-
htmldir = $(docdir)
|
35
|
-
infodir = $(datarootdir)/info
|
36
|
-
docdir = $(datarootdir)/doc/$(PACKAGE)
|
37
|
-
oldincludedir = $(DESTDIR)/usr/include
|
38
|
-
includedir = $(prefix)/include
|
39
|
-
localstatedir = $(prefix)/var
|
40
|
-
sharedstatedir = $(prefix)/com
|
41
|
-
sysconfdir = $(DESTDIR)/etc
|
42
|
-
datadir = $(datarootdir)
|
43
|
-
datarootdir = $(prefix)/share
|
44
|
-
libexecdir = $(exec_prefix)/libexec
|
45
|
-
sbindir = $(exec_prefix)/sbin
|
46
|
-
bindir = $(exec_prefix)/bin
|
47
|
-
rubylibdir = $(rubylibprefix)/$(ruby_version)
|
48
|
-
archdir = $(rubylibdir)/$(arch)
|
49
|
-
sitelibdir = $(sitedir)/$(ruby_version)
|
50
|
-
sitearchdir = $(sitelibdir)/$(sitearch)
|
51
|
-
vendorlibdir = $(vendordir)/$(ruby_version)
|
52
|
-
vendorarchdir = $(vendorlibdir)/$(sitearch)
|
53
|
-
|
54
|
-
NULLCMD = :
|
55
|
-
|
56
|
-
CC = /usr/bin/gcc-4.2
|
57
|
-
CXX = g++
|
58
|
-
LIBRUBY = $(LIBRUBY_A)
|
59
|
-
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
60
|
-
LIBRUBYARG_SHARED =
|
61
|
-
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
62
|
-
empty =
|
63
|
-
OUTFLAG = -o $(empty)
|
64
|
-
COUTFLAG = -o $(empty)
|
65
|
-
|
66
|
-
RUBY_EXTCONF_H =
|
67
|
-
cflags = $(optflags) $(debugflags) $(warnflags)
|
68
|
-
optflags = -O3
|
69
|
-
debugflags = -ggdb
|
70
|
-
warnflags = -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration
|
71
|
-
CFLAGS = -fno-common -I/Users/mpapis/.sm/pkg/active/include -pipe $(ARCH_FLAG)
|
72
|
-
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
|
73
|
-
DEFS =
|
74
|
-
CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE $(DEFS) $(cppflags)
|
75
|
-
CXXFLAGS = $(CFLAGS) $(cxxflags)
|
76
|
-
ldflags = -L. -Bstatic -L/Users/mpapis/.sm/pkg/active/lib
|
77
|
-
dldflags = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace
|
78
|
-
ARCH_FLAG = -arch x86_64
|
79
|
-
DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
|
80
|
-
LDSHARED = $(CC) -dynamic -bundle
|
81
|
-
LDSHAREDXX = $(CXX) -dynamic -bundle
|
82
|
-
AR = ar
|
83
|
-
EXEEXT =
|
84
|
-
|
85
|
-
RUBY_BASE_NAME = ruby
|
86
|
-
RUBY_INSTALL_NAME = ruby
|
87
|
-
RUBY_SO_NAME = ruby
|
88
|
-
arch = x86_64-darwin12.2.0
|
89
|
-
sitearch = $(arch)
|
90
|
-
ruby_version = 1.9.1
|
91
|
-
ruby = /Users/tjarratt/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
|
92
|
-
RUBY = $(ruby)
|
93
|
-
RM = rm -f
|
94
|
-
RM_RF = $(RUBY) -run -e rm -- -rf
|
95
|
-
RMDIRS = rmdir -p
|
96
|
-
MAKEDIRS = mkdir -p
|
97
|
-
INSTALL = /usr/bin/install -c
|
98
|
-
INSTALL_PROG = $(INSTALL) -m 0755
|
99
|
-
INSTALL_DATA = $(INSTALL) -m 644
|
100
|
-
COPY = cp
|
101
|
-
TOUCH = exit >
|
102
|
-
|
103
|
-
#### End of system configuration section. ####
|
104
|
-
|
105
|
-
preload =
|
106
|
-
|
107
|
-
libpath = . $(libdir)
|
108
|
-
LIBPATH = -L. -L$(libdir)
|
109
|
-
DEFFILE =
|
110
|
-
|
111
|
-
CLEANFILES = mkmf.log
|
112
|
-
DISTCLEANFILES =
|
113
|
-
DISTCLEANDIRS =
|
114
|
-
|
115
|
-
extout =
|
116
|
-
extout_prefix =
|
117
|
-
target_prefix =
|
118
|
-
LOCAL_LIBS =
|
119
|
-
LIBS = -lpthread -ldl -lobjc
|
120
|
-
SRCS = librtlsdr.c
|
121
|
-
OBJS = librtlsdr.o
|
122
|
-
TARGET = librtlsdr
|
123
|
-
DLLIB = $(TARGET).bundle
|
124
|
-
EXTSTATIC =
|
125
|
-
STATIC_LIB =
|
126
|
-
|
127
|
-
BINDIR = $(bindir)
|
128
|
-
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
129
|
-
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
130
|
-
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
131
|
-
HDRDIR = $(rubyhdrdir)/ruby$(target_prefix)
|
132
|
-
ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)
|
133
|
-
|
134
|
-
TARGET_SO = $(DLLIB)
|
135
|
-
CLEANLIBS = $(TARGET).bundle
|
136
|
-
CLEANOBJS = *.o *.bak
|
137
|
-
|
138
|
-
all: $(DLLIB)
|
139
|
-
static: $(STATIC_LIB)
|
140
|
-
.PHONY: all install static install-so install-rb
|
141
|
-
.PHONY: clean clean-so clean-rb
|
142
|
-
|
143
|
-
clean-rb-default::
|
144
|
-
clean-rb::
|
145
|
-
clean-so::
|
146
|
-
clean: clean-so clean-rb-default clean-rb
|
147
|
-
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
|
148
|
-
|
149
|
-
distclean-rb-default::
|
150
|
-
distclean-rb::
|
151
|
-
distclean-so::
|
152
|
-
distclean: clean distclean-so distclean-rb-default distclean-rb
|
153
|
-
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
154
|
-
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
155
|
-
@-$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true
|
156
|
-
|
157
|
-
realclean: distclean
|
158
|
-
install: install-so install-rb
|
159
|
-
|
160
|
-
install-so: $(RUBYARCHDIR)/$(DLLIB)
|
161
|
-
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
|
162
|
-
-$(Q)$(MAKEDIRS) $(@D)
|
163
|
-
$(INSTALL_PROG) $(DLLIB) $(@D)
|
164
|
-
clean-static::
|
165
|
-
-$(Q)$(RM) $(STATIC_LIB)
|
166
|
-
install-rb: pre-install-rb install-rb-default
|
167
|
-
install-rb-default: pre-install-rb-default
|
168
|
-
pre-install-rb: Makefile
|
169
|
-
pre-install-rb-default: Makefile
|
170
|
-
pre-install-rb-default:
|
171
|
-
$(ECHO) installing default librtlsdr libraries
|
172
|
-
./.RUBYARCHDIR.time:
|
173
|
-
$(Q) $(MAKEDIRS) $(RUBYARCHDIR)
|
174
|
-
$(Q) $(TOUCH) $@
|
175
|
-
|
176
|
-
site-install: site-install-so site-install-rb
|
177
|
-
site-install-so: install-so
|
178
|
-
site-install-rb: install-rb
|
179
|
-
|
180
|
-
.SUFFIXES: .c .m .cc .mm .cxx .cpp .C .o
|
181
|
-
|
182
|
-
.cc.o:
|
183
|
-
$(ECHO) compiling $(<)
|
184
|
-
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
185
|
-
|
186
|
-
.mm.o:
|
187
|
-
$(ECHO) compiling $(<)
|
188
|
-
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
189
|
-
|
190
|
-
.cxx.o:
|
191
|
-
$(ECHO) compiling $(<)
|
192
|
-
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
193
|
-
|
194
|
-
.cpp.o:
|
195
|
-
$(ECHO) compiling $(<)
|
196
|
-
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
197
|
-
|
198
|
-
.C.o:
|
199
|
-
$(ECHO) compiling $(<)
|
200
|
-
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
201
|
-
|
202
|
-
.c.o:
|
203
|
-
$(ECHO) compiling $(<)
|
204
|
-
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
|
205
|
-
|
206
|
-
.m.o:
|
207
|
-
$(ECHO) compiling $(<)
|
208
|
-
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
|
209
|
-
|
210
|
-
$(DLLIB): $(OBJS) Makefile
|
211
|
-
$(ECHO) linking shared-object $(DLLIB)
|
212
|
-
-$(Q)$(RM) $(@)
|
213
|
-
$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
$(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h $(arch_hdrdir)/ruby/config.h
|