├── Makefile
├── README.md
├── scripts
└── launch_hackrf.sh
└── sdr
├── devices
└── captivation.HackRFOne
│ ├── .HackRFOne.wavedev
│ ├── .cproject
│ ├── .md5sums
│ ├── .project
│ ├── .pydevproject
│ ├── .settings
│ ├── gov.redhawk.ide.sdr.ui.prefs
│ ├── language.settings.xml
│ └── org.eclipse.cdt.core.prefs
│ ├── HackRFOne.prf.xml
│ ├── HackRFOne.scd.xml
│ ├── HackRFOne.spd.xml
│ ├── build.sh
│ ├── captivation.HackRFOne.spec
│ ├── cpp
│ ├── .gitignore
│ ├── .md5sums
│ ├── HackRFConstants.h
│ ├── HackRFOne.cpp
│ ├── HackRFOne.h
│ ├── HackRFOne_base.cpp
│ ├── HackRFOne_base.h
│ ├── Makefile.am
│ ├── Makefile.am.ide
│ ├── build.sh
│ ├── configure.ac
│ ├── main.cpp
│ ├── reconf
│ ├── struct_props.h
│ └── template_impl.cpp
│ └── tests
│ ├── .md5sums
│ └── test_HackRFOne.py
├── libraries
└── captivation.libhackrf
│ ├── .cproject
│ ├── .libhackrf.wavedev
│ ├── .md5sums
│ ├── .project
│ ├── .pydevproject
│ ├── .settings
│ ├── gov.redhawk.ide.sdr.ui.prefs
│ ├── language.settings.xml
│ └── org.eclipse.cdt.core.prefs
│ ├── build.sh
│ ├── captivation.libhackrf.spec
│ ├── cpp
│ ├── .gitignore
│ ├── .md5sums
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.am.ide
│ ├── build.sh
│ ├── captivation.libhackrf.pc.in
│ ├── configure.ac
│ ├── libhackrf
│ │ ├── 53-hackrf.rules
│ │ ├── 53-hackrf.rules.in
│ │ ├── CMakeLists.txt
│ │ ├── libhackrf.pc.in
│ │ └── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── hackrf.c
│ │ │ └── hackrf.h
│ └── reconf
│ └── libhackrf.spd.xml
└── nodes
└── captivation.HackRFNode
├── .project
├── DeviceManager.dcd.xml
└── DeviceManager.dcd_GDiagram
/Makefile:
--------------------------------------------------------------------------------
1 | .PHONY: all install clean distclean check
2 |
3 | all:
4 | (cd sdr/libraries/captivation.libhackrf/cpp && ./reconf; ./configure; make -j2)
5 | (cd sdr/devices/captivation.HackRFOne/cpp && ./reconf; ./configure; make -j2)
6 |
7 | install:
8 | (cd sdr/libraries/captivation.libhackrf/cpp && ./reconf; ./configure; make install -j2)
9 | (cd sdr/devices/captivation.HackRFOne/cpp && ./reconf; ./configure; make install -j2)
10 | mkdir -p /var/redhawk/sdr/dev/nodes/captivation/
11 | cp -r sdr/nodes/captivation.HackRFNode /var/redhawk/sdr/dev/nodes/captivation/HackRFNode
12 |
13 | clean:
14 | (cd sdr/libraries/captivation.libhackrf/cpp && make clean)
15 | (cd sdr/devices/captivation.HackRFOne/cpp && make clean)
16 |
17 | distclean:
18 | (cd sdr/libraries/captivation.libhackrf/cpp && make distclean)
19 | (cd sdr/devices/captivation.HackRFOne/cpp && make distclean)
20 |
21 | check:
22 | @echo "Warn: 'sudo' permissions may be necessary for device to access USB"
23 | ./scripts/launch_hackrf.sh
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # redhawk-hackrf
2 | Drivers for interfacing HackRF radios with REDHAWK
3 |
4 | # Contents
5 | * REDHAWK Softpkg Dependency (captivation.libhackrf)
6 | * REDHAWK Device (captivation.HackRFOne)
7 | * REDHAWK Node (captivation.HackRFNode)
8 |
9 | # Instructions
10 | To install into standard SDRROOT directory:
11 | ```bash
12 | make install
13 | ```
14 | To clean project:
15 | ```bash
16 | make distclean
17 | ```
18 |
19 | To run the HackRF device:
20 | ```bash
21 | # Launch REDHAWK domain (if necessary)
22 | nodeBooter -D&
23 |
24 | # Launch node containing HackRF device
25 | sudo make check
26 | ```
27 |
--------------------------------------------------------------------------------
/scripts/launch_hackrf.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | nodeBooter=/usr/local/redhawk/core/bin/nodeBooter
3 | node=/var/redhawk/sdr/dev/nodes/captivation/HackRFNode/DeviceManager.dcd.xml
4 |
5 | $nodeBooter -d $node
6 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/.HackRFOne.wavedev:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/.cproject:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
35 |
36 |
37 |
38 |
39 |
40 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
104 |
105 |
106 |
107 |
108 |
109 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/.md5sums:
--------------------------------------------------------------------------------
1 | 48e0d785b68c3add60afe0f1c121cb16 build.sh
2 | db4b2046224cd6a2186a7702b064cf8c captivation.HackRFOne.spec
3 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | captivation.HackRFOne
4 |
5 |
6 |
7 |
8 |
9 | gov.redhawk.ide.codegen.jet.cplusplus.builder
10 |
11 |
12 |
13 |
14 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
15 | clean,full,incremental,
16 |
17 |
18 |
19 |
20 | gov.redhawk.ide.builders.scaproject
21 |
22 |
23 |
24 |
25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
26 | full,incremental,
27 |
28 |
29 |
30 |
31 |
32 | gov.redhawk.ide.natures.scaproject
33 | org.python.pydev.pythonNature
34 | gov.redhawk.ide.natures.sca.component
35 | gov.redhawk.ide.codgen.natures.frontend
36 | org.eclipse.cdt.core.cnature
37 | org.eclipse.cdt.core.ccnature
38 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
39 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
40 |
41 |
42 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/.pydevproject:
--------------------------------------------------------------------------------
1 |
2 |
3 | Default
4 | python 2.7
5 |
6 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/.settings/gov.redhawk.ide.sdr.ui.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | useBuild.sh=true
3 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/.settings/language.settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/.settings/org.eclipse.cdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | environment/project/cdt.managedbuild.config.gnu.exe.debug.1130348376/OSSIEHOME/delimiter=\:
3 | environment/project/cdt.managedbuild.config.gnu.exe.debug.1130348376/OSSIEHOME/operation=replace
4 | environment/project/cdt.managedbuild.config.gnu.exe.debug.1130348376/OSSIEHOME/value=${OssieHome}
5 | environment/project/cdt.managedbuild.config.gnu.exe.debug.1130348376/V/delimiter=\:
6 | environment/project/cdt.managedbuild.config.gnu.exe.debug.1130348376/V/operation=replace
7 | environment/project/cdt.managedbuild.config.gnu.exe.debug.1130348376/V/value=1
8 | environment/project/cdt.managedbuild.config.gnu.exe.debug.1130348376/append=true
9 | environment/project/cdt.managedbuild.config.gnu.exe.debug.1130348376/appendContributed=true
10 | environment/project/cdt.managedbuild.config.gnu.exe.release.784691789/OSSIEHOME/delimiter=\:
11 | environment/project/cdt.managedbuild.config.gnu.exe.release.784691789/OSSIEHOME/operation=replace
12 | environment/project/cdt.managedbuild.config.gnu.exe.release.784691789/OSSIEHOME/value=${OssieHome}
13 | environment/project/cdt.managedbuild.config.gnu.exe.release.784691789/V/delimiter=\:
14 | environment/project/cdt.managedbuild.config.gnu.exe.release.784691789/V/operation=replace
15 | environment/project/cdt.managedbuild.config.gnu.exe.release.784691789/V/value=1
16 | environment/project/cdt.managedbuild.config.gnu.exe.release.784691789/append=true
17 | environment/project/cdt.managedbuild.config.gnu.exe.release.784691789/appendContributed=true
18 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/HackRFOne.prf.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | This specifies the device kind
6 | FRONTEND::TUNER
7 |
8 |
9 |
10 |
11 | This specifies the specific device
12 |
13 |
14 |
15 |
16 | Status of each tuner, including entries for both allocated and un-allocated tuners. Each entry represents a single tuner.
17 |
18 |
19 | Comma separated list of current Allocation IDs.
20 |
21 |
22 | Available bandwidth (Hz) in range (XX-YY) or csv (X,Y,Z) format. Do not put units in field.
23 | Hz
24 |
25 |
26 | Available frequencies (Hz) in range (XX-YY) or csv (X,Y,Z) format. Do not put units in field.
27 | Hz
28 |
29 |
30 | Available gain (dB) in range (XX-YY) or csv (X,Y,Z) format. Do not put units in field.
31 | dB
32 |
33 |
34 | Available sample_rate (sps) in range (XX-YY) or csv (X,Y,Z) format. Do not put units in field.
35 | sps
36 |
37 |
38 | Current bandwidth in Hz
39 | Hz
40 |
41 |
42 | Current center frequency in Hz.
43 | Hz
44 |
45 |
46 | Indicates if tuner is enabled, in reference to the output state of the tuner.
47 |
48 |
49 | Current gain in dB.
50 | dB
51 |
52 |
53 | Unique ID that specifies a group of Device.
54 |
55 |
56 | Specifies a certain RF flow to allocate against.
57 |
58 |
59 | Current sample rate in samples per second.
60 | sps
61 |
62 |
63 | True if scan mode is enabled. False if Manual Tune is enabled
64 |
65 |
66 | True if scan is supported
67 |
68 |
69 | Example Tuner Types: TX, RX, CHANNELIZER, DDC, RX_DIGITIZER, RX_DIGTIZIER_CHANNELIZER
70 |
71 |
72 |
73 |
74 |
75 | Frontend Interfaces v2 listener allocation structure
76 |
77 |
78 |
79 |
80 |
81 | Frontend Interfaces v2 main allocation structure
82 |
83 | Example Tuner Types: TX, RX, CHANNELIZER, DDC, RX_DIGITIZER, RX_DIGTIZIER_CHANNELIZER
84 |
85 |
86 | The allocation_id set by the caller. Used by the caller to reference the allocation uniquely
87 |
88 |
89 | Requested center frequency
90 | Hz
91 |
92 |
93 | Requested bandwidth (+/- the tolerance)
94 | Hz
95 |
96 |
97 | Allowable Percent above requested bandwidth (ie - 100 would be up to twice)
98 | percent
99 |
100 |
101 | Requested sample rate (+/- the tolerance). This can be ignored for such devices as analog tuners
102 | Hz
103 |
104 |
105 | Allowable Percent above requested sample rate (ie - 100 would be up to twice)
106 | percent
107 |
108 |
109 | True: Has control over the device to make changes
110 | False: Does not need control and can just attach to any currently tasked device that satisfies the parameters (essentually a listener)
111 |
112 |
113 | Unique identifier that specifies the group a device must be in. Must match group_id on the device
114 |
115 |
116 | Optional. Specifies the RF flow of a specific input source to allocate against. If left empty, it will match all FrontEnd devices.
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/HackRFOne.scd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 2.2
5 |
6 | device
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/HackRFOne.spd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | null
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | The implementation contains descriptive information about the template for a software resource.
16 |
17 |
18 | cpp/HackRFOne
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ "$1" = "rpm" ]; then
4 | # A very simplistic RPM build scenario
5 | if [ -e captivation.HackRFOne.spec ]; then
6 | mydir=`dirname $0`
7 | tmpdir=`mktemp -d`
8 | cp -r ${mydir} ${tmpdir}/captivation.HackRFOne-1.0.0
9 | tar czf ${tmpdir}/captivation.HackRFOne-1.0.0.tar.gz --exclude=".svn" --exclude=".git" -C ${tmpdir} captivation.HackRFOne-1.0.0
10 | rpmbuild -ta ${tmpdir}/captivation.HackRFOne-1.0.0.tar.gz
11 | rm -rf $tmpdir
12 | else
13 | echo "Missing RPM spec file in" `pwd`
14 | exit 1
15 | fi
16 | else
17 | for impl in cpp ; do
18 | if [ ! -d "$impl" ]; then
19 | echo "Directory '$impl' does not exist...continuing"
20 | continue
21 | fi
22 | cd $impl
23 | if [ -e build.sh ]; then
24 | if [ $# == 1 ]; then
25 | if [ $1 == 'clean' ]; then
26 | rm -f Makefile
27 | rm -f config.*
28 | ./build.sh distclean
29 | else
30 | ./build.sh $*
31 | fi
32 | else
33 | ./build.sh $*
34 | fi
35 | elif [ -e Makefile ] && [ Makefile.am -ot Makefile ]; then
36 | make $*
37 | elif [ -e reconf ]; then
38 | ./reconf && ./configure && make $*
39 | else
40 | echo "No build.sh found for $impl"
41 | fi
42 | retval=$?
43 | if [ $retval != '0' ]; then
44 | exit $retval
45 | fi
46 | cd -
47 | done
48 | fi
49 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/captivation.HackRFOne.spec:
--------------------------------------------------------------------------------
1 | # By default, the RPM will install to the standard REDHAWK SDR root location (/var/redhawk/sdr)
2 | # You can override this at install time using --prefix /new/sdr/root when invoking rpm (preferred method, if you must)
3 | %{!?_sdrroot: %global _sdrroot /var/redhawk/sdr}
4 | %define _prefix %{_sdrroot}
5 | Prefix: %{_prefix}
6 |
7 | # Point install paths to locations within our target SDR root
8 | %define _sysconfdir %{_prefix}/etc
9 | %define _localstatedir %{_prefix}/var
10 | %define _mandir %{_prefix}/man
11 | %define _infodir %{_prefix}/info
12 |
13 | Name: captivation.HackRFOne
14 | Version: 1.0.0
15 | Release: 1%{?dist}
16 | Summary: Device %{name}
17 |
18 | Group: REDHAWK/Devices
19 | License: None
20 | Source0: %{name}-%{version}.tar.gz
21 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
22 |
23 | BuildRequires: redhawk-devel >= 2.0
24 | Requires: redhawk >= 2.0
25 |
26 | BuildRequires: captivation.libhackrf-devel
27 | Requires: captivation.libhackrf
28 |
29 | # Interface requirements
30 | BuildRequires: frontendInterfaces >= 2.2 bulkioInterfaces >= 2.0
31 | Requires: frontendInterfaces >= 2.2 bulkioInterfaces >= 2.0
32 |
33 |
34 | %description
35 | Device %{name}
36 | * Commit: __REVISION__
37 | * Source Date/Time: __DATETIME__
38 |
39 |
40 | %prep
41 | %setup -q
42 |
43 |
44 | %build
45 | # Implementation cpp
46 | pushd cpp
47 | ./reconf
48 | %define _bindir %{_prefix}/dev/devices/captivation/HackRFOne/cpp
49 | %configure
50 | make %{?_smp_mflags}
51 | popd
52 |
53 |
54 | %install
55 | rm -rf $RPM_BUILD_ROOT
56 | # Implementation cpp
57 | pushd cpp
58 | %define _bindir %{_prefix}/dev/devices/captivation/HackRFOne/cpp
59 | make install DESTDIR=$RPM_BUILD_ROOT
60 | popd
61 |
62 |
63 | %clean
64 | rm -rf $RPM_BUILD_ROOT
65 |
66 |
67 | %files
68 | %defattr(-,redhawk,redhawk,-)
69 | %dir %{_sdrroot}/dev/devices/captivation
70 | %dir %{_sdrroot}/dev/devices/captivation/HackRFOne
71 | %{_prefix}/dev/devices/captivation/HackRFOne/HackRFOne.scd.xml
72 | %{_prefix}/dev/devices/captivation/HackRFOne/HackRFOne.prf.xml
73 | %{_prefix}/dev/devices/captivation/HackRFOne/HackRFOne.spd.xml
74 | %{_prefix}/dev/devices/captivation/HackRFOne/cpp
75 |
76 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/.gitignore:
--------------------------------------------------------------------------------
1 | HackRFOne
2 | *.o
3 | .deps/
4 | HackRFOne-HackRFOne_base.o
5 | HackRFOne-main.o
6 | HackRFOne-template_impl.o
7 | Makefile
8 | Makefile.in
9 | aclocal.m4
10 | autom4te.cache/
11 | config.*
12 | configure
13 | depcomp
14 | install-sh
15 | missing
16 |
17 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/.md5sums:
--------------------------------------------------------------------------------
1 | bc563dc002cd63b50fd4ee21253f1d98 HackRFOne.h
2 | ccd1449af068f17b42c0937bec34188f main.cpp
3 | 8bfcd22353c3a57fee561ad86ee2a56b reconf
4 | f90bcb77e881a6ea6c126aa5ee813fbb HackRFOne_base.h
5 | 771e7a2f20c76bc105ea60115a9ba4e1 HackRFOne.cpp
6 | 3794d396cf0a13810b91e7ae16e1bdf1 template_impl.cpp
7 | f80f85507224bfced26c68246c0ae7af HackRFOne_base.cpp
8 | e7f3eb8764e153ff98c318248d1bada2 configure.ac
9 | 02a7327e292c17a228bb4b71c121ec1d Makefile.am
10 | a2720ae19df058fd5002c30c4dd3de51 struct_props.h
11 | 3fb287826e814201ffee1673e7495faf Makefile.am.ide
12 | 2b2faa5cfc83438427491f4be5d6ee59 build.sh
13 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/HackRFConstants.h:
--------------------------------------------------------------------------------
1 | /*
2 | * HackRFConstants.h
3 | *
4 | * Created on: Nov 17, 2017
5 | * Author: daniel.barbalato
6 | */
7 |
8 | #ifndef HACKRFCONSTANTS_H_
9 | #define HACKRFCONSTANTS_H_
10 |
11 | #include
12 |
13 | namespace HackRFConstants {
14 |
15 | struct One {
16 | static const float DEFAULT_LNA_GAIN = 16.0;
17 | static const float DEFAULT_VGA_GAIN = 16.0;
18 |
19 | static const double MIN_RF_FREQ = 0.0;
20 | static const double MAX_RF_FREQ = 7250.0e6;
21 | static const double FILTER_BW_MIN = 1.75e6;
22 | static const double FILTER_BW_MAX = 28.0e6;
23 |
24 | static const double LNA_STEP_SIZE = 8.0;
25 | static const double RX_VGA_STEP_SIZE = 2.0;
26 | static const double TX_VGA_STEP_SIZE = 1.0;
27 |
28 | static const double FILTER_BW_VALUES[];
29 | static const double SAMPLE_RATE_VALUES[];
30 | static const double LNA_GAIN_VALUES[];
31 | static const double RX_VGA_GAIN_VALUES[];
32 | static const double TX_VGA_GAIN_VALUES[];
33 |
34 | static const std::vector ALLOWED_BW_FILTERS;
35 | static const std::vector ALLOWED_SAMPLE_RATES;
36 | static const std::vector ALLOWED_LNA_GAIN_VALUES;
37 | static const std::vector ALLOWED_RX_VGA_VALUES;
38 | static const std::vector ALLOWED_TX_VGA_VALUES;
39 | };
40 |
41 | const double One::FILTER_BW_VALUES[] = {1.75e6, 2.5e6, 3.5e6, 5.0e6, 5.5e6, 6.0e6, 7.0e6, 8.0e6,
42 | 9.0e6, 10.0e6, 12.0e6, 14.0e6, 15.0e6, 20.0e6, 24.0e6, 28.0e6};
43 | const double One::SAMPLE_RATE_VALUES[] = {4.0e6, 8.0e6, 10.0e6, 12.5e6, 16.0e6, 20.0e6};
44 | const double One::LNA_GAIN_VALUES[] = {0.0, 8.0, 16.0, 24.0, 32.0, 40.0};
45 | const double One::RX_VGA_GAIN_VALUES[] = { 0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0,
46 | 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0,
47 | 32.0, 34.0, 36.0, 38.0, 40.0, 42.0, 44.0, 46.0,
48 | 48.0, 50.0, 52.0, 54.0, 56.0, 58.0, 60.0, 62.0};
49 | const double One::TX_VGA_GAIN_VALUES[] = { 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
50 | 10.0, 11,0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0,
51 | 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0,
52 | 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0,
53 | 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0};
54 |
55 | const std::vector One::ALLOWED_BW_FILTERS = std::vector(FILTER_BW_VALUES, FILTER_BW_VALUES+16);
56 | const std::vector One::ALLOWED_SAMPLE_RATES = std::vector(SAMPLE_RATE_VALUES, SAMPLE_RATE_VALUES+6);
57 | const std::vector One::ALLOWED_LNA_GAIN_VALUES = std::vector(LNA_GAIN_VALUES, LNA_GAIN_VALUES+6);
58 | const std::vector One::ALLOWED_RX_VGA_VALUES = std::vector(RX_VGA_GAIN_VALUES, RX_VGA_GAIN_VALUES+32);
59 | const std::vector One::ALLOWED_TX_VGA_VALUES = std::vector(TX_VGA_GAIN_VALUES, TX_VGA_GAIN_VALUES+48);
60 |
61 | }; // End HackRFConstants namespace
62 |
63 | #endif /* HACKRFCONSTANTS_H_ */
64 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/HackRFOne.h:
--------------------------------------------------------------------------------
1 | #ifndef HACKRFONE_I_IMPL_H
2 | #define HACKRFONE_I_IMPL_H
3 |
4 | #include
5 |
6 | #include "HackRFOne_base.h"
7 |
8 | class HackRFOne_i : public HackRFOne_base
9 | {
10 | ENABLE_LOGGING
11 |
12 | public:
13 | HackRFOne_i(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl);
14 | HackRFOne_i(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, char *compDev);
15 | HackRFOne_i(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, CF::Properties capacities);
16 | HackRFOne_i(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, CF::Properties capacities, char *compDev);
17 | ~HackRFOne_i();
18 |
19 | void constructor();
20 |
21 | bool reset();
22 |
23 | bool resetDriver();
24 |
25 | void resetStream(frontend_tuner_status_struct_struct& fts);
26 |
27 | void addChannels(size_t num, const std::string& tunerType);
28 |
29 | int serviceFunction();
30 |
31 | int pushData();
32 |
33 | int hackrfRXCallback(hackrf_transfer* transfer);
34 |
35 | bool updateHackRFSampleRate(frontend_tuner_status_struct_struct &fts, double sampleRate, double tolerance);
36 |
37 | bool updateHackRFBandwidth(frontend_tuner_status_struct_struct &fts, double bandwidth, double tolerance);
38 |
39 | bool updateHackRFFrequency(frontend_tuner_status_struct_struct &fts, double freq, double tolerance);
40 |
41 | bool updateHackRFGainRX(frontend_tuner_status_struct_struct &fts, double gain, double tolerance);
42 |
43 | bool updateHackRFGainTX(frontend_tuner_status_struct_struct &fts, double gain, double tolerance);
44 |
45 | protected:
46 | std::string getTunerType(const std::string& allocation_id);
47 | bool getTunerDeviceControl(const std::string& allocation_id);
48 | std::string getTunerGroupId(const std::string& allocation_id);
49 | std::string getTunerRfFlowId(const std::string& allocation_id);
50 | double getTunerCenterFrequency(const std::string& allocation_id);
51 | void setTunerCenterFrequency(const std::string& allocation_id, double freq);
52 | double getTunerBandwidth(const std::string& allocation_id);
53 | void setTunerBandwidth(const std::string& allocation_id, double bw);
54 | bool getTunerAgcEnable(const std::string& allocation_id);
55 | void setTunerAgcEnable(const std::string& allocation_id, bool enable);
56 | float getTunerGain(const std::string& allocation_id);
57 | void setTunerGain(const std::string& allocation_id, float gain);
58 | long getTunerReferenceSource(const std::string& allocation_id);
59 | void setTunerReferenceSource(const std::string& allocation_id, long source);
60 | bool getTunerEnable(const std::string& allocation_id);
61 | void setTunerEnable(const std::string& allocation_id, bool enable);
62 | double getTunerOutputSampleRate(const std::string& allocation_id);
63 | void setTunerOutputSampleRate(const std::string& allocation_id, double sr);
64 | std::string get_rf_flow_id(const std::string& port_name);
65 | void set_rf_flow_id(const std::string& port_name, const std::string& id);
66 | frontend::RFInfoPkt get_rfinfo_pkt(const std::string& port_name);
67 | void set_rfinfo_pkt(const std::string& port_name, const frontend::RFInfoPkt& pkt);
68 |
69 | private:
70 |
71 | //! Pointer to the initialized HackRF device controller
72 | hackrf_device* _device;
73 |
74 | BULKIO::PrecisionUTCTime _timestamp;
75 |
76 | BULKIO::StreamSRI _currentSRI;
77 |
78 | bulkio::OutOctetStream _currentStream;
79 |
80 | std::vector< std::vector > _buffers;
81 |
82 | std::deque< std::vector* > _availableBuffers;
83 |
84 | std::deque< std::pair*, BULKIO::PrecisionUTCTime> > _filledBuffers;
85 |
86 | boost::mutex _availableLock;
87 |
88 | boost::mutex _filledLock;
89 |
90 | BULKIO::StreamSRI createSRI(std::string &stream_id, frontend_tuner_status_struct_struct &frontend_status, double collector_frequency = -1.0);
91 |
92 | std::string errorString(const std::string& message, int status);
93 |
94 | template
95 | bool withinBounds(T& value, T min, T max, double tolerance=0.0) {
96 | T delta = static_cast(value * (tolerance / 100.0));
97 | // Only adding tolerance-deltas to avoid negative unsigned types
98 | if (((value+delta) >= min) && (value <= (max+delta))) {
99 | value = std::max(std::min(value, max), min);
100 | return true;
101 | }
102 | return false;
103 | }
104 |
105 | template
106 | bool withinBounds(T& value, double tolerance, std::vector values) {
107 | // Find the nearest value in the set
108 | T closestValue = findNearest(value, values);
109 |
110 | // Perform closest-value checks using doubles (for std::fabs)
111 | double closestDouble = static_cast(closestValue);
112 | double valueDouble = static_cast(value);
113 | double maxDelta = valueDouble * (tolerance / 100.0);
114 |
115 | // Check if closest value is within tolerance
116 | if (std::fabs(closestDouble-valueDouble) >= maxDelta) {
117 | return false;
118 | }
119 |
120 | value = closestValue;
121 | return true;
122 | }
123 |
124 | template
125 | T1 findNearest(T1 value, std::vector vals) {
126 | assert(vals.empty() == false);
127 |
128 | // Only one value in set - That value is the closest
129 | if (vals.size() == 1) return vals[0];
130 |
131 | // Sort values for faster minimum detection
132 | std::sort(vals.begin(), vals.end());
133 |
134 | // Perform closest-value checks using doubles (for std::fabs)
135 | double doubleValue = static_cast(value);
136 |
137 | // Initial iterative parameters with the first
138 | T1 bestValue = static_cast(vals[0]);
139 | double lowestDelta = std::fabs(doubleValue - bestValue);
140 |
141 | // Iterate through remaining data points to find nearest
142 | for (size_t i = 1; i < vals.size(); i++) {
143 | double v = static_cast(vals[i]);
144 | double delta = std::fabs(doubleValue - v);
145 | if (delta < lowestDelta) {
146 | bestValue = static_cast(vals[i]);
147 | lowestDelta = delta;
148 | } else {
149 | // Since the values are sorted, any increase in error means
150 | // the closest value was found on the previous iteration
151 | break;
152 | }
153 | }
154 | return bestValue;
155 | }
156 |
157 |
158 | ////////////////////////////////////////
159 | // Required device specific functions // -- to be implemented by device developer
160 | ////////////////////////////////////////
161 |
162 | // these are pure virtual, must be implemented here
163 | void deviceEnable(frontend_tuner_status_struct_struct &fts, size_t tuner_id);
164 | void deviceDisable(frontend_tuner_status_struct_struct &fts, size_t tuner_id);
165 | bool deviceSetTuning(const frontend::frontend_tuner_allocation_struct &request, frontend_tuner_status_struct_struct &fts, size_t tuner_id);
166 | bool deviceDeleteTuning(frontend_tuner_status_struct_struct &fts, size_t tuner_id);
167 |
168 | };
169 |
170 | #endif // HACKRFONE_I_IMPL_H
171 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/HackRFOne_base.cpp:
--------------------------------------------------------------------------------
1 | #include "HackRFOne_base.h"
2 |
3 | /*******************************************************************************************
4 |
5 | AUTO-GENERATED CODE. DO NOT MODIFY
6 |
7 | The following class functions are for the base class for the device class. To
8 | customize any of these functions, do not modify them here. Instead, overload them
9 | on the child class
10 |
11 | ******************************************************************************************/
12 |
13 | HackRFOne_base::HackRFOne_base(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl) :
14 | frontend::FrontendTunerDevice(devMgr_ior, id, lbl, sftwrPrfl),
15 | ThreadedComponent()
16 | {
17 | construct();
18 | }
19 |
20 | HackRFOne_base::HackRFOne_base(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, char *compDev) :
21 | frontend::FrontendTunerDevice(devMgr_ior, id, lbl, sftwrPrfl, compDev),
22 | ThreadedComponent()
23 | {
24 | construct();
25 | }
26 |
27 | HackRFOne_base::HackRFOne_base(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, CF::Properties capacities) :
28 | frontend::FrontendTunerDevice(devMgr_ior, id, lbl, sftwrPrfl, capacities),
29 | ThreadedComponent()
30 | {
31 | construct();
32 | }
33 |
34 | HackRFOne_base::HackRFOne_base(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, CF::Properties capacities, char *compDev) :
35 | frontend::FrontendTunerDevice(devMgr_ior, id, lbl, sftwrPrfl, capacities, compDev),
36 | ThreadedComponent()
37 | {
38 | construct();
39 | }
40 |
41 | HackRFOne_base::~HackRFOne_base()
42 | {
43 | delete RFInfo_in;
44 | RFInfo_in = 0;
45 | delete DigitalTuner_in;
46 | DigitalTuner_in = 0;
47 | delete dataOctetTX_in;
48 | dataOctetTX_in = 0;
49 | delete dataOctet_out;
50 | dataOctet_out = 0;
51 | delete RFInfoTX_out;
52 | RFInfoTX_out = 0;
53 | }
54 |
55 | void HackRFOne_base::construct()
56 | {
57 | loadProperties();
58 |
59 | RFInfo_in = new frontend::InRFInfoPort("RFInfo_in", this);
60 | addPort("RFInfo_in", RFInfo_in);
61 | DigitalTuner_in = new frontend::InDigitalTunerPort("DigitalTuner_in", this);
62 | addPort("DigitalTuner_in", DigitalTuner_in);
63 | dataOctetTX_in = new bulkio::InOctetPort("dataOctetTX_in");
64 | addPort("dataOctetTX_in", dataOctetTX_in);
65 | dataOctet_out = new bulkio::OutOctetPort("dataOctet_out");
66 | addPort("dataOctet_out", dataOctet_out);
67 | RFInfoTX_out = new frontend::OutRFInfoPort("RFInfoTX_out");
68 | addPort("RFInfoTX_out", RFInfoTX_out);
69 |
70 | this->addPropertyListener(connectionTable, this, &HackRFOne_base::connectionTableChanged);
71 |
72 | }
73 |
74 | /*******************************************************************************************
75 | Framework-level functions
76 | These functions are generally called by the framework to perform housekeeping.
77 | *******************************************************************************************/
78 | void HackRFOne_base::start() throw (CORBA::SystemException, CF::Resource::StartError)
79 | {
80 | frontend::FrontendTunerDevice::start();
81 | ThreadedComponent::startThread();
82 | }
83 |
84 | void HackRFOne_base::stop() throw (CORBA::SystemException, CF::Resource::StopError)
85 | {
86 | frontend::FrontendTunerDevice::stop();
87 | if (!ThreadedComponent::stopThread()) {
88 | throw CF::Resource::StopError(CF::CF_NOTSET, "Processing thread did not die");
89 | }
90 | }
91 |
92 | void HackRFOne_base::releaseObject() throw (CORBA::SystemException, CF::LifeCycle::ReleaseError)
93 | {
94 | // This function clears the device running condition so main shuts down everything
95 | try {
96 | stop();
97 | } catch (CF::Resource::StopError& ex) {
98 | // TODO - this should probably be logged instead of ignored
99 | }
100 |
101 | frontend::FrontendTunerDevice::releaseObject();
102 | }
103 |
104 | void HackRFOne_base::connectionTableChanged(const std::vector* oldValue, const std::vector* newValue)
105 | {
106 | dataOctet_out->updateConnectionFilter(*newValue);
107 | }
108 |
109 | void HackRFOne_base::loadProperties()
110 | {
111 | device_kind = "FRONTEND::TUNER";
112 | frontend_listener_allocation = frontend::frontend_listener_allocation_struct();
113 | frontend_tuner_allocation = frontend::frontend_tuner_allocation_struct();
114 | addProperty(connectionTable,
115 | "connectionTable",
116 | "",
117 | "readonly",
118 | "",
119 | "external",
120 | "property");
121 |
122 | }
123 |
124 | /* This sets the number of entries in the frontend_tuner_status struct sequence property
125 | * as well as the tuner_allocation_ids vector. Call this function during initialization
126 | */
127 | void HackRFOne_base::setNumChannels(size_t num)
128 | {
129 | this->setNumChannels(num, "RX_DIGITIZER");
130 | }
131 | /* This sets the number of entries in the frontend_tuner_status struct sequence property
132 | * as well as the tuner_allocation_ids vector. Call this function during initialization
133 | */
134 |
135 | void HackRFOne_base::setNumChannels(size_t num, std::string tuner_type)
136 | {
137 | frontend_tuner_status.clear();
138 | frontend_tuner_status.resize(num);
139 | tuner_allocation_ids.clear();
140 | tuner_allocation_ids.resize(num);
141 | for (std::vector::iterator iter=frontend_tuner_status.begin(); iter!=frontend_tuner_status.end(); iter++) {
142 | iter->enabled = false;
143 | iter->tuner_type = tuner_type;
144 | }
145 | }
146 |
147 | void HackRFOne_base::frontendTunerStatusChanged(const std::vector* oldValue, const std::vector* newValue)
148 | {
149 | this->tuner_allocation_ids.resize(this->frontend_tuner_status.size());
150 | }
151 |
152 | CF::Properties* HackRFOne_base::getTunerStatus(const std::string& allocation_id)
153 | {
154 | CF::Properties* tmpVal = new CF::Properties();
155 | long tuner_id = getTunerMapping(allocation_id);
156 | if (tuner_id < 0)
157 | throw FRONTEND::FrontendException(("ERROR: ID: " + std::string(allocation_id) + " IS NOT ASSOCIATED WITH ANY TUNER!").c_str());
158 | CORBA::Any prop;
159 | prop <<= *(static_cast(&this->frontend_tuner_status[tuner_id]));
160 | prop >>= tmpVal;
161 |
162 | CF::Properties_var tmp = new CF::Properties(*tmpVal);
163 | return tmp._retn();
164 | }
165 |
166 | void HackRFOne_base::assignListener(const std::string& listen_alloc_id, const std::string& allocation_id)
167 | {
168 | // find control allocation_id
169 | std::string existing_alloc_id = allocation_id;
170 | std::map::iterator existing_listener;
171 | while ((existing_listener=listeners.find(existing_alloc_id)) != listeners.end())
172 | existing_alloc_id = existing_listener->second;
173 | listeners[listen_alloc_id] = existing_alloc_id;
174 |
175 | std::vector old_table = connectionTable;
176 | std::vector new_entries;
177 | for (std::vector::iterator entry=connectionTable.begin();entry!=connectionTable.end();entry++) {
178 | if (entry->connection_id == existing_alloc_id) {
179 | connection_descriptor_struct tmp;
180 | tmp.connection_id = listen_alloc_id;
181 | tmp.stream_id = entry->stream_id;
182 | tmp.port_name = entry->port_name;
183 | new_entries.push_back(tmp);
184 | }
185 | }
186 | for (std::vector::iterator new_entry=new_entries.begin();new_entry!=new_entries.end();new_entry++) {
187 | bool foundEntry = false;
188 | for (std::vector::iterator entry=connectionTable.begin();entry!=connectionTable.end();entry++) {
189 | if (entry == new_entry) {
190 | foundEntry = true;
191 | break;
192 | }
193 | }
194 | if (!foundEntry) {
195 | connectionTable.push_back(*new_entry);
196 | }
197 | }
198 | connectionTableChanged(&old_table, &connectionTable);
199 | }
200 |
201 | void HackRFOne_base::removeListener(const std::string& listen_alloc_id)
202 | {
203 | if (listeners.find(listen_alloc_id) != listeners.end()) {
204 | listeners.erase(listen_alloc_id);
205 | }
206 | std::vector old_table = this->connectionTable;
207 | std::vector::iterator entry = this->connectionTable.begin();
208 | while (entry != this->connectionTable.end()) {
209 | if (entry->connection_id == listen_alloc_id) {
210 | entry = this->connectionTable.erase(entry);
211 | } else {
212 | entry++;
213 | }
214 | }
215 | ExtendedCF::UsesConnectionSequence_var tmp;
216 | // Check to see if port "dataOctet_out" has a connection for this listener
217 | tmp = this->dataOctet_out->connections();
218 | for (unsigned int i=0; ilength(); i++) {
219 | const char* connection_id = tmp[i].connectionId;
220 | if (connection_id == listen_alloc_id) {
221 | this->dataOctet_out->disconnectPort(connection_id);
222 | }
223 | }
224 | this->connectionTableChanged(&old_table, &this->connectionTable);
225 | }
226 |
227 | void HackRFOne_base::removeAllocationIdRouting(const size_t tuner_id) {
228 | std::string allocation_id = getControlAllocationId(tuner_id);
229 | std::vector old_table = this->connectionTable;
230 | std::vector::iterator itr = this->connectionTable.begin();
231 | while (itr != this->connectionTable.end()) {
232 | if (itr->connection_id == allocation_id) {
233 | itr = this->connectionTable.erase(itr);
234 | continue;
235 | }
236 | itr++;
237 | }
238 | for (std::map::iterator listener=listeners.begin();listener!=listeners.end();listener++) {
239 | if (listener->second == allocation_id) {
240 | std::vector::iterator itr = this->connectionTable.begin();
241 | while (itr != this->connectionTable.end()) {
242 | if (itr->connection_id == listener->first) {
243 | itr = this->connectionTable.erase(itr);
244 | continue;
245 | }
246 | itr++;
247 | }
248 | }
249 | }
250 | this->connectionTableChanged(&old_table, &this->connectionTable);
251 | }
252 |
253 | void HackRFOne_base::removeStreamIdRouting(const std::string stream_id, const std::string allocation_id) {
254 | std::vector old_table = this->connectionTable;
255 | std::vector::iterator itr = this->connectionTable.begin();
256 | while (itr != this->connectionTable.end()) {
257 | if (allocation_id == "") {
258 | if (itr->stream_id == stream_id) {
259 | itr = this->connectionTable.erase(itr);
260 | continue;
261 | }
262 | } else {
263 | if ((itr->stream_id == stream_id) and (itr->connection_id == allocation_id)) {
264 | itr = this->connectionTable.erase(itr);
265 | continue;
266 | }
267 | }
268 | itr++;
269 | }
270 | for (std::map::iterator listener=listeners.begin();listener!=listeners.end();listener++) {
271 | if (listener->second == allocation_id) {
272 | std::vector::iterator itr = this->connectionTable.begin();
273 | while (itr != this->connectionTable.end()) {
274 | if ((itr->connection_id == listener->first) and (itr->stream_id == stream_id)) {
275 | itr = this->connectionTable.erase(itr);
276 | continue;
277 | }
278 | itr++;
279 | }
280 | }
281 | }
282 | this->connectionTableChanged(&old_table, &this->connectionTable);
283 | }
284 |
285 | void HackRFOne_base::matchAllocationIdToStreamId(const std::string allocation_id, const std::string stream_id, const std::string port_name) {
286 | if (port_name != "") {
287 | for (std::vector::iterator prop_itr = this->connectionTable.begin(); prop_itr!=this->connectionTable.end(); prop_itr++) {
288 | if ((*prop_itr).port_name != port_name)
289 | continue;
290 | if ((*prop_itr).stream_id != stream_id)
291 | continue;
292 | if ((*prop_itr).connection_id != allocation_id)
293 | continue;
294 | // all three match. This is a repeat
295 | return;
296 | }
297 | std::vector old_table = this->connectionTable;
298 | connection_descriptor_struct tmp;
299 | tmp.connection_id = allocation_id;
300 | tmp.port_name = port_name;
301 | tmp.stream_id = stream_id;
302 | this->connectionTable.push_back(tmp);
303 | this->connectionTableChanged(&old_table, &this->connectionTable);
304 | return;
305 | }
306 | std::vector old_table = this->connectionTable;
307 | connection_descriptor_struct tmp;
308 | tmp.connection_id = allocation_id;
309 | tmp.port_name = "dataOctet_out";
310 | tmp.stream_id = stream_id;
311 | this->connectionTable.push_back(tmp);
312 | this->connectionTableChanged(&old_table, &this->connectionTable);
313 | }
314 |
315 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/HackRFOne_base.h:
--------------------------------------------------------------------------------
1 | #ifndef HACKRFONE_BASE_IMPL_BASE_H
2 | #define HACKRFONE_BASE_IMPL_BASE_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include
9 | #include
10 | #include "struct_props.h"
11 |
12 | #define BOOL_VALUE_HERE 0
13 |
14 | class HackRFOne_base : public frontend::FrontendTunerDevice, public virtual frontend::digital_tuner_delegation, public virtual frontend::rfinfo_delegation, protected ThreadedComponent
15 | {
16 | public:
17 | HackRFOne_base(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl);
18 | HackRFOne_base(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, char *compDev);
19 | HackRFOne_base(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, CF::Properties capacities);
20 | HackRFOne_base(char *devMgr_ior, char *id, char *lbl, char *sftwrPrfl, CF::Properties capacities, char *compDev);
21 | ~HackRFOne_base();
22 |
23 | void start() throw (CF::Resource::StartError, CORBA::SystemException);
24 |
25 | void stop() throw (CF::Resource::StopError, CORBA::SystemException);
26 |
27 | void releaseObject() throw (CF::LifeCycle::ReleaseError, CORBA::SystemException);
28 |
29 | void loadProperties();
30 | void matchAllocationIdToStreamId(const std::string allocation_id, const std::string stream_id, const std::string port_name="");
31 | void removeAllocationIdRouting(const size_t tuner_id);
32 | void removeStreamIdRouting(const std::string stream_id, const std::string allocation_id="");
33 |
34 | virtual CF::Properties* getTunerStatus(const std::string& allocation_id);
35 | virtual void assignListener(const std::string& listen_alloc_id, const std::string& allocation_id);
36 | virtual void removeListener(const std::string& listen_alloc_id);
37 | void frontendTunerStatusChanged(const std::vector* oldValue, const std::vector* newValue);
38 |
39 | protected:
40 | void connectionTableChanged(const std::vector* oldValue, const std::vector* newValue);
41 |
42 | // Member variables exposed as properties
43 | /// Property: connectionTable
44 | std::vector connectionTable;
45 |
46 | // Ports
47 | /// Port: RFInfo_in
48 | frontend::InRFInfoPort *RFInfo_in;
49 | /// Port: DigitalTuner_in
50 | frontend::InDigitalTunerPort *DigitalTuner_in;
51 | /// Port: dataOctetTX_in
52 | bulkio::InOctetPort *dataOctetTX_in;
53 | /// Port: dataOctet_out
54 | bulkio::OutOctetPort *dataOctet_out;
55 | /// Port: RFInfoTX_out
56 | frontend::OutRFInfoPort *RFInfoTX_out;
57 |
58 | std::map listeners;
59 |
60 | virtual void setNumChannels(size_t num);
61 | virtual void setNumChannels(size_t num, std::string tuner_type);
62 |
63 | private:
64 | void construct();
65 | };
66 | #endif // HACKRFONE_BASE_IMPL_BASE_H
67 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/Makefile.am:
--------------------------------------------------------------------------------
1 | ossieName = captivation.HackRFOne
2 | bindir = $(prefix)/dev/devices/captivation/HackRFOne/cpp/
3 | bin_PROGRAMS = HackRFOne
4 |
5 | xmldir = $(prefix)/dev/devices/captivation/HackRFOne/
6 | dist_xml_DATA = ../HackRFOne.scd.xml ../HackRFOne.prf.xml ../HackRFOne.spd.xml
7 | ACLOCAL_AMFLAGS = -I m4 -I${OSSIEHOME}/share/aclocal/ossie
8 | AUTOMAKE_OPTIONS = subdir-objects
9 |
10 |
11 |
12 | distclean-local:
13 | rm -rf m4
14 | rm -f config.*
15 | rm -rf autom4te.cache
16 | rm -f acinclude.m4
17 | rm -f aclocal.m4
18 | rm -f configure
19 | rm -f depcomp
20 | rm -f install-sh
21 | rm -f ltmain.sh
22 | rm -f Makefile.in
23 | rm -f missing
24 | rm -rf .deps
25 |
26 |
27 | # Sources, libraries and library directories are auto-included from a file
28 | # generated by the REDHAWK IDE. You can remove/modify the following lines if
29 | # you wish to manually control these options.
30 | include $(srcdir)/Makefile.am.ide
31 | HackRFOne_SOURCES = $(redhawk_SOURCES_auto)
32 | HackRFOne_LDADD = $(SOFTPKG_LIBS) $(PROJECTDEPS_LIBS) $(BOOST_LDFLAGS) $(BOOST_THREAD_LIB) $(BOOST_REGEX_LIB) $(BOOST_SYSTEM_LIB) $(INTERFACEDEPS_LIBS) $(redhawk_LDADD_auto)
33 | HackRFOne_CXXFLAGS = -Wall $(SOFTPKG_CFLAGS) $(PROJECTDEPS_CFLAGS) $(BOOST_CPPFLAGS) $(INTERFACEDEPS_CFLAGS) $(redhawk_INCLUDES_auto)
34 | HackRFOne_LDFLAGS = -Wall $(redhawk_LDFLAGS_auto)
35 |
36 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/Makefile.am.ide:
--------------------------------------------------------------------------------
1 | # This file is regularly auto-generated by the REDHAWK IDE. Do not modify!
2 | # Files can be excluded by right-clicking on the file in the project explorer
3 | # and choosing Resource Configurations -> Exclude from build. Re-include files
4 | # by opening the Properties dialog of your project and choosing C/C++ Build ->
5 | # Tool Chain Editor, and un-checking "Exclude resource from build "
6 | redhawk_SOURCES_auto = HackRFConstants.h
7 | redhawk_SOURCES_auto += HackRFOne.cpp
8 | redhawk_SOURCES_auto += HackRFOne.h
9 | redhawk_SOURCES_auto += HackRFOne_base.cpp
10 | redhawk_SOURCES_auto += HackRFOne_base.h
11 | redhawk_SOURCES_auto += main.cpp
12 | redhawk_SOURCES_auto += struct_props.h
13 | redhawk_SOURCES_auto += template_impl.cpp
14 | redhawk_INCLUDES_auto = -I/var/redhawk/sdr/dom/deps/captivation/libhackrf/include
15 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Create the Makefile if necessary
4 | if [ ! -e Makefile ]; then
5 | ./reconf
6 | ./configure
7 | fi
8 |
9 | if [ $# == 1 ]; then
10 | if [ $1 == 'clean' ]; then
11 | make distclean
12 | else
13 | make -j $*
14 | fi
15 | else
16 | make -j $*
17 | fi
18 |
19 | exit $?
20 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/configure.ac:
--------------------------------------------------------------------------------
1 | AC_INIT(captivation.HackRFOne, 1.0.0)
2 | AM_INIT_AUTOMAKE([nostdinc foreign])
3 | AC_CONFIG_MACRO_DIR([m4])
4 |
5 | AC_PROG_CC
6 | AC_PROG_CXX
7 | AC_PROG_INSTALL
8 |
9 | AC_CORBA_ORB
10 | OSSIE_CHECK_OSSIE
11 | OSSIE_SDRROOT_AS_PREFIX
12 |
13 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
14 |
15 | # Dependencies
16 | PKG_CHECK_MODULES([PROJECTDEPS], [ossie >= 2.0 omniORB4 >= 4.1.0])
17 | PKG_CHECK_MODULES([INTERFACEDEPS], [frontend >= 2.2, bulkio >= 2.0])
18 | RH_SOFTPKG_CXX([/deps/captivation/libhackrf/libhackrf.spd.xml])
19 | OSSIE_ENABLE_LOG4CXX
20 | AX_BOOST_BASE([1.41])
21 | AX_BOOST_SYSTEM
22 | AX_BOOST_THREAD
23 | AX_BOOST_REGEX
24 |
25 | AC_CONFIG_FILES([Makefile])
26 | AC_OUTPUT
27 |
28 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include "ossie/ossieSupport.h"
3 |
4 | #include "HackRFOne.h"
5 |
6 | HackRFOne_i *devicePtr;
7 |
8 | void signal_catcher(int sig)
9 | {
10 | // IMPORTANT Don't call exit(...) in this function
11 | // issue all CORBA calls that you need for cleanup here before calling ORB shutdown
12 | if (devicePtr) {
13 | devicePtr->halt();
14 | }
15 | }
16 | int main(int argc, char* argv[])
17 | {
18 | struct sigaction sa;
19 | sa.sa_handler = signal_catcher;
20 | sa.sa_flags = 0;
21 | devicePtr = 0;
22 |
23 | Device_impl::start_device(&devicePtr, sa, argc, argv);
24 | return 0;
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/reconf:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | rm -f config.cache
4 | [ -d m4 ] || mkdir m4
5 | autoreconf -i
6 |
7 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/struct_props.h:
--------------------------------------------------------------------------------
1 | #ifndef STRUCTPROPS_H
2 | #define STRUCTPROPS_H
3 |
4 | /*******************************************************************************************
5 |
6 | AUTO-GENERATED CODE. DO NOT MODIFY
7 |
8 | *******************************************************************************************/
9 |
10 | #include
11 | #include
12 | #include
13 | #include
14 | typedef bulkio::connection_descriptor_struct connection_descriptor_struct;
15 |
16 | #include
17 |
18 | struct frontend_tuner_status_struct_struct : public frontend::default_frontend_tuner_status_struct_struct {
19 | frontend_tuner_status_struct_struct () : frontend::default_frontend_tuner_status_struct_struct()
20 | {
21 | };
22 |
23 | static std::string getId() {
24 | return std::string("FRONTEND::tuner_status_struct");
25 | };
26 |
27 | std::string available_bandwidth;
28 | std::string available_frequency;
29 | std::string available_gain;
30 | std::string available_sample_rate;
31 | double gain;
32 | bool scan_mode_enabled;
33 | bool supports_scan;
34 | };
35 |
36 | inline bool operator>>= (const CORBA::Any& a, frontend_tuner_status_struct_struct& s) {
37 | CF::Properties* temp;
38 | if (!(a >>= temp)) return false;
39 | const redhawk::PropertyMap& props = redhawk::PropertyMap::cast(*temp);
40 | if (props.contains("FRONTEND::tuner_status::allocation_id_csv")) {
41 | if (!(props["FRONTEND::tuner_status::allocation_id_csv"] >>= s.allocation_id_csv)) return false;
42 | }
43 | if (props.contains("FRONTEND::tuner_status::available_bandwidth")) {
44 | if (!(props["FRONTEND::tuner_status::available_bandwidth"] >>= s.available_bandwidth)) return false;
45 | }
46 | if (props.contains("FRONTEND::tuner_status::available_frequency")) {
47 | if (!(props["FRONTEND::tuner_status::available_frequency"] >>= s.available_frequency)) return false;
48 | }
49 | if (props.contains("FRONTEND::tuner_status::available_gain")) {
50 | if (!(props["FRONTEND::tuner_status::available_gain"] >>= s.available_gain)) return false;
51 | }
52 | if (props.contains("FRONTEND::tuner_status::available_sample_rate")) {
53 | if (!(props["FRONTEND::tuner_status::available_sample_rate"] >>= s.available_sample_rate)) return false;
54 | }
55 | if (props.contains("FRONTEND::tuner_status::bandwidth")) {
56 | if (!(props["FRONTEND::tuner_status::bandwidth"] >>= s.bandwidth)) return false;
57 | }
58 | if (props.contains("FRONTEND::tuner_status::center_frequency")) {
59 | if (!(props["FRONTEND::tuner_status::center_frequency"] >>= s.center_frequency)) return false;
60 | }
61 | if (props.contains("FRONTEND::tuner_status::enabled")) {
62 | if (!(props["FRONTEND::tuner_status::enabled"] >>= s.enabled)) return false;
63 | }
64 | if (props.contains("FRONTEND::tuner_status::gain")) {
65 | if (!(props["FRONTEND::tuner_status::gain"] >>= s.gain)) return false;
66 | }
67 | if (props.contains("FRONTEND::tuner_status::group_id")) {
68 | if (!(props["FRONTEND::tuner_status::group_id"] >>= s.group_id)) return false;
69 | }
70 | if (props.contains("FRONTEND::tuner_status::rf_flow_id")) {
71 | if (!(props["FRONTEND::tuner_status::rf_flow_id"] >>= s.rf_flow_id)) return false;
72 | }
73 | if (props.contains("FRONTEND::tuner_status::sample_rate")) {
74 | if (!(props["FRONTEND::tuner_status::sample_rate"] >>= s.sample_rate)) return false;
75 | }
76 | if (props.contains("FRONTEND::tuner_status::scan_mode_enabled")) {
77 | if (!(props["FRONTEND::tuner_status::scan_mode_enabled"] >>= s.scan_mode_enabled)) return false;
78 | }
79 | if (props.contains("FRONTEND::tuner_status::supports_scan")) {
80 | if (!(props["FRONTEND::tuner_status::supports_scan"] >>= s.supports_scan)) return false;
81 | }
82 | if (props.contains("FRONTEND::tuner_status::tuner_type")) {
83 | if (!(props["FRONTEND::tuner_status::tuner_type"] >>= s.tuner_type)) return false;
84 | }
85 | return true;
86 | }
87 |
88 | inline void operator<<= (CORBA::Any& a, const frontend_tuner_status_struct_struct& s) {
89 | redhawk::PropertyMap props;
90 |
91 | props["FRONTEND::tuner_status::allocation_id_csv"] = s.allocation_id_csv;
92 |
93 | props["FRONTEND::tuner_status::available_bandwidth"] = s.available_bandwidth;
94 |
95 | props["FRONTEND::tuner_status::available_frequency"] = s.available_frequency;
96 |
97 | props["FRONTEND::tuner_status::available_gain"] = s.available_gain;
98 |
99 | props["FRONTEND::tuner_status::available_sample_rate"] = s.available_sample_rate;
100 |
101 | props["FRONTEND::tuner_status::bandwidth"] = s.bandwidth;
102 |
103 | props["FRONTEND::tuner_status::center_frequency"] = s.center_frequency;
104 |
105 | props["FRONTEND::tuner_status::enabled"] = s.enabled;
106 |
107 | props["FRONTEND::tuner_status::gain"] = s.gain;
108 |
109 | props["FRONTEND::tuner_status::group_id"] = s.group_id;
110 |
111 | props["FRONTEND::tuner_status::rf_flow_id"] = s.rf_flow_id;
112 |
113 | props["FRONTEND::tuner_status::sample_rate"] = s.sample_rate;
114 |
115 | props["FRONTEND::tuner_status::scan_mode_enabled"] = s.scan_mode_enabled;
116 |
117 | props["FRONTEND::tuner_status::supports_scan"] = s.supports_scan;
118 |
119 | props["FRONTEND::tuner_status::tuner_type"] = s.tuner_type;
120 | a <<= props;
121 | }
122 |
123 | inline bool operator== (const frontend_tuner_status_struct_struct& s1, const frontend_tuner_status_struct_struct& s2) {
124 | if (s1.allocation_id_csv!=s2.allocation_id_csv)
125 | return false;
126 | if (s1.available_bandwidth!=s2.available_bandwidth)
127 | return false;
128 | if (s1.available_frequency!=s2.available_frequency)
129 | return false;
130 | if (s1.available_gain!=s2.available_gain)
131 | return false;
132 | if (s1.available_sample_rate!=s2.available_sample_rate)
133 | return false;
134 | if (s1.bandwidth!=s2.bandwidth)
135 | return false;
136 | if (s1.center_frequency!=s2.center_frequency)
137 | return false;
138 | if (s1.enabled!=s2.enabled)
139 | return false;
140 | if (s1.gain!=s2.gain)
141 | return false;
142 | if (s1.group_id!=s2.group_id)
143 | return false;
144 | if (s1.rf_flow_id!=s2.rf_flow_id)
145 | return false;
146 | if (s1.sample_rate!=s2.sample_rate)
147 | return false;
148 | if (s1.scan_mode_enabled!=s2.scan_mode_enabled)
149 | return false;
150 | if (s1.supports_scan!=s2.supports_scan)
151 | return false;
152 | if (s1.tuner_type!=s2.tuner_type)
153 | return false;
154 | return true;
155 | }
156 |
157 | inline bool operator!= (const frontend_tuner_status_struct_struct& s1, const frontend_tuner_status_struct_struct& s2) {
158 | return !(s1==s2);
159 | }
160 |
161 | #endif // STRUCTPROPS_H
162 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/cpp/template_impl.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * necessary to allow FrontendTunerDevice template class to be split
3 | * into separate header and implementation files (.h and .cpp)
4 | */
5 |
6 | #include "struct_props.h"
7 | #include
8 |
9 | template class frontend::FrontendTunerDevice;
10 |
11 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/tests/.md5sums:
--------------------------------------------------------------------------------
1 | f6381b5e063f45c217dd79e1a00b32c0 test_HackRFOne.py
2 |
--------------------------------------------------------------------------------
/sdr/devices/captivation.HackRFOne/tests/test_HackRFOne.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import ossie.utils.testing
4 | from ossie.utils import sb
5 |
6 | class DeviceTests(ossie.utils.testing.RHTestCase):
7 | # Path to the SPD file, relative to this file. This must be set in order to
8 | # launch the device.
9 | SPD_FILE = '../HackRFOne.spd.xml'
10 |
11 | # setUp is run before every function preceded by "test" is executed
12 | # tearDown is run after every function preceded by "test" is executed
13 |
14 | # self.comp is a device using the sandbox API
15 | # to create a data source, the package sb contains data sources like DataSource or FileSource
16 | # to create a data sink, there are sinks like DataSink and FileSink
17 | # to connect the component to get data from a file, process it, and write the output to a file, use the following syntax:
18 | # src = sb.FileSource('myfile.dat')
19 | # snk = sb.DataSink()
20 | # src.connect(self.comp)
21 | # self.comp.connect(snk)
22 | # sb.start()
23 | #
24 | # components/sources/sinks need to be started. Individual components or elements can be started
25 | # src.start()
26 | # self.comp.start()
27 | #
28 | # every component/elements in the sandbox can be started
29 | # sb.start()
30 |
31 | def setUp(self):
32 | # Launch the device, using the selected implementation
33 | self.comp = sb.launch(self.spd_file, impl=self.impl)
34 |
35 | def tearDown(self):
36 | # Clean up all sandbox artifacts created during test
37 | sb.release()
38 |
39 | def testBasicBehavior(self):
40 | #######################################################################
41 | # Make sure start and stop can be called without throwing exceptions
42 | self.comp.start()
43 | self.comp.stop()
44 |
45 | if __name__ == "__main__":
46 | ossie.utils.testing.main() # By default tests all implementations
47 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/.cproject:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/.libhackrf.wavedev:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/.md5sums:
--------------------------------------------------------------------------------
1 | 9dab84201e28fddf011cf3756adc2651 captivation.libhackrf.spec
2 | 2964ca559ca969aa1bca66658c3361c4 build.sh
3 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | captivation.libhackrf
4 |
5 |
6 |
7 |
8 |
9 | gov.redhawk.ide.codegen.jet.cplusplus.builder
10 |
11 |
12 |
13 |
14 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
15 | clean,full,incremental,
16 |
17 |
18 |
19 |
20 | gov.redhawk.ide.builders.scaproject
21 |
22 |
23 |
24 |
25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
26 | full,incremental,
27 |
28 |
29 |
30 |
31 |
32 | gov.redhawk.ide.natures.scaproject
33 | org.python.pydev.pythonNature
34 | gov.redhawk.ide.natures.sca.component
35 | org.eclipse.cdt.core.cnature
36 | org.eclipse.cdt.core.ccnature
37 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
38 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
39 |
40 |
41 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/.pydevproject:
--------------------------------------------------------------------------------
1 |
2 |
3 | Default
4 | python 2.7
5 |
6 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/.settings/gov.redhawk.ide.sdr.ui.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | useBuild.sh=true
3 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/.settings/language.settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/.settings/org.eclipse.cdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | environment/project/cdt.managedbuild.config.gnu.exe.debug.407461852/OSSIEHOME/delimiter=\:
3 | environment/project/cdt.managedbuild.config.gnu.exe.debug.407461852/OSSIEHOME/operation=replace
4 | environment/project/cdt.managedbuild.config.gnu.exe.debug.407461852/OSSIEHOME/value=${OssieHome}
5 | environment/project/cdt.managedbuild.config.gnu.exe.debug.407461852/V/delimiter=\:
6 | environment/project/cdt.managedbuild.config.gnu.exe.debug.407461852/V/operation=replace
7 | environment/project/cdt.managedbuild.config.gnu.exe.debug.407461852/V/value=1
8 | environment/project/cdt.managedbuild.config.gnu.exe.debug.407461852/append=true
9 | environment/project/cdt.managedbuild.config.gnu.exe.debug.407461852/appendContributed=true
10 | environment/project/cdt.managedbuild.config.gnu.exe.release.1491686476/OSSIEHOME/delimiter=\:
11 | environment/project/cdt.managedbuild.config.gnu.exe.release.1491686476/OSSIEHOME/operation=replace
12 | environment/project/cdt.managedbuild.config.gnu.exe.release.1491686476/OSSIEHOME/value=${OssieHome}
13 | environment/project/cdt.managedbuild.config.gnu.exe.release.1491686476/V/delimiter=\:
14 | environment/project/cdt.managedbuild.config.gnu.exe.release.1491686476/V/operation=replace
15 | environment/project/cdt.managedbuild.config.gnu.exe.release.1491686476/V/value=1
16 | environment/project/cdt.managedbuild.config.gnu.exe.release.1491686476/append=true
17 | environment/project/cdt.managedbuild.config.gnu.exe.release.1491686476/appendContributed=true
18 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ "$1" = "rpm" ]; then
4 | # A very simplistic RPM build scenario
5 | if [ -e captivation.libhackrf.spec ]; then
6 | mydir=`dirname $0`
7 | tmpdir=`mktemp -d`
8 | cp -r ${mydir} ${tmpdir}/captivation.libhackrf-1.0.0
9 | tar czf ${tmpdir}/captivation.libhackrf-1.0.0.tar.gz --exclude=".svn" --exclude=".git" -C ${tmpdir} captivation.libhackrf-1.0.0
10 | rpmbuild -ta ${tmpdir}/captivation.libhackrf-1.0.0.tar.gz
11 | rm -rf $tmpdir
12 | else
13 | echo "Missing RPM spec file in" `pwd`
14 | exit 1
15 | fi
16 | else
17 | for impl in cpp ; do
18 | cd $impl
19 | if [ -e build.sh ]; then
20 | if [ $# == 1 ]; then
21 | if [ $1 == 'clean' ]; then
22 | rm -f Makefile
23 | rm -f config.*
24 | ./build.sh distclean
25 | else
26 | ./build.sh $*
27 | fi
28 | else
29 | ./build.sh $*
30 | fi
31 | elif [ -e Makefile ] && [ Makefile.am -ot Makefile ]; then
32 | make $*
33 | elif [ -e reconf ]; then
34 | ./reconf && ./configure && make $*
35 | else
36 | echo "No build.sh found for $impl"
37 | fi
38 | retval=$?
39 | if [ $retval != '0' ]; then
40 | exit $retval
41 | fi
42 | cd -
43 | done
44 | fi
45 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/captivation.libhackrf.spec:
--------------------------------------------------------------------------------
1 | # By default, the RPM will install to the standard REDHAWK SDR root location (/var/redhawk/sdr)
2 | %{!?_sdrroot: %global _sdrroot /var/redhawk/sdr}
3 | %define _prefix %{_sdrroot}/dom/deps/captivation/libhackrf
4 |
5 | # Point install paths to locations within our target SDR root
6 | %define _libdir %{_prefix}/cpp/lib
7 | %define _sysconfdir %{_prefix}/etc
8 | %define _localstatedir %{_prefix}/var
9 | %define _mandir %{_prefix}/man
10 | %define _infodir %{_prefix}/info
11 |
12 | Name: captivation.libhackrf
13 | Version: 1.0.0
14 | Release: 1%{?dist}
15 | Summary: Shared package %{name}
16 |
17 | Group: REDHAWK/Shared Packages
18 | License: None
19 | Source0: %{name}-%{version}.tar.gz
20 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
21 |
22 | BuildRequires: redhawk-devel >= 2.0
23 | BuildRequires: autoconf automake libtool
24 |
25 |
26 |
27 | %description
28 | Shared package %{name}
29 |
30 | %package devel
31 | Summary: Shared package %{name}
32 | Group: REDHAWK/Shared Packages
33 | Requires: %{name} = %{version}-%{release}
34 |
35 | %description devel
36 | Libraries and header files for shared package %{name}
37 |
38 | %prep
39 | %setup -q
40 |
41 |
42 | %build
43 | # Implementation cpp
44 | pushd cpp
45 | ./reconf
46 | %configure --with-sdr=%{_sdrroot}
47 | make %{?_smp_mflags}
48 | popd
49 |
50 |
51 | %install
52 | rm -rf $RPM_BUILD_ROOT
53 | # Implementation cpp
54 | pushd cpp
55 | make install DESTDIR=$RPM_BUILD_ROOT
56 | popd
57 |
58 |
59 | %clean
60 | rm -rf $RPM_BUILD_ROOT
61 |
62 | %files
63 | %defattr(-,redhawk,redhawk,-)
64 | %dir %{_sdrroot}/dom/deps/captivation
65 | %dir %{_sdrroot}/dom/deps/captivation/libhackrf
66 | %{_prefix}/libhackrf.spd.xml
67 | %{_prefix}/cpp
68 | %exclude %{_libdir}/liblibhackrf.la
69 | %exclude %{_libdir}/liblibhackrf.so
70 | %exclude %{_libdir}/pkgconfig
71 |
72 | %files devel
73 | %defattr(-,redhawk,redhawk,-)
74 | %{_libdir}/liblibhackrf.la
75 | %{_libdir}/liblibhackrf.so
76 | %{_libdir}/pkgconfig
77 | %{_prefix}/include
78 |
79 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | autom4te.cache
3 | m4
4 | aclocal.m4
5 | config.*
6 | configure
7 | depcomp
8 | install-sh
9 | libtool
10 | ltmain.sh
11 | Makefile.in
12 | missing
13 |
14 |
15 | captivation.libhackrf.pc
16 | .libs
17 | *.la
18 | *.lo
19 |
20 | libhackrf/src/.deps
21 | .dirstamp
22 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/.md5sums:
--------------------------------------------------------------------------------
1 | 9e9c9bf983917046a119f512aa371a0c src/libhackrf.cpp
2 | ee8eaad7da1d4af25d204785c96600e6 include/libhackrf.h
3 | 8bfcd22353c3a57fee561ad86ee2a56b reconf
4 | 55c4cf11c077c57be20a81bd95548d10 configure.ac
5 | 8f79a5c9bfb27235ddbbaf19bc11f3b2 Makefile.am
6 | b2c5cac350738b09c35faf2916cf29c1 Makefile.am.ide
7 | 2b2faa5cfc83438427491f4be5d6ee59 build.sh
8 | 8ea7fc82e27e3d7ac6cb378d9434e537 captivation.libhackrf.pc.in
9 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/Makefile:
--------------------------------------------------------------------------------
1 | # Makefile.in generated by automake 1.13.4 from Makefile.am.
2 | # Makefile. Generated from Makefile.in by configure.
3 |
4 | # Copyright (C) 1994-2013 Free Software Foundation, Inc.
5 |
6 | # This Makefile.in is free software; the Free Software Foundation
7 | # gives unlimited permission to copy and/or distribute it,
8 | # with or without modifications, as long as this notice is preserved.
9 |
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 | # PARTICULAR PURPOSE.
14 |
15 |
16 |
17 |
18 |
19 |
20 | am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
21 | am__make_running_with_option = \
22 | case $${target_option-} in \
23 | ?) ;; \
24 | *) echo "am__make_running_with_option: internal error: invalid" \
25 | "target option '$${target_option-}' specified" >&2; \
26 | exit 1;; \
27 | esac; \
28 | has_opt=no; \
29 | sane_makeflags=$$MAKEFLAGS; \
30 | if $(am__is_gnu_make); then \
31 | sane_makeflags=$$MFLAGS; \
32 | else \
33 | case $$MAKEFLAGS in \
34 | *\\[\ \ ]*) \
35 | bs=\\; \
36 | sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
37 | | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
38 | esac; \
39 | fi; \
40 | skip_next=no; \
41 | strip_trailopt () \
42 | { \
43 | flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
44 | }; \
45 | for flg in $$sane_makeflags; do \
46 | test $$skip_next = yes && { skip_next=no; continue; }; \
47 | case $$flg in \
48 | *=*|--*) continue;; \
49 | -*I) strip_trailopt 'I'; skip_next=yes;; \
50 | -*I?*) strip_trailopt 'I';; \
51 | -*O) strip_trailopt 'O'; skip_next=yes;; \
52 | -*O?*) strip_trailopt 'O';; \
53 | -*l) strip_trailopt 'l'; skip_next=yes;; \
54 | -*l?*) strip_trailopt 'l';; \
55 | -[dEDm]) skip_next=yes;; \
56 | -[JT]) skip_next=yes;; \
57 | esac; \
58 | case $$flg in \
59 | *$$target_option*) has_opt=yes; break;; \
60 | esac; \
61 | done; \
62 | test $$has_opt = yes
63 | am__make_dryrun = (target_option=n; $(am__make_running_with_option))
64 | am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
65 | pkgdatadir = $(datadir)/captivation-libhackrf
66 | pkgincludedir = $(includedir)/captivation-libhackrf
67 | pkglibdir = $(libdir)/captivation-libhackrf
68 | pkglibexecdir = $(libexecdir)/captivation-libhackrf
69 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
70 | install_sh_DATA = $(install_sh) -c -m 644
71 | install_sh_PROGRAM = $(install_sh) -c
72 | install_sh_SCRIPT = $(install_sh) -c
73 | INSTALL_HEADER = $(INSTALL_DATA)
74 | transform = $(program_transform_name)
75 | NORMAL_INSTALL = :
76 | PRE_INSTALL = :
77 | POST_INSTALL = :
78 | NORMAL_UNINSTALL = :
79 | PRE_UNINSTALL = :
80 | POST_UNINSTALL = :
81 | build_triplet = x86_64-unknown-linux-gnu
82 | host_triplet = x86_64-unknown-linux-gnu
83 | DIST_COMMON = $(srcdir)/Makefile.am.ide $(srcdir)/Makefile.in \
84 | $(srcdir)/Makefile.am $(top_srcdir)/configure \
85 | $(am__configure_deps) $(srcdir)/captivation.libhackrf.pc.in \
86 | depcomp $(dist_xml_DATA) $(include_HEADERS) config.guess \
87 | config.sub install-sh missing ltmain.sh
88 | subdir = .
89 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
90 | am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
91 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
92 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
93 | $(top_srcdir)/configure.ac
94 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
95 | $(ACLOCAL_M4)
96 | am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
97 | configure.lineno config.status.lineno
98 | mkinstalldirs = $(install_sh) -d
99 | CONFIG_CLEAN_FILES = captivation.libhackrf.pc
100 | CONFIG_CLEAN_VPATH_FILES =
101 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
102 | am__vpath_adj = case $$p in \
103 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
104 | *) f=$$p;; \
105 | esac;
106 | am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
107 | am__install_max = 40
108 | am__nobase_strip_setup = \
109 | srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
110 | am__nobase_strip = \
111 | for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
112 | am__nobase_list = $(am__nobase_strip_setup); \
113 | for p in $$list; do echo "$$p $$p"; done | \
114 | sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
115 | $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
116 | if (++n[$$2] == $(am__install_max)) \
117 | { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
118 | END { for (dir in files) print dir, files[dir] }'
119 | am__base_list = \
120 | sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
121 | sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
122 | am__uninstall_files_from_dir = { \
123 | test -z "$$files" \
124 | || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
125 | || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
126 | $(am__cd) "$$dir" && rm -f $$files; }; \
127 | }
128 | am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(xmldir)" \
129 | "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"
130 | LTLIBRARIES = $(lib_LTLIBRARIES)
131 | am__DEPENDENCIES_1 =
132 | libhackrf_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
133 | $(am__DEPENDENCIES_1)
134 | am__dirstamp = $(am__leading_dot)dirstamp
135 | am__objects_1 = libhackrf/src/libhackrf_la-hackrf.lo
136 | am_libhackrf_la_OBJECTS = $(am__objects_1)
137 | libhackrf_la_OBJECTS = $(am_libhackrf_la_OBJECTS)
138 | AM_V_lt = $(am__v_lt_$(V))
139 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
140 | am__v_lt_0 = --silent
141 | am__v_lt_1 =
142 | AM_V_P = $(am__v_P_$(V))
143 | am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
144 | am__v_P_0 = false
145 | am__v_P_1 = :
146 | AM_V_GEN = $(am__v_GEN_$(V))
147 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
148 | am__v_GEN_0 = @echo " GEN " $@;
149 | am__v_GEN_1 =
150 | AM_V_at = $(am__v_at_$(V))
151 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
152 | am__v_at_0 = @
153 | am__v_at_1 =
154 | DEFAULT_INCLUDES =
155 | depcomp = $(SHELL) $(top_srcdir)/depcomp
156 | am__depfiles_maybe = depfiles
157 | am__mv = mv -f
158 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
159 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
160 | LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
161 | $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
162 | $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
163 | $(AM_CFLAGS) $(CFLAGS)
164 | AM_V_CC = $(am__v_CC_$(V))
165 | am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
166 | am__v_CC_0 = @echo " CC " $@;
167 | am__v_CC_1 =
168 | CCLD = $(CC)
169 | LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
170 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
171 | $(AM_LDFLAGS) $(LDFLAGS) -o $@
172 | AM_V_CCLD = $(am__v_CCLD_$(V))
173 | am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
174 | am__v_CCLD_0 = @echo " CCLD " $@;
175 | am__v_CCLD_1 =
176 | SOURCES = $(libhackrf_la_SOURCES)
177 | DIST_SOURCES = $(libhackrf_la_SOURCES)
178 | am__can_run_installinfo = \
179 | case $$AM_UPDATE_INFO_DIR in \
180 | n|no|NO) false;; \
181 | *) (install-info --version) >/dev/null 2>&1;; \
182 | esac
183 | DATA = $(dist_xml_DATA) $(pkgconfig_DATA)
184 | HEADERS = $(include_HEADERS)
185 | am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
186 | # Read a list of newline-separated strings from the standard input,
187 | # and print each of them once, without duplicates. Input order is
188 | # *not* preserved.
189 | am__uniquify_input = $(AWK) '\
190 | BEGIN { nonempty = 0; } \
191 | { items[$$0] = 1; nonempty = 1; } \
192 | END { if (nonempty) { for (i in items) print i; }; } \
193 | '
194 | # Make sure the list of sources is unique. This is necessary because,
195 | # e.g., the same source file might be shared among _SOURCES variables
196 | # for different programs/libraries.
197 | am__define_uniq_tagged_files = \
198 | list='$(am__tagged_files)'; \
199 | unique=`for i in $$list; do \
200 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
201 | done | $(am__uniquify_input)`
202 | ETAGS = etags
203 | CTAGS = ctags
204 | CSCOPE = cscope
205 | AM_RECURSIVE_TARGETS = cscope
206 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
207 | distdir = $(PACKAGE)-$(VERSION)
208 | top_distdir = $(distdir)
209 | am__remove_distdir = \
210 | if test -d "$(distdir)"; then \
211 | find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
212 | && rm -rf "$(distdir)" \
213 | || { sleep 5 && rm -rf "$(distdir)"; }; \
214 | else :; fi
215 | am__post_remove_distdir = $(am__remove_distdir)
216 | DIST_ARCHIVES = $(distdir).tar.gz
217 | GZIP_ENV = --best
218 | DIST_TARGETS = dist-gzip
219 | distuninstallcheck_listfiles = find . -type f -print
220 | am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
221 | | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
222 | distcleancheck_listfiles = find . -type f -print
223 | ACLOCAL = ${SHELL} /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp/missing aclocal-1.13
224 | AMTAR = $${TAR-tar}
225 | AM_DEFAULT_VERBOSITY = 0
226 | AR = ar
227 | AUTOCONF = ${SHELL} /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp/missing autoconf
228 | AUTOHEADER = ${SHELL} /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp/missing autoheader
229 | AUTOMAKE = ${SHELL} /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp/missing automake-1.13
230 | AWK = gawk
231 | BOOST_CPPFLAGS = -pthread -I/usr/include
232 | BOOST_LDFLAGS = -L/usr/lib64
233 | BOOST_REGEX_LIB = -lboost_regex-mt
234 | BOOST_SYSTEM_LIB = -lboost_system
235 | BOOST_THREAD_LIB = -lboost_thread
236 | CC = gcc
237 | CCDEPMODE = depmode=gcc3
238 | CFLAGS = -g -O2
239 | CORBA_ORB = omniORB4
240 | CPP = gcc -E
241 | CPPFLAGS =
242 | CXX = g++
243 | CXXCPP = g++ -E
244 | CXXDEPMODE = depmode=gcc3
245 | CXXFLAGS = -g -O2
246 | CYGPATH_W = echo
247 | DEFS = -DPACKAGE_NAME=\"captivation.libhackrf\" -DPACKAGE_TARNAME=\"captivation-libhackrf\" -DPACKAGE_VERSION=\"1.0.0\" -DPACKAGE_STRING=\"captivation.libhackrf\ 1.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"captivation-libhackrf\" -DVERSION=\"1.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_OMNIORB4=1 -DHAVE_LOG4CXX=1 -DRH_LOGGER=1 -DHAVE_BOOST=1 -DHAVE_BOOST_SYSTEM=1 -DHAVE_BOOST_THREAD=1 -DHAVE_BOOST_REGEX=1
248 | DEPDIR = .deps
249 | DLLTOOL = false
250 | DSYMUTIL =
251 | DUMPBIN =
252 | ECHO_C =
253 | ECHO_N = -n
254 | ECHO_T =
255 | EGREP = /usr/bin/grep -E
256 | EXEEXT =
257 | FGREP = /usr/bin/grep -F
258 | GREP = /usr/bin/grep
259 | HAVE_LOG4CXX = -DHAVE_LOG4CXX=1
260 | INSTALL = /usr/bin/install -c
261 | INSTALL_DATA = ${INSTALL} -m 644
262 | INSTALL_PROGRAM = ${INSTALL}
263 | INSTALL_SCRIPT = ${INSTALL}
264 | INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
265 | LD = /usr/bin/ld -m elf_x86_64
266 | LDFLAGS =
267 | LIBOBJS =
268 | LIBS = -llog4cxx
269 | LIBTOOL = $(SHELL) $(top_builddir)/libtool
270 | LIBUSB_CFLAGS = -I/usr/include/libusb-1.0
271 | LIBUSB_LIBS = -lusb-1.0
272 | LIPO =
273 | LN_S = ln -s
274 | LOG4CXX_CFLAGS =
275 | LOG4CXX_LIBS = -llog4cxx
276 | LTLIBOBJS =
277 | MAKEINFO = ${SHELL} /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp/missing makeinfo
278 | MANIFEST_TOOL = :
279 | MKDIR_P = /usr/bin/mkdir -p
280 | NM = /usr/bin/nm -B
281 | NMEDIT =
282 | OBJDUMP = objdump
283 | OBJEXT = o
284 | OSSIE_HOME = /usr/local/redhawk/core
285 | OTOOL =
286 | OTOOL64 =
287 | PACKAGE = captivation-libhackrf
288 | PACKAGE_BUGREPORT =
289 | PACKAGE_NAME = captivation.libhackrf
290 | PACKAGE_STRING = captivation.libhackrf 1.0.0
291 | PACKAGE_TARNAME = captivation-libhackrf
292 | PACKAGE_URL =
293 | PACKAGE_VERSION = 1.0.0
294 | PATH_SEPARATOR = :
295 | PKG_CONFIG = /usr/bin/pkg-config
296 | RANLIB = ranlib
297 | REDHAWK_CFLAGS = -D__x86_64__ -D__linux__ -D__OSVERSION__=2 -DENABLE_EVENTS=1 -I/usr/local/redhawk/core/include -I/usr/local/redhawk/core/include/ossie -I/usr/local/redhawk/core/share/idl
298 | REDHAWK_LIBS = -L/usr/local/redhawk/core/lib64 -lossiecf -lossieidl -lCOS4 -lomniDynamic4 -lomniORB4 -lomnithread
299 | SDR_ROOT = /var/redhawk/sdr
300 | SED = /usr/bin/sed
301 | SET_MAKE =
302 | SHELL = /bin/sh
303 | STRIP = strip
304 | VERSION = 1.0.0
305 | WITH_LOG4CXX = yes
306 | abs_builddir = /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp
307 | abs_srcdir = /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp
308 | abs_top_builddir = /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp
309 | abs_top_srcdir = /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp
310 | ac_ct_AR = ar
311 | ac_ct_CC = gcc
312 | ac_ct_CXX = g++
313 | ac_ct_DUMPBIN =
314 | am__include = include
315 | am__leading_dot = .
316 | am__quote =
317 | am__tar = $${TAR-tar} chof - "$$tardir"
318 | am__untar = $${TAR-tar} xf -
319 | bindir = ${exec_prefix}/bin
320 | build = x86_64-unknown-linux-gnu
321 | build_alias =
322 | build_cpu = x86_64
323 | build_os = linux-gnu
324 | build_vendor = unknown
325 | builddir = .
326 | datadir = ${datarootdir}
327 | datarootdir = ${prefix}/share
328 | docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
329 | dvidir = ${docdir}
330 | exec_prefix = ${prefix}/cpp
331 | host = x86_64-unknown-linux-gnu
332 | host_alias =
333 | host_cpu = x86_64
334 | host_os = linux-gnu
335 | host_vendor = unknown
336 | htmldir = ${docdir}
337 | includedir = ${prefix}/include
338 | infodir = ${datarootdir}/info
339 | install_sh = ${SHELL} /home/daniel.barbalato/dev/redhawk-hackrf/sdr/libraries/captivation.libhackrf/cpp/install-sh
340 | libdir = ${exec_prefix}/lib
341 | libexecdir = ${exec_prefix}/libexec
342 | localedir = ${datarootdir}/locale
343 | localstatedir = ${prefix}/var
344 | mandir = ${datarootdir}/man
345 | mkdir_p = $(MKDIR_P)
346 | oldincludedir = /usr/include
347 | pdfdir = ${docdir}
348 | prefix = /var/redhawk/sdr/dom/deps/captivation/libhackrf
349 | program_transform_name = s,x,x,
350 | psdir = ${docdir}
351 | sbindir = ${exec_prefix}/sbin
352 | sharedstatedir = ${prefix}/com
353 | srcdir = .
354 | sysconfdir = ${prefix}/etc
355 | target_alias =
356 | top_build_prefix =
357 | top_builddir = .
358 | top_srcdir = .
359 | ACLOCAL_AMFLAGS = -I m4 -I${OSSIEHOME}/share/aclocal/ossie
360 | AUTOMAKE_OPTIONS = subdir-objects
361 | lib_LTLIBRARIES = libhackrf.la
362 | pkgconfigdir = $(libdir)/pkgconfig
363 | pkgconfig_DATA = captivation.libhackrf.pc
364 | xmldir = $(prefix)
365 | dist_xml_DATA = ../libhackrf.spd.xml
366 |
367 | # This file is regularly auto-generated by the REDHAWK IDE. Do not modify!
368 | # Files can be excluded by right-clicking on the file in the project explorer
369 | # and choosing Resource Configurations -> Exclude from build. Re-include files
370 | # by opening the Properties dialog of your project and choosing C/C++ Build ->
371 | # Tool Chain Editor, and un-checking "Exclude resource from build "
372 | redhawk_SOURCES_auto = libhackrf/src/hackrf.c libhackrf/src/hackrf.h
373 |
374 | # Sources, libraries and library directories are auto-included from a file
375 | # generated by the REDHAWK IDE. You can remove/modify the following lines if
376 | # you wish to manually control these options.
377 | libhackrf_la_SOURCES = $(redhawk_SOURCES_auto)
378 | libhackrf_la_LIBADD = $(SOFTPKG_LIBS) $(REDHAWK_LIBS) $(LIBUSB_LIBS)
379 | libhackrf_la_CPPFLAGS = -I $(srcdir)/include $(SOFTPKG_CFLAGS) $(REDHAWK_CFLAGS) $(LIBUSB_CFLAGS) $(BOOST_CPPFLAGS)
380 | libhackrf_la_CXXFLAGS = -Wall
381 | include_HEADERS = $(redhawk_HEADERS_auto)
382 | all: all-am
383 |
384 | .SUFFIXES:
385 | .SUFFIXES: .c .lo .o .obj
386 | am--refresh: Makefile
387 | @:
388 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.am.ide $(am__configure_deps)
389 | @for dep in $?; do \
390 | case '$(am__configure_deps)' in \
391 | *$$dep*) \
392 | echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
393 | $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
394 | && exit 0; \
395 | exit 1;; \
396 | esac; \
397 | done; \
398 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
399 | $(am__cd) $(top_srcdir) && \
400 | $(AUTOMAKE) --foreign Makefile
401 | .PRECIOUS: Makefile
402 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
403 | @case '$?' in \
404 | *config.status*) \
405 | echo ' $(SHELL) ./config.status'; \
406 | $(SHELL) ./config.status;; \
407 | *) \
408 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
409 | cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
410 | esac;
411 | $(srcdir)/Makefile.am.ide:
412 |
413 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
414 | $(SHELL) ./config.status --recheck
415 |
416 | $(top_srcdir)/configure: $(am__configure_deps)
417 | $(am__cd) $(srcdir) && $(AUTOCONF)
418 | $(ACLOCAL_M4): $(am__aclocal_m4_deps)
419 | $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
420 | $(am__aclocal_m4_deps):
421 | captivation.libhackrf.pc: $(top_builddir)/config.status $(srcdir)/captivation.libhackrf.pc.in
422 | cd $(top_builddir) && $(SHELL) ./config.status $@
423 |
424 | install-libLTLIBRARIES: $(lib_LTLIBRARIES)
425 | @$(NORMAL_INSTALL)
426 | @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
427 | list2=; for p in $$list; do \
428 | if test -f $$p; then \
429 | list2="$$list2 $$p"; \
430 | else :; fi; \
431 | done; \
432 | test -z "$$list2" || { \
433 | echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
434 | $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
435 | echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
436 | $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
437 | }
438 |
439 | uninstall-libLTLIBRARIES:
440 | @$(NORMAL_UNINSTALL)
441 | @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
442 | for p in $$list; do \
443 | $(am__strip_dir) \
444 | echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
445 | $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
446 | done
447 |
448 | clean-libLTLIBRARIES:
449 | -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
450 | @list='$(lib_LTLIBRARIES)'; \
451 | locs=`for p in $$list; do echo $$p; done | \
452 | sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
453 | sort -u`; \
454 | test -z "$$locs" || { \
455 | echo rm -f $${locs}; \
456 | rm -f $${locs}; \
457 | }
458 | libhackrf/src/$(am__dirstamp):
459 | @$(MKDIR_P) libhackrf/src
460 | @: > libhackrf/src/$(am__dirstamp)
461 | libhackrf/src/$(DEPDIR)/$(am__dirstamp):
462 | @$(MKDIR_P) libhackrf/src/$(DEPDIR)
463 | @: > libhackrf/src/$(DEPDIR)/$(am__dirstamp)
464 | libhackrf/src/libhackrf_la-hackrf.lo: libhackrf/src/$(am__dirstamp) \
465 | libhackrf/src/$(DEPDIR)/$(am__dirstamp)
466 |
467 | libhackrf.la: $(libhackrf_la_OBJECTS) $(libhackrf_la_DEPENDENCIES) $(EXTRA_libhackrf_la_DEPENDENCIES)
468 | $(AM_V_CCLD)$(LINK) -rpath $(libdir) $(libhackrf_la_OBJECTS) $(libhackrf_la_LIBADD) $(LIBS)
469 |
470 | mostlyclean-compile:
471 | -rm -f *.$(OBJEXT)
472 | -rm -f libhackrf/src/*.$(OBJEXT)
473 | -rm -f libhackrf/src/*.lo
474 |
475 | distclean-compile:
476 | -rm -f *.tab.c
477 |
478 | include libhackrf/src/$(DEPDIR)/libhackrf_la-hackrf.Plo
479 |
480 | .c.o:
481 | $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
482 | $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
483 | $(am__mv) $$depbase.Tpo $$depbase.Po
484 | # $(AM_V_CC)source='$<' object='$@' libtool=no \
485 | # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
486 | # $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
487 |
488 | .c.obj:
489 | $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
490 | $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
491 | $(am__mv) $$depbase.Tpo $$depbase.Po
492 | # $(AM_V_CC)source='$<' object='$@' libtool=no \
493 | # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
494 | # $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
495 |
496 | .c.lo:
497 | $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
498 | $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
499 | $(am__mv) $$depbase.Tpo $$depbase.Plo
500 | # $(AM_V_CC)source='$<' object='$@' libtool=yes \
501 | # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
502 | # $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $<
503 |
504 | libhackrf/src/libhackrf_la-hackrf.lo: libhackrf/src/hackrf.c
505 | $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhackrf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libhackrf/src/libhackrf_la-hackrf.lo -MD -MP -MF libhackrf/src/$(DEPDIR)/libhackrf_la-hackrf.Tpo -c -o libhackrf/src/libhackrf_la-hackrf.lo `test -f 'libhackrf/src/hackrf.c' || echo '$(srcdir)/'`libhackrf/src/hackrf.c
506 | $(AM_V_at)$(am__mv) libhackrf/src/$(DEPDIR)/libhackrf_la-hackrf.Tpo libhackrf/src/$(DEPDIR)/libhackrf_la-hackrf.Plo
507 | # $(AM_V_CC)source='libhackrf/src/hackrf.c' object='libhackrf/src/libhackrf_la-hackrf.lo' libtool=yes \
508 | # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
509 | # $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhackrf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libhackrf/src/libhackrf_la-hackrf.lo `test -f 'libhackrf/src/hackrf.c' || echo '$(srcdir)/'`libhackrf/src/hackrf.c
510 |
511 | mostlyclean-libtool:
512 | -rm -f *.lo
513 |
514 | clean-libtool:
515 | -rm -rf .libs _libs
516 | -rm -rf libhackrf/src/.libs libhackrf/src/_libs
517 |
518 | distclean-libtool:
519 | -rm -f libtool config.lt
520 | install-dist_xmlDATA: $(dist_xml_DATA)
521 | @$(NORMAL_INSTALL)
522 | @list='$(dist_xml_DATA)'; test -n "$(xmldir)" || list=; \
523 | if test -n "$$list"; then \
524 | echo " $(MKDIR_P) '$(DESTDIR)$(xmldir)'"; \
525 | $(MKDIR_P) "$(DESTDIR)$(xmldir)" || exit 1; \
526 | fi; \
527 | for p in $$list; do \
528 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
529 | echo "$$d$$p"; \
530 | done | $(am__base_list) | \
531 | while read files; do \
532 | echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(xmldir)'"; \
533 | $(INSTALL_DATA) $$files "$(DESTDIR)$(xmldir)" || exit $$?; \
534 | done
535 |
536 | uninstall-dist_xmlDATA:
537 | @$(NORMAL_UNINSTALL)
538 | @list='$(dist_xml_DATA)'; test -n "$(xmldir)" || list=; \
539 | files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
540 | dir='$(DESTDIR)$(xmldir)'; $(am__uninstall_files_from_dir)
541 | install-pkgconfigDATA: $(pkgconfig_DATA)
542 | @$(NORMAL_INSTALL)
543 | @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
544 | if test -n "$$list"; then \
545 | echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
546 | $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
547 | fi; \
548 | for p in $$list; do \
549 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
550 | echo "$$d$$p"; \
551 | done | $(am__base_list) | \
552 | while read files; do \
553 | echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
554 | $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
555 | done
556 |
557 | uninstall-pkgconfigDATA:
558 | @$(NORMAL_UNINSTALL)
559 | @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
560 | files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
561 | dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
562 | install-includeHEADERS: $(include_HEADERS)
563 | @$(NORMAL_INSTALL)
564 | @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
565 | if test -n "$$list"; then \
566 | echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
567 | $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
568 | fi; \
569 | for p in $$list; do \
570 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
571 | echo "$$d$$p"; \
572 | done | $(am__base_list) | \
573 | while read files; do \
574 | echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
575 | $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
576 | done
577 |
578 | uninstall-includeHEADERS:
579 | @$(NORMAL_UNINSTALL)
580 | @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
581 | files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
582 | dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
583 |
584 | ID: $(am__tagged_files)
585 | $(am__define_uniq_tagged_files); mkid -fID $$unique
586 | tags: tags-am
587 | TAGS: tags
588 |
589 | tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
590 | set x; \
591 | here=`pwd`; \
592 | $(am__define_uniq_tagged_files); \
593 | shift; \
594 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
595 | test -n "$$unique" || unique=$$empty_fix; \
596 | if test $$# -gt 0; then \
597 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
598 | "$$@" $$unique; \
599 | else \
600 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
601 | $$unique; \
602 | fi; \
603 | fi
604 | ctags: ctags-am
605 |
606 | CTAGS: ctags
607 | ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
608 | $(am__define_uniq_tagged_files); \
609 | test -z "$(CTAGS_ARGS)$$unique" \
610 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
611 | $$unique
612 |
613 | GTAGS:
614 | here=`$(am__cd) $(top_builddir) && pwd` \
615 | && $(am__cd) $(top_srcdir) \
616 | && gtags -i $(GTAGS_ARGS) "$$here"
617 | cscope: cscope.files
618 | test ! -s cscope.files \
619 | || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
620 | clean-cscope:
621 | -rm -f cscope.files
622 | cscope.files: clean-cscope cscopelist
623 | cscopelist: cscopelist-am
624 |
625 | cscopelist-am: $(am__tagged_files)
626 | list='$(am__tagged_files)'; \
627 | case "$(srcdir)" in \
628 | [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
629 | *) sdir=$(subdir)/$(srcdir) ;; \
630 | esac; \
631 | for i in $$list; do \
632 | if test -f "$$i"; then \
633 | echo "$(subdir)/$$i"; \
634 | else \
635 | echo "$$sdir/$$i"; \
636 | fi; \
637 | done >> $(top_builddir)/cscope.files
638 |
639 | distclean-tags:
640 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
641 | -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
642 |
643 | distdir: $(DISTFILES)
644 | $(am__remove_distdir)
645 | test -d "$(distdir)" || mkdir "$(distdir)"
646 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
647 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
648 | list='$(DISTFILES)'; \
649 | dist_files=`for file in $$list; do echo $$file; done | \
650 | sed -e "s|^$$srcdirstrip/||;t" \
651 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
652 | case $$dist_files in \
653 | */*) $(MKDIR_P) `echo "$$dist_files" | \
654 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
655 | sort -u` ;; \
656 | esac; \
657 | for file in $$dist_files; do \
658 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
659 | if test -d $$d/$$file; then \
660 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
661 | if test -d "$(distdir)/$$file"; then \
662 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
663 | fi; \
664 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
665 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
666 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
667 | fi; \
668 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
669 | else \
670 | test -f "$(distdir)/$$file" \
671 | || cp -p $$d/$$file "$(distdir)/$$file" \
672 | || exit 1; \
673 | fi; \
674 | done
675 | -test -n "$(am__skip_mode_fix)" \
676 | || find "$(distdir)" -type d ! -perm -755 \
677 | -exec chmod u+rwx,go+rx {} \; -o \
678 | ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
679 | ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
680 | ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
681 | || chmod -R a+r "$(distdir)"
682 | dist-gzip: distdir
683 | tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
684 | $(am__post_remove_distdir)
685 |
686 | dist-bzip2: distdir
687 | tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
688 | $(am__post_remove_distdir)
689 |
690 | dist-lzip: distdir
691 | tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
692 | $(am__post_remove_distdir)
693 |
694 | dist-xz: distdir
695 | tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
696 | $(am__post_remove_distdir)
697 |
698 | dist-tarZ: distdir
699 | tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
700 | $(am__post_remove_distdir)
701 |
702 | dist-shar: distdir
703 | shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
704 | $(am__post_remove_distdir)
705 |
706 | dist-zip: distdir
707 | -rm -f $(distdir).zip
708 | zip -rq $(distdir).zip $(distdir)
709 | $(am__post_remove_distdir)
710 |
711 | dist dist-all:
712 | $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
713 | $(am__post_remove_distdir)
714 |
715 | # This target untars the dist file and tries a VPATH configuration. Then
716 | # it guarantees that the distribution is self-contained by making another
717 | # tarfile.
718 | distcheck: dist
719 | case '$(DIST_ARCHIVES)' in \
720 | *.tar.gz*) \
721 | GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
722 | *.tar.bz2*) \
723 | bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
724 | *.tar.lz*) \
725 | lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
726 | *.tar.xz*) \
727 | xz -dc $(distdir).tar.xz | $(am__untar) ;;\
728 | *.tar.Z*) \
729 | uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
730 | *.shar.gz*) \
731 | GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
732 | *.zip*) \
733 | unzip $(distdir).zip ;;\
734 | esac
735 | chmod -R a-w $(distdir)
736 | chmod u+w $(distdir)
737 | mkdir $(distdir)/_build $(distdir)/_inst
738 | chmod a-w $(distdir)
739 | test -d $(distdir)/_build || exit 0; \
740 | dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
741 | && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
742 | && am__cwd=`pwd` \
743 | && $(am__cd) $(distdir)/_build \
744 | && ../configure --srcdir=.. --prefix="$$dc_install_base" \
745 | $(AM_DISTCHECK_CONFIGURE_FLAGS) \
746 | $(DISTCHECK_CONFIGURE_FLAGS) \
747 | && $(MAKE) $(AM_MAKEFLAGS) \
748 | && $(MAKE) $(AM_MAKEFLAGS) dvi \
749 | && $(MAKE) $(AM_MAKEFLAGS) check \
750 | && $(MAKE) $(AM_MAKEFLAGS) install \
751 | && $(MAKE) $(AM_MAKEFLAGS) installcheck \
752 | && $(MAKE) $(AM_MAKEFLAGS) uninstall \
753 | && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
754 | distuninstallcheck \
755 | && chmod -R a-w "$$dc_install_base" \
756 | && ({ \
757 | (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
758 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
759 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
760 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
761 | distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
762 | } || { rm -rf "$$dc_destdir"; exit 1; }) \
763 | && rm -rf "$$dc_destdir" \
764 | && $(MAKE) $(AM_MAKEFLAGS) dist \
765 | && rm -rf $(DIST_ARCHIVES) \
766 | && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
767 | && cd "$$am__cwd" \
768 | || exit 1
769 | $(am__post_remove_distdir)
770 | @(echo "$(distdir) archives ready for distribution: "; \
771 | list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
772 | sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
773 | distuninstallcheck:
774 | @test -n '$(distuninstallcheck_dir)' || { \
775 | echo 'ERROR: trying to run $@ with an empty' \
776 | '$$(distuninstallcheck_dir)' >&2; \
777 | exit 1; \
778 | }; \
779 | $(am__cd) '$(distuninstallcheck_dir)' || { \
780 | echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
781 | exit 1; \
782 | }; \
783 | test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
784 | || { echo "ERROR: files left after uninstall:" ; \
785 | if test -n "$(DESTDIR)"; then \
786 | echo " (check DESTDIR support)"; \
787 | fi ; \
788 | $(distuninstallcheck_listfiles) ; \
789 | exit 1; } >&2
790 | distcleancheck: distclean
791 | @if test '$(srcdir)' = . ; then \
792 | echo "ERROR: distcleancheck can only run from a VPATH build" ; \
793 | exit 1 ; \
794 | fi
795 | @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
796 | || { echo "ERROR: files left in build directory after distclean:" ; \
797 | $(distcleancheck_listfiles) ; \
798 | exit 1; } >&2
799 | check-am: all-am
800 | check: check-am
801 | all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
802 | installdirs:
803 | for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(xmldir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \
804 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \
805 | done
806 | install: install-am
807 | install-exec: install-exec-am
808 | install-data: install-data-am
809 | uninstall: uninstall-am
810 |
811 | install-am: all-am
812 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
813 |
814 | installcheck: installcheck-am
815 | install-strip:
816 | if test -z '$(STRIP)'; then \
817 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
818 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
819 | install; \
820 | else \
821 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
822 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
823 | "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
824 | fi
825 | mostlyclean-generic:
826 |
827 | clean-generic:
828 |
829 | distclean-generic:
830 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
831 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
832 | -rm -f libhackrf/src/$(DEPDIR)/$(am__dirstamp)
833 | -rm -f libhackrf/src/$(am__dirstamp)
834 |
835 | maintainer-clean-generic:
836 | @echo "This command is intended for maintainers to use"
837 | @echo "it deletes files that may require special tools to rebuild."
838 | clean: clean-am
839 |
840 | clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
841 | mostlyclean-am
842 |
843 | distclean: distclean-am
844 | -rm -f $(am__CONFIG_DISTCLEAN_FILES)
845 | -rm -rf libhackrf/src/$(DEPDIR)
846 | -rm -f Makefile
847 | distclean-am: clean-am distclean-compile distclean-generic \
848 | distclean-libtool distclean-local distclean-tags
849 |
850 | dvi: dvi-am
851 |
852 | dvi-am:
853 |
854 | html: html-am
855 |
856 | html-am:
857 |
858 | info: info-am
859 |
860 | info-am:
861 |
862 | install-data-am: install-dist_xmlDATA install-includeHEADERS \
863 | install-pkgconfigDATA
864 |
865 | install-dvi: install-dvi-am
866 |
867 | install-dvi-am:
868 |
869 | install-exec-am: install-libLTLIBRARIES
870 |
871 | install-html: install-html-am
872 |
873 | install-html-am:
874 |
875 | install-info: install-info-am
876 |
877 | install-info-am:
878 |
879 | install-man:
880 |
881 | install-pdf: install-pdf-am
882 |
883 | install-pdf-am:
884 |
885 | install-ps: install-ps-am
886 |
887 | install-ps-am:
888 |
889 | installcheck-am:
890 |
891 | maintainer-clean: maintainer-clean-am
892 | -rm -f $(am__CONFIG_DISTCLEAN_FILES)
893 | -rm -rf $(top_srcdir)/autom4te.cache
894 | -rm -rf libhackrf/src/$(DEPDIR)
895 | -rm -f Makefile
896 | maintainer-clean-am: distclean-am maintainer-clean-generic
897 |
898 | mostlyclean: mostlyclean-am
899 |
900 | mostlyclean-am: mostlyclean-compile mostlyclean-generic \
901 | mostlyclean-libtool
902 |
903 | pdf: pdf-am
904 |
905 | pdf-am:
906 |
907 | ps: ps-am
908 |
909 | ps-am:
910 |
911 | uninstall-am: uninstall-dist_xmlDATA uninstall-includeHEADERS \
912 | uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
913 |
914 | .MAKE: install-am install-strip
915 |
916 | .PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \
917 | clean-cscope clean-generic clean-libLTLIBRARIES clean-libtool \
918 | cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
919 | dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
920 | distcheck distclean distclean-compile distclean-generic \
921 | distclean-libtool distclean-local distclean-tags \
922 | distcleancheck distdir distuninstallcheck dvi dvi-am html \
923 | html-am info info-am install install-am install-data \
924 | install-data-am install-dist_xmlDATA install-dvi \
925 | install-dvi-am install-exec install-exec-am install-html \
926 | install-html-am install-includeHEADERS install-info \
927 | install-info-am install-libLTLIBRARIES install-man install-pdf \
928 | install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
929 | install-strip installcheck installcheck-am installdirs \
930 | maintainer-clean maintainer-clean-generic mostlyclean \
931 | mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
932 | pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
933 | uninstall-dist_xmlDATA uninstall-includeHEADERS \
934 | uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
935 |
936 |
937 | distclean-local:
938 | rm -rf autom4te.cache
939 | rm -rf m4
940 | rm -f aclocal.m4
941 | rm -f config.*
942 | rm -f configure
943 | rm -f depcomp
944 | rm -f install-sh
945 | rm -f ltmain.sh
946 | rm -f Makefile.in
947 | rm -f missing
948 |
949 | redhawk_HEADERS_auto ?= $(filter include/%,$(redhawk_SOURCES_auto))
950 |
951 | # Tell versions [3.59,3.63) of GNU make to not export all variables.
952 | # Otherwise a system limit (for SysV at least) may be exceeded.
953 | .NOEXPORT:
954 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/Makefile.am:
--------------------------------------------------------------------------------
1 | ACLOCAL_AMFLAGS = -I m4 -I${OSSIEHOME}/share/aclocal/ossie
2 | AUTOMAKE_OPTIONS = subdir-objects
3 |
4 | lib_LTLIBRARIES = libhackrf.la
5 |
6 | pkgconfigdir = $(libdir)/pkgconfig
7 | pkgconfig_DATA = captivation.libhackrf.pc
8 |
9 | xmldir = $(prefix)
10 | dist_xml_DATA = ../libhackrf.spd.xml
11 |
12 | distclean-local:
13 | rm -rf autom4te.cache
14 | rm -rf m4
15 | rm -f aclocal.m4
16 | rm -f config.*
17 | rm -f configure
18 | rm -f depcomp
19 | rm -f install-sh
20 | rm -f ltmain.sh
21 | rm -f Makefile.in
22 | rm -f missing
23 |
24 | # Sources, libraries and library directories are auto-included from a file
25 | # generated by the REDHAWK IDE. You can remove/modify the following lines if
26 | # you wish to manually control these options.
27 | include $(srcdir)/Makefile.am.ide
28 | libhackrf_la_SOURCES = $(redhawk_SOURCES_auto)
29 | libhackrf_la_LIBADD = $(SOFTPKG_LIBS) $(REDHAWK_LIBS) $(LIBUSB_LIBS)
30 | libhackrf_la_CPPFLAGS = -I $(srcdir)/include $(SOFTPKG_CFLAGS) $(REDHAWK_CFLAGS) $(LIBUSB_CFLAGS) $(BOOST_CPPFLAGS)
31 | libhackrf_la_CXXFLAGS = -Wall
32 |
33 | redhawk_HEADERS_auto ?= $(filter include/%,$(redhawk_SOURCES_auto))
34 | include_HEADERS = $(redhawk_HEADERS_auto)
35 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/Makefile.am.ide:
--------------------------------------------------------------------------------
1 | # This file is regularly auto-generated by the REDHAWK IDE. Do not modify!
2 | # Files can be excluded by right-clicking on the file in the project explorer
3 | # and choosing Resource Configurations -> Exclude from build. Re-include files
4 | # by opening the Properties dialog of your project and choosing C/C++ Build ->
5 | # Tool Chain Editor, and un-checking "Exclude resource from build "
6 | redhawk_SOURCES_auto = libhackrf/src/hackrf.c
7 | redhawk_SOURCES_auto += libhackrf/src/hackrf.h
8 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Create the Makefile if necessary
4 | if [ ! -e Makefile ]; then
5 | ./reconf
6 | ./configure
7 | fi
8 |
9 | if [ $# == 1 ]; then
10 | if [ $1 == 'clean' ]; then
11 | make distclean
12 | else
13 | make -j $*
14 | fi
15 | else
16 | make -j $*
17 | fi
18 |
19 | exit $?
20 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/captivation.libhackrf.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@prefix@
2 | exec_prefix=@exec_prefix@
3 | libdir=@libdir@
4 | includedir=@includedir@
5 |
6 | Name: captivation.libhackrf
7 | Description: HackRF library wrapped for REDHAWK
8 | Version: @VERSION@
9 | Cflags: -I${includedir} -I${includedir}/libhackrf -I/usr/include/libusb-1.0
10 | Libs: -L${libdir} -lhackrf
11 | Libs.private:
12 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/configure.ac:
--------------------------------------------------------------------------------
1 | AC_INIT(captivation.libhackrf, 1.0.0)
2 | AM_INIT_AUTOMAKE([nostdinc foreign])
3 | AC_CONFIG_MACRO_DIR([m4])
4 |
5 | AC_PROG_CC
6 | AC_PROG_CXX
7 | AC_PROG_INSTALL
8 | LT_INIT([disable-static])
9 |
10 | AC_CORBA_ORB
11 | OSSIE_CHECK_OSSIE
12 | RH_SOFTPKG_PREFIX([captivation.libhackrf],[cpp])
13 |
14 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
15 |
16 | # Dependencies
17 | PKG_CHECK_MODULES([REDHAWK], [ossie >= 2.0])
18 | PKG_CHECK_MODULES([LIBUSB], [libusb-1.0 >= 0.27.1])
19 | OSSIE_ENABLE_LOG4CXX
20 | AX_BOOST_BASE([1.41])
21 | AX_BOOST_SYSTEM
22 | AX_BOOST_THREAD
23 | AX_BOOST_REGEX
24 |
25 | AC_CONFIG_FILES([Makefile captivation.libhackrf.pc])
26 | AC_OUTPUT
27 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/libhackrf/53-hackrf.rules:
--------------------------------------------------------------------------------
1 | ATTR{idVendor}=="1d50", ATTR{idProduct}=="604b", SYMLINK+="hackrf-jawbreaker-%k", MODE="660", GROUP="plugdev"
2 | ATTR{idVendor}=="1d50", ATTR{idProduct}=="6089", SYMLINK+="hackrf-one-%k", MODE="660", GROUP="plugdev"
3 | ATTR{idVendor}=="1d50", ATTR{idProduct}=="cc15", SYMLINK+="rad1o-%k", MODE="660", GROUP="plugdev"
4 | ATTR{idVendor}=="1fc9", ATTR{idProduct}=="000c", SYMLINK+="nxp-dfu-%k", MODE="660", GROUP="plugdev"
5 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/libhackrf/53-hackrf.rules.in:
--------------------------------------------------------------------------------
1 | # HackRF Jawbreaker
2 | ATTR{idVendor}=="1d50", ATTR{idProduct}=="604b", SYMLINK+="hackrf-jawbreaker-%k", MODE="660", GROUP="@HACKRF_GROUP@"
3 | # HackRF One
4 | ATTR{idVendor}=="1d50", ATTR{idProduct}=="6089", SYMLINK+="hackrf-one-%k", MODE="660", GROUP="@HACKRF_GROUP@"
5 | # rad1o
6 | ATTR{idVendor}=="1d50", ATTR{idProduct}=="cc15", SYMLINK+="rad1o-%k", MODE="660", GROUP="@HACKRF_GROUP@"
7 | # NXP Semiconductors DFU mode (HackRF and rad1o)
8 | ATTR{idVendor}=="1fc9", ATTR{idProduct}=="000c", SYMLINK+="nxp-dfu-%k", MODE="660", GROUP="@HACKRF_GROUP@"
9 | # rad1o "full flash" mode
10 | KERNEL=="sd?", SUBSYSTEM=="block", ENV{ID_VENDOR_ID}=="1fc9", ENV{ID_MODEL_ID}=="0042", SYMLINK+="rad1o-flash-%k", MODE="660", GROUP="@HACKRF_GROUP@"
11 | # rad1o flash disk
12 | KERNEL=="sd?", SUBSYSTEM=="block", ENV{ID_VENDOR_ID}=="1fc9", ENV{ID_MODEL_ID}=="0082", SYMLINK+="rad1o-msc-%k", MODE="660", GROUP="@HACKRF_GROUP@"
13 | #
14 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/libhackrf/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright 2012 Jared Boone
2 | # Copyright 2013 Benjamin Vernoux
3 | #
4 | # This file is part of HackRF.
5 | #
6 | # This program is free software; you can redistribute it and/or modify
7 | # it under the terms of the GNU General Public License as published by
8 | # the Free Software Foundation; either version 2, or (at your option)
9 | # any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program; see the file COPYING. If not, write to
18 | # the Free Software Foundation, Inc., 51 Franklin Street,
19 | # Boston, MA 02110-1301, USA.
20 | #
21 |
22 | # Based heavily upon the libftdi cmake setup.
23 |
24 | cmake_minimum_required(VERSION 2.8)
25 | project(libhackrf C)
26 | set(MAJOR_VERSION 0)
27 | set(MINOR_VERSION 5)
28 | set(PACKAGE libhackrf)
29 | set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION})
30 | set(VERSION ${VERSION_STRING})
31 | add_definitions(-DLIBRARY_VERSION="${VERSION_STRING}")
32 | include(${PROJECT_SOURCE_DIR}/../cmake/set_release.cmake)
33 | add_definitions(-DLIBRARY_RELEASE="${RELEASE}")
34 | set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake/modules)
35 |
36 | if(MSVC)
37 | set(THREADS_USE_PTHREADS_WIN32 true)
38 | else()
39 | add_definitions(-Wall)
40 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu90")
41 |
42 | INCLUDE(TestBigEndian)
43 | TEST_BIG_ENDIAN(BIGENDIAN)
44 | if(${BIGENDIAN})
45 | add_definitions(-DHACKRF_BIG_ENDIAN)
46 | endif(${BIGENDIAN})
47 | endif()
48 | find_package(USB1 REQUIRED)
49 | find_package(Threads REQUIRED)
50 |
51 | include_directories(${LIBUSB_INCLUDE_DIR} ${THREADS_PTHREADS_INCLUDE_DIR})
52 |
53 | add_subdirectory(src)
54 |
55 | ########################################################################
56 | # Create Pkg Config File
57 | ########################################################################
58 | FOREACH(inc ${LIBUSB_INCLUDE_DIR})
59 | LIST(APPEND HACKRF_PC_CFLAGS "-I${inc}")
60 | ENDFOREACH(inc)
61 |
62 | # use space-separation format for the pc file
63 | STRING(REPLACE ";" " " HACKRF_PC_CFLAGS "${HACKRF_PC_CFLAGS}")
64 | STRING(REPLACE ";" " " HACKRF_PC_LIBS "${HACKRF_PC_LIBS}")
65 |
66 | # unset these vars to avoid hard-coded paths to cross environment
67 | IF(CMAKE_CROSSCOMPILING)
68 | UNSET(HACKRF_PC_CFLAGS)
69 | UNSET(HACKRF_PC_LIBS)
70 | ENDIF(CMAKE_CROSSCOMPILING)
71 |
72 | set(prefix ${CMAKE_INSTALL_PREFIX})
73 | set(exec_prefix \${prefix})
74 | set(libdir \${exec_prefix}/lib${LIB_SUFFIX})
75 | set(includedir \${prefix}/include)
76 | set(libpkgdata lib${LIB_SUFFIX})
77 |
78 | if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
79 | set(libpkgdata "libdata")
80 | endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
81 |
82 | CONFIGURE_FILE(
83 | ${CMAKE_CURRENT_SOURCE_DIR}/libhackrf.pc.in
84 | ${CMAKE_CURRENT_BINARY_DIR}/libhackrf.pc
85 | @ONLY)
86 |
87 | INSTALL(
88 | FILES ${CMAKE_CURRENT_BINARY_DIR}/libhackrf.pc
89 | DESTINATION ${libpkgdata}/pkgconfig
90 | )
91 |
92 | ########################################################################
93 | # Create Pkg Config File
94 | ########################################################################
95 |
96 | if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
97 | SET(SYSTEM_IS_LINUX TRUE)
98 | SET(UDEV_OPTION_DEFAULT ON)
99 | else()
100 | SET(SYSTEM_IS_LINUX FALSE)
101 | SET(UDEV_OPTION_DEFAULT OFF)
102 | endif()
103 |
104 | option(INSTALL_UDEV_RULES
105 | "Install udev rules for the HackRF"
106 | ${UDEV_OPTION_DEFAULT}
107 | )
108 |
109 | set(UDEV_RULES_PATH
110 | "/etc/udev/rules.d"
111 | CACHE STRING
112 | "Target directory for udev rule installation. Ensure you have permissions to write to this directory."
113 | )
114 |
115 | if(SYSTEM_IS_LINUX)
116 | if(INSTALL_UDEV_RULES)
117 | if(NOT DEFINED UDEV_RULES_GROUP)
118 | foreach(group usb plugdev)
119 | execute_process(COMMAND "getent" group "${group}"
120 | RESULT_VARIABLE _GETENT_RESULT
121 | OUTPUT_QUIET
122 | ERROR_QUIET)
123 | if(NOT _GETENT_RESULT)
124 | message(STATUS "Setting udev rule group to - ${group}")
125 | set(UDEV_RULES_GROUP ${group})
126 | break()
127 | endif(NOT _GETENT_RESULT)
128 | endforeach(group)
129 | endif(NOT DEFINED UDEV_RULES_GROUP)
130 | if(DEFINED UDEV_RULES_GROUP)
131 | set(HACKRF_GROUP "${UDEV_RULES_GROUP}"
132 | CACHE STRING "Group to associate HackRF devices with in udev rules")
133 | configure_file(${CMAKE_CURRENT_SOURCE_DIR}/53-hackrf.rules.in
134 | ${CMAKE_CURRENT_BINARY_DIR}/53-hackrf.rules
135 | @ONLY
136 | )
137 | message(STATUS "HackRF udev rules will be installed to '${UDEV_RULES_PATH}' upon running 'make install'")
138 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/53-hackrf.rules
139 | DESTINATION ${UDEV_RULES_PATH}
140 | COMPONENT "udev_rules")
141 | else(UDEV_RULES_GROUP)
142 | message(STATUS "HackRF udev rules will not be installed because no suitable group was found")
143 | message(STATUS "A group can be specified with -DUDEV_RULES_GROUP=")
144 | endif(DEFINED UDEV_RULES_GROUP)
145 | else(INSTALL_UDEV_RULES)
146 | message(STATUS
147 | "HackRF udev rules will not be installed because INSTALL_UDEV_RULES=OFF"
148 | )
149 | endif(INSTALL_UDEV_RULES)
150 | else(SYSTEM_IS_LINUX)
151 | if(INSTALL_UDEV_RULES)
152 | message(STATUS "udev rules not supported on this platform. Hide this message via -DINSTALL_UDEV_RULES=Off")
153 | endif(INSTALL_UDEV_RULES)
154 | endif(SYSTEM_IS_LINUX)
155 |
156 | ########################################################################
157 | # Create uninstall target
158 | ########################################################################
159 | if(NOT HackRF_SOURCE_DIR)
160 | configure_file(
161 | ${PROJECT_SOURCE_DIR}/../cmake/cmake_uninstall.cmake.in
162 | ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
163 | @ONLY)
164 |
165 | add_custom_target(uninstall
166 | ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
167 | )
168 | endif()
169 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/libhackrf/libhackrf.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@prefix@
2 | exec_prefix=@exec_prefix@
3 | libdir=@libdir@
4 | includedir=@includedir@
5 |
6 | Name: HackRF Library
7 | Description: C Utility Library
8 | Version: @VERSION@
9 | Cflags: -I${includedir} -I${includedir}/libhackrf -I/usr/include/libusb-1.0
10 | Libs: -L${libdir} -lhackrf
11 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/libhackrf/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (c) 2012, Jared Boone
3 | # Copyright (c) 2013, Benjamin Vernoux
4 | # Copyright (c) 2013, Michael Ossmann
5 | #
6 | # All rights reserved.
7 | #
8 | # Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
9 | #
10 | # Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
11 | # Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
12 | # documentation and/or other materials provided with the distribution.
13 | # Neither the name of Great Scott Gadgets nor the names of its contributors may be used to endorse or promote products derived from this software
14 | # without specific prior written permission.
15 | #
16 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17 | # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 | # IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21 | # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 | #
23 | # Based heavily upon the libftdi cmake setup.
24 |
25 | # Targets
26 | set(c_sources ${CMAKE_CURRENT_SOURCE_DIR}/hackrf.c CACHE INTERNAL "List of C sources")
27 | set(c_headers ${CMAKE_CURRENT_SOURCE_DIR}/hackrf.h CACHE INTERNAL "List of C headers")
28 |
29 | # Dynamic library
30 | add_library(hackrf SHARED ${c_sources})
31 | set_target_properties(hackrf PROPERTIES VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.0 SOVERSION 0)
32 |
33 | # Static library
34 | add_library(hackrf-static STATIC ${c_sources})
35 | if(MSVC)
36 | set_target_properties(hackrf-static PROPERTIES OUTPUT_NAME "hackrf_static")
37 | else()
38 | set_target_properties(hackrf-static PROPERTIES OUTPUT_NAME "hackrf")
39 | endif()
40 |
41 | set_target_properties(hackrf PROPERTIES CLEAN_DIRECT_OUTPUT 1)
42 | set_target_properties(hackrf-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
43 |
44 | # Dependencies
45 | target_link_libraries(hackrf ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
46 |
47 | # For cygwin just force UNIX OFF and WIN32 ON
48 | if( ${CYGWIN} )
49 | SET(UNIX OFF)
50 | SET(WIN32 ON)
51 | endif( ${CYGWIN} )
52 |
53 | if( ${UNIX} )
54 | install(TARGETS hackrf
55 | LIBRARY DESTINATION lib${LIB_SUFFIX}
56 | COMPONENT sharedlibs
57 | )
58 | install(TARGETS hackrf-static
59 | ARCHIVE DESTINATION lib${LIB_SUFFIX}
60 | COMPONENT staticlibs
61 | )
62 | install(FILES ${c_headers}
63 | DESTINATION include/${PROJECT_NAME}
64 | COMPONENT headers
65 | )
66 | endif( ${UNIX} )
67 |
68 | if( ${WIN32} )
69 | install(TARGETS hackrf
70 | DESTINATION bin
71 | COMPONENT sharedlibs
72 | )
73 | install(TARGETS hackrf-static
74 | DESTINATION bin
75 | COMPONENT staticlibs
76 | )
77 | install(FILES ${c_headers}
78 | DESTINATION include/${PROJECT_NAME}
79 | COMPONENT headers
80 | )
81 | endif( ${WIN32} )
82 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/libhackrf/src/hackrf.h:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2012, Jared Boone
3 | Copyright (c) 2013, Benjamin Vernoux
4 | Copyright (c) 2013, Michael Ossmann
5 |
6 | All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
9 |
10 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
11 | Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 | Neither the name of Great Scott Gadgets nor the names of its contributors may be used to endorse or promote products derived from this software
14 | without specific prior written permission.
15 |
16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 | IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 | */
23 |
24 | #ifndef __HACKRF_H__
25 | #define __HACKRF_H__
26 |
27 | #include
28 |
29 | #ifdef _WIN32
30 | #define ADD_EXPORTS
31 |
32 | /* You should define ADD_EXPORTS *only* when building the DLL. */
33 | #ifdef ADD_EXPORTS
34 | #define ADDAPI __declspec(dllexport)
35 | #else
36 | #define ADDAPI __declspec(dllimport)
37 | #endif
38 |
39 | /* Define calling convention in one place, for convenience. */
40 | #define ADDCALL __cdecl
41 |
42 | #else /* _WIN32 not defined. */
43 |
44 | /* Define with no value on non-Windows OSes. */
45 | #define ADDAPI
46 | #define ADDCALL
47 |
48 | #endif
49 |
50 | #define SAMPLES_PER_BLOCK 8192
51 | #define BYTES_PER_BLOCK 16384
52 | #define MAX_SWEEP_RANGES 10
53 |
54 | enum hackrf_error {
55 | HACKRF_SUCCESS = 0,
56 | HACKRF_TRUE = 1,
57 | HACKRF_ERROR_INVALID_PARAM = -2,
58 | HACKRF_ERROR_NOT_FOUND = -5,
59 | HACKRF_ERROR_BUSY = -6,
60 | HACKRF_ERROR_NO_MEM = -11,
61 | HACKRF_ERROR_LIBUSB = -1000,
62 | HACKRF_ERROR_THREAD = -1001,
63 | HACKRF_ERROR_STREAMING_THREAD_ERR = -1002,
64 | HACKRF_ERROR_STREAMING_STOPPED = -1003,
65 | HACKRF_ERROR_STREAMING_EXIT_CALLED = -1004,
66 | HACKRF_ERROR_USB_API_VERSION = -1005,
67 | HACKRF_ERROR_OTHER = -9999,
68 | };
69 |
70 | enum hackrf_board_id {
71 | BOARD_ID_JELLYBEAN = 0,
72 | BOARD_ID_JAWBREAKER = 1,
73 | BOARD_ID_HACKRF_ONE = 2,
74 | BOARD_ID_RAD1O = 3,
75 | BOARD_ID_INVALID = 0xFF,
76 | };
77 |
78 | enum hackrf_usb_board_id {
79 | USB_BOARD_ID_JAWBREAKER = 0x604B,
80 | USB_BOARD_ID_HACKRF_ONE = 0x6089,
81 | USB_BOARD_ID_RAD1O = 0xCC15,
82 | USB_BOARD_ID_INVALID = 0xFFFF,
83 | };
84 |
85 | enum rf_path_filter {
86 | RF_PATH_FILTER_BYPASS = 0,
87 | RF_PATH_FILTER_LOW_PASS = 1,
88 | RF_PATH_FILTER_HIGH_PASS = 2,
89 | };
90 |
91 | enum operacake_ports {
92 | OPERACAKE_PA1 = 0,
93 | OPERACAKE_PA2 = 1,
94 | OPERACAKE_PA3 = 2,
95 | OPERACAKE_PA4 = 3,
96 | OPERACAKE_PB1 = 4,
97 | OPERACAKE_PB2 = 5,
98 | OPERACAKE_PB3 = 6,
99 | OPERACAKE_PB4 = 7,
100 | };
101 |
102 | enum sweep_style {
103 | LINEAR = 0,
104 | INTERLEAVED = 1,
105 | };
106 |
107 | typedef struct hackrf_device hackrf_device;
108 |
109 | typedef struct {
110 | hackrf_device* device;
111 | uint8_t* buffer;
112 | int buffer_length;
113 | int valid_length;
114 | void* rx_ctx;
115 | void* tx_ctx;
116 | } hackrf_transfer;
117 |
118 | typedef struct {
119 | uint32_t part_id[2];
120 | uint32_t serial_no[4];
121 | } read_partid_serialno_t;
122 |
123 |
124 | struct hackrf_device_list {
125 | char **serial_numbers;
126 | enum hackrf_usb_board_id *usb_board_ids;
127 | int *usb_device_index;
128 | int devicecount;
129 |
130 | void **usb_devices;
131 | int usb_devicecount;
132 | };
133 | typedef struct hackrf_device_list hackrf_device_list_t;
134 |
135 | typedef int (*hackrf_sample_block_cb_fn)(hackrf_transfer* transfer);
136 |
137 | #ifdef __cplusplus
138 | extern "C"
139 | {
140 | #endif
141 |
142 | extern ADDAPI int ADDCALL hackrf_init();
143 | extern ADDAPI int ADDCALL hackrf_exit();
144 |
145 | extern ADDAPI const char* ADDCALL hackrf_library_version();
146 | extern ADDAPI const char* ADDCALL hackrf_library_release();
147 |
148 | extern ADDAPI hackrf_device_list_t* ADDCALL hackrf_device_list();
149 | extern ADDAPI int ADDCALL hackrf_device_list_open(hackrf_device_list_t *list, int idx, hackrf_device** device);
150 | extern ADDAPI void ADDCALL hackrf_device_list_free(hackrf_device_list_t *list);
151 |
152 | extern ADDAPI int ADDCALL hackrf_open(hackrf_device** device);
153 | extern ADDAPI int ADDCALL hackrf_open_by_serial(const char* const desired_serial_number, hackrf_device** device);
154 | extern ADDAPI int ADDCALL hackrf_close(hackrf_device* device);
155 |
156 | extern ADDAPI int ADDCALL hackrf_start_rx(hackrf_device* device, hackrf_sample_block_cb_fn callback, void* rx_ctx);
157 | extern ADDAPI int ADDCALL hackrf_stop_rx(hackrf_device* device);
158 |
159 | extern ADDAPI int ADDCALL hackrf_start_tx(hackrf_device* device, hackrf_sample_block_cb_fn callback, void* tx_ctx);
160 | extern ADDAPI int ADDCALL hackrf_stop_tx(hackrf_device* device);
161 |
162 | /* return HACKRF_TRUE if success */
163 | extern ADDAPI int ADDCALL hackrf_is_streaming(hackrf_device* device);
164 |
165 | extern ADDAPI int ADDCALL hackrf_max2837_read(hackrf_device* device, uint8_t register_number, uint16_t* value);
166 | extern ADDAPI int ADDCALL hackrf_max2837_write(hackrf_device* device, uint8_t register_number, uint16_t value);
167 |
168 | extern ADDAPI int ADDCALL hackrf_si5351c_read(hackrf_device* device, uint16_t register_number, uint16_t* value);
169 | extern ADDAPI int ADDCALL hackrf_si5351c_write(hackrf_device* device, uint16_t register_number, uint16_t value);
170 |
171 | extern ADDAPI int ADDCALL hackrf_set_baseband_filter_bandwidth(hackrf_device* device, const uint32_t bandwidth_hz);
172 |
173 | extern ADDAPI int ADDCALL hackrf_rffc5071_read(hackrf_device* device, uint8_t register_number, uint16_t* value);
174 | extern ADDAPI int ADDCALL hackrf_rffc5071_write(hackrf_device* device, uint8_t register_number, uint16_t value);
175 |
176 | extern ADDAPI int ADDCALL hackrf_spiflash_erase(hackrf_device* device);
177 | extern ADDAPI int ADDCALL hackrf_spiflash_write(hackrf_device* device, const uint32_t address, const uint16_t length, unsigned char* const data);
178 | extern ADDAPI int ADDCALL hackrf_spiflash_read(hackrf_device* device, const uint32_t address, const uint16_t length, unsigned char* data);
179 |
180 | /* device will need to be reset after hackrf_cpld_write */
181 | extern ADDAPI int ADDCALL hackrf_cpld_write(hackrf_device* device,
182 | unsigned char* const data, const unsigned int total_length);
183 |
184 | extern ADDAPI int ADDCALL hackrf_board_id_read(hackrf_device* device, uint8_t* value);
185 | extern ADDAPI int ADDCALL hackrf_version_string_read(hackrf_device* device, char* version, uint8_t length);
186 | extern ADDAPI int ADDCALL hackrf_usb_api_version_read(hackrf_device* device, uint16_t* version);
187 |
188 | extern ADDAPI int ADDCALL hackrf_set_freq(hackrf_device* device, const uint64_t freq_hz);
189 | extern ADDAPI int ADDCALL hackrf_set_freq_explicit(hackrf_device* device,
190 | const uint64_t if_freq_hz, const uint64_t lo_freq_hz,
191 | const enum rf_path_filter path);
192 |
193 | /* currently 8-20Mhz - either as a fraction, i.e. freq 20000000hz divider 2 -> 10Mhz or as plain old 10000000hz (double)
194 | preferred rates are 8, 10, 12.5, 16, 20Mhz due to less jitter */
195 | extern ADDAPI int ADDCALL hackrf_set_sample_rate_manual(hackrf_device* device, const uint32_t freq_hz, const uint32_t divider);
196 | extern ADDAPI int ADDCALL hackrf_set_sample_rate(hackrf_device* device, const double freq_hz);
197 |
198 | /* external amp, bool on/off */
199 | extern ADDAPI int ADDCALL hackrf_set_amp_enable(hackrf_device* device, const uint8_t value);
200 |
201 | extern ADDAPI int ADDCALL hackrf_board_partid_serialno_read(hackrf_device* device, read_partid_serialno_t* read_partid_serialno);
202 |
203 | /* range 0-40 step 8d, IF gain in osmosdr */
204 | extern ADDAPI int ADDCALL hackrf_set_lna_gain(hackrf_device* device, uint32_t value);
205 |
206 | /* range 0-62 step 2db, BB gain in osmosdr */
207 | extern ADDAPI int ADDCALL hackrf_set_vga_gain(hackrf_device* device, uint32_t value);
208 |
209 | /* range 0-47 step 1db */
210 | extern ADDAPI int ADDCALL hackrf_set_txvga_gain(hackrf_device* device, uint32_t value);
211 |
212 | /* antenna port power control */
213 | extern ADDAPI int ADDCALL hackrf_set_antenna_enable(hackrf_device* device, const uint8_t value);
214 |
215 | extern ADDAPI const char* ADDCALL hackrf_error_name(enum hackrf_error errcode);
216 | extern ADDAPI const char* ADDCALL hackrf_board_id_name(enum hackrf_board_id board_id);
217 | extern ADDAPI const char* ADDCALL hackrf_usb_board_id_name(enum hackrf_usb_board_id usb_board_id);
218 | extern ADDAPI const char* ADDCALL hackrf_filter_path_name(const enum rf_path_filter path);
219 |
220 | /* Compute nearest freq for bw filter (manual filter) */
221 | extern ADDAPI uint32_t ADDCALL hackrf_compute_baseband_filter_bw_round_down_lt(const uint32_t bandwidth_hz);
222 | /* Compute best default value depending on sample rate (auto filter) */
223 | extern ADDAPI uint32_t ADDCALL hackrf_compute_baseband_filter_bw(const uint32_t bandwidth_hz);
224 |
225 | /* All features below require USB API version 0x1002 or higher) */
226 |
227 | /* set hardware sync mode */
228 | extern ADDAPI int ADDCALL hackrf_set_hw_sync_mode(hackrf_device* device, const uint8_t value);
229 |
230 | /* Start sweep mode */
231 | extern ADDAPI int ADDCALL hackrf_init_sweep(hackrf_device* device,
232 | const uint16_t* frequency_list, const int num_ranges,
233 | const uint32_t num_bytes, const uint32_t step_width,
234 | const uint32_t offset, const enum sweep_style style);
235 |
236 | /* Operacake functions */
237 | extern ADDAPI int ADDCALL hackrf_get_operacake_boards(hackrf_device* device, uint8_t* boards);
238 | extern ADDAPI int ADDCALL hackrf_set_operacake_ports(hackrf_device* device,
239 | uint8_t address,
240 | uint8_t port_a,
241 | uint8_t port_b);
242 |
243 | extern ADDAPI int ADDCALL hackrf_reset(hackrf_device* device);
244 |
245 | extern ADDAPI int ADDCALL hackrf_set_operacake_ranges(hackrf_device* device,
246 | uint8_t* ranges,
247 | uint8_t num_ranges);
248 |
249 | #ifdef __cplusplus
250 | } // __cplusplus defined.
251 | #endif
252 |
253 | #endif /*__HACKRF_H__*/
254 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/cpp/reconf:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | rm -f config.cache
4 | [ -d m4 ] || mkdir m4
5 | autoreconf -i
6 |
7 |
--------------------------------------------------------------------------------
/sdr/libraries/captivation.libhackrf/libhackrf.spd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | The implementation contains descriptive information about the template for a software resource.
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/sdr/nodes/captivation.HackRFNode/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | captivation.HackRFNode
4 |
5 |
6 |
7 |
8 |
9 | gov.redhawk.ide.builders.scaproject
10 |
11 |
12 |
13 |
14 |
15 | gov.redhawk.ide.natures.scaproject
16 | gov.redhawk.ide.natures.sca.node
17 |
18 |
19 |
--------------------------------------------------------------------------------
/sdr/nodes/captivation.HackRFNode/DeviceManager.dcd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | HackRFOne_1
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/sdr/nodes/captivation.HackRFNode/DeviceManager.dcd_GDiagram:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
--------------------------------------------------------------------------------