Commit Graph

1078 Commits

Author SHA1 Message Date
Piotr Krysik 0f3bceb13d apps/grgsm_trx: remove unnecessary checks of freq_offset
Checking if freq_offset is None doesn't make sense currently
as it's always set to a float value by argparse (to 0 by default).

Change-Id: Ie8bae1ccde60d07fc25e0b874afa5aaaac04d8a7
2018-09-13 14:53:26 +02:00
Piotr Krysik 0631767b24 trx/radio_if: add freq_offset parameter to constructor
Change-Id: Ie1db02b719a0fec478b8a8b8a95643fb10fdfce5
2018-09-13 14:41:06 +02:00
Vasil Velichkov 89585b374b burst_file_source: Fix reading longer bursts
- Read bursts with pmt::deserialize directly from the std::filebuf
- Remove the unused unserialized variable
- Add tests

Since df978693 when the rx_time tags are present in the incomming stream
the gsm receiver adds fm_time to the burst's PMT and the bursts that
burst file sink writes becomes longer because of the additional field.

The burst file source block was expecting all burst to be 147 bytes long
and reading files with longer bursts was failing with an unhandled exception.

terminate called after throwing an instance of 'pmt::exception'
thread[thread-per-block[5]: <block dummy_burst_filter (2)>]: pmt_cdr: wrong_type : #f
  what():  pmt::deserialize: malformed input stream, tag value = : 115

Change-Id: I989b0d6a6b214088b7880e5cbf7bb6725492dbfc
2018-09-13 09:35:28 +00:00
Piotr Krysik 7379e341b0 apps/grgsm_trx: migrate from getopt to argparse
Change-Id: I24a17b4cd44db0ce95a19d7470f4f09f3c85a26d
2018-09-12 00:37:40 +07:00
Piotr Krysik b3d5c5743b trx/radio_if.py: clarify magic numbers in sample rate calculation
Change-Id: I55f283113d0324a0236b7bbf13bce5718003b857
2018-09-12 00:37:29 +07:00
Vadim Yanitskiy 38baac9678 apps/grgsm_trx: fix inaccurate sample rate calculation
Change-Id: I0c309588fa0f7822abfb3919327639735db07679
2018-09-12 00:36:13 +07:00
Vasil Velichkov 75ae9cc361 Format the output into ostringstream and then write it at once.
This fixes the garbled output when multiple printers are used in a
flowgraph.

closes #255
closes #420

Change-Id: I1012ed26371b4c67163545652f0a1ce0f576af9e
2018-09-11 09:12:02 +00:00
Vasil Velichkov fb1f65c572 grgsm_scanner: Add --debug option
When set the stdout and stderr won't be redirected to /dev/null which
will facilitate resolving issues

Change-Id: I11e99facb5a1ab9c9bfee3c314a91a74f98a2523
2018-09-11 08:13:23 +00:00
Piotr Krysik 1cc264fb0c Revert "grgsm_trx: Migrated argument parsing to argparse" that shouldn't be pushed
This reverts commit c62a3d9f55.
2018-09-06 19:57:57 +02:00
Piotr Krysik c62a3d9f55 grgsm_trx: Migrated argument parsing to argparse
Argparse makes adding new parameters easier and
adds consistent way of handling default values of
parameters and printing of their help info.

Change-Id: Idf99fd7a581464aa2f77fe01e721dbd162686811
2018-09-05 21:36:34 +02:00
Vadim Yanitskiy 97dc84e9f3 apps/grgsm_trx: add baseband frequency shift feature
An ability to shift the baseband frequency would allow one to
run both base stations and (OsmocomBB-based) mobile stations on
any frequency (e.g. in 2.4 GHz WiFi band)!

This is achieved by adding a given frequency offset to the
result of "ARFCN -> RX/TX frequency" calculation.

Usage example:

  grgsm_trx --freq-offset -500M

Both RX (Downlink) and TX (Uplink) frequencies will be shifted
by 500 MHz back, e.g. tuning request to ARFCN 105 would result
in tuning the radio to 456.0 MHz (instead of 956.0 MHz).

Related: OS#3520 (https://osmocom.org/versions/136)
Change-Id: I42e397e47402a87f4141ef31b25eff4c8c1267e2
2018-09-05 02:36:08 +07:00
Piotr Krysik 840885fe3c Changed submodule URLs to point to osmocom servers 2018-08-31 12:22:33 +02:00
Piotr Krysik 592ec9b785 Increasing version number
in order to correct wrongs of previous attempt

Change-Id: Ie067b48a9c67a13e928598ec722a7e27c464de8f
2018-08-12 20:13:50 +02:00
Piotr Krysik d30d0c23e3 New gr-gsm version
Change-Id: I72eafebe892692ad0db5ad149e14f2c59b41d3d2
2018-08-10 21:13:59 +02:00
Vadim Yanitskiy 2adbee48bf apps/grgsm_trx: print bind / remote address and port
Change-Id: If750d476f3972f1ab5c5b637438d14d40b1e3d87
2018-08-10 16:38:59 +07:00
Vadim Yanitskiy 473b35be86 apps/grgsm_trx: introduce bind address option
The new option (-b --bind-addr) allows one to specify the bind
address for both DATA and CTRL interfaces. By default, '0.0.0.0'
is used, so there are no restrictions for the L1 source address.

Change-Id: I3339f686b53db07cfd1bff9a516f4bdc28058cd9
2018-08-10 16:38:59 +07:00
Vadim Yanitskiy 5394c6012d gsm_trx_burst_if: allow to customize the bind address
Pleviously remote address for DATA interface was also used as the
bind address, what is definitely wrong. Let's change the API a bit
in order to allow one to specify a custom bind address.

Change-Id: I6e5f7b7119ac454217b8dd04f9ee0dd3b23972b6
2018-08-10 16:38:59 +07:00
Vadim Yanitskiy 0e246372bc trx/ctrl_if.py: send control responses to where commands are from
When we receive a control command, we should not simply send the
response to the default destination, but send it back to the exact
IP/prt from which the command originated.

This ensures correct routing of responses even in case multiple
programs are interfacing concurrently with a control socket.

Cherry-picked from: I24a0bba6eed059b101af95dac7d059f34dd715fc
Change-Id: I1f304ea887dc957d3ad53adb1e3c56ab27d8f196
2018-08-10 16:38:59 +07:00
Vadim Yanitskiy b085a2c854 trx/udp_link.py: set SO_REUSEADDR socket option
Setting this option allows one to reuse existing connections,
for example, by injecting CTRL commands or DATA bursts
into existing connections.

Cherry-picked from: I0882c76affa9a668a12d10967081054d2b666ed1
Change-Id: I6d256683a7aa0419cd5bd0a3eaa97aefdf3254f9
2018-08-10 16:38:59 +07:00
Vadim Yanitskiy bf6f6ec0de trx/udp_link.py: close socket in destructor
Previously it was required to call the UDPLink.shutdown() method
manually in order to close a socket. Let's do it automatically
using the destructor of UDPLink.

Cherry-picked from: I59c3dc61ec58cd9effeb789947d28fd602ca91f4
Change-Id: Ief7aa21d1e50682a90616833b679741957193aae
2018-08-10 16:38:59 +07:00
Vadim Yanitskiy 8e1fa8bdd7 apps/grgsm_trx: use format string for help message
Instead of using the hard-coded default values in help message,
it makes sense to use a format string, and pass the actual
values when printing help.

Change-Id: Ib1bf0ef3ded86aa92faeb9b63eb286283f5c8c3d
2018-08-10 16:38:59 +07:00
Vadim Yanitskiy 4fdb08fd20 trx/radio_if.py: drop useless import of osmosdr
Change-Id: Iacd5ca118957e3ecf05df81f511b17bb9a8982b5
2018-08-10 16:38:59 +07:00
Vadim Yanitskiy 0017a35aab trx/radio_if.py: reset UHD device time at startup
Some UHD devices, such as UmTRX, require one to manually reset the
hardware clock, otherwise the burst transmission doesn't work.

Change-Id: Idddc1387199bd22342ec5af25c8635e73352e315
2018-08-10 16:38:53 +07:00
Vadim Yanitskiy cae78211a6 grgsm_trx: change default TRX port number to 6700
In order to avoid clashes with OsmoTRX, which may be also
running on the same host, let's use a different port range
starting from 6700 by default.

This idea was introduced as a result of OS#2984.

Change-Id: Iaf0c78733bfefcb0b0938abf6d316e27d03ecab4
2018-08-10 15:11:23 +07:00
Vadim Yanitskiy 3674f48df5 apps/grgsm_trx: also print Piotr as a copyright holder
Despite the most part of Python code was written by Vadim, it's
heavily based on huge and impressive work done by Piotr. Let's
also print his credentials in the license header.

Change-Id: Icca7c679d84f99440ff502219f624e0f73112744
2018-08-10 15:11:23 +07:00
Piotr Krysik 332e2be78f tests: Fix Debian and Kali dockerfiles
Change-Id: I61d37cb6882a8ca7bbfc97412c52e745a2e5ec7c
2018-07-28 13:25:00 +02:00
Piotr Krysik e4010dbef0 Keep the old mailing list for now
but change wiki address and installation description
addres to the new (osmocom) ones.
2018-07-12 10:46:39 +02:00
Harald Welte 99997ff535 README.md: Turn URLs into hyperlinks (video, mailing list)
Change-Id: Iacf7c4b13b0e32ea7761b859f7422ab630c8616f
2018-07-12 10:24:20 +02:00
Harald Welte 8bb1b79a33 README.md: Change mailing list address to osmocom.org
Change-Id: Ie7b474138444f0ceea160f74df4b693030ea07a8
2018-07-12 10:24:20 +02:00
Piotr Krysik ac140210c9 Simplify cmake checks related to libosmocore 2018-06-19 12:07:28 +02:00
Vasil Velichkov e153e729cd Run tests with CTEST_OUTPUT_ON_FAILURE=1 2018-06-19 09:00:12 +02:00
Vasil Velichkov f1b6c6bc2a Add LOCAL_OSMOCOM cmake option
When set the gr-gsm will be compiled and linked with the local copies of
the osmocom libraries.
2018-06-19 09:00:03 +02:00
Piotr Krysik f00936d60d Placing grcc compilation utils in separate files
Avoiding increasing required cmake version with use of wrapper shell script.
2018-06-18 15:13:25 +02:00
Piotr Krysik c711e97af1 Separating libosmogsm from the rest 2018-06-18 15:13:13 +02:00
Vasil Velichkov 9b5519db84 Check that pkg-config is available
It is needed to properly detect the grcc full path
See also 3f6ab15a7a
2018-06-18 15:11:17 +02:00
Vasil Velichkov 8c4eefb205 Add DEBIAN_FRONTEND=noninteractive 2018-06-18 15:11:17 +02:00
Vasil Velichkov 487bf4764e Fix the parallel build with cmake 3.11
Copy UseSWIG.cmake from the gnuradio repository from commit
4433a7703fe3f5713c2200a0f7c11b13510f34cc

This macro is distributed in the Debian's gnuradio-dev package but it's
not available in Fedora/Centos gnuradio-devel package. The gnuradio's
version contains a fix for the parallel build 99a09af05fda6d0bab0cf3724a1c6bf453c71bc7
and some other improvements as well.
2018-06-18 15:11:17 +02:00
Vasil Velichkov 8f4b5ba372 Add CentOS7 docker container 2018-06-18 15:11:17 +02:00
Vasil Velichkov 014ed2be5c Add cmake options that enable/disable grcc compilation
To disable compilation of both grgsm_livemon and grgsm_livemon_headless
execute

  cmake -DENABLE_GRCC=OFF ..

To disable only one execute

  cmake -DENABLE_GRGSM_LIVEMON=OFF ..
  cmake -DENABLE_GRGSM_LIVEMON_HEADLESS=OFF ..
2018-06-18 15:11:17 +02:00
Piotr Krysik 47c3e9bf43 Changing tabs to spaces 2018-06-04 09:11:59 +02:00
Piotr Krysik 1e7241464a Disabling installation of desktop files
Installation of dekstop files is causing problems with packaging - github issue #335.
Disabling it then.
2018-06-04 09:11:47 +02:00
Piotr Krysik ea44d98558 Commenting out a line causeing crash on HackRF 2018-06-02 12:27:58 +02:00
Piotr Krysik 2779e62094 Fix includes after moving trx_burst_if 2018-05-06 22:23:06 +02:00
Piotr Krysik 69434963d9 Added short description of grgsm_trx 2018-05-05 13:06:22 +02:00
Piotr Krysik ea7a66cb86 Updated e-mail addresses of Vadim and Vasil 2018-05-05 13:06:02 +02:00
Piotr Krysik 650a436a8d Fix burst_to_fn_time name in gsm_burst_to_fn_time.xml 2018-05-05 12:40:14 +02:00
Piotr Krysik 993055342d Moving trx burst interface to trx directory
and to new 'Transceiver' cathegory in gnuradio-companion
2018-05-05 12:38:11 +02:00
Piotr Krysik 3c1452f94f Fix gsm_msg_to_tag block record in grc/gsm_block_tree.xml
so it appear in gnuradio-companion
2018-05-05 12:24:33 +02:00
Piotr Krysik 2471052cfe Merge branch 'fixeria/trx' of https://github.com/axilirator/gr-gsm into fixeria_trx
# Resolved conflicts:
#	apps/grgsm_trx
#	python/trx/radio_if.py
#	swig/grgsm_swig.i
2018-04-17 09:10:33 +02:00
Piotr Krysik 2ece45f516 Adding Vadim and Vasil to the credits section 2018-04-17 08:48:40 +02:00