Add support for RACH bursts although they are not yet supported in the
receiver and control channel decoder blocks.
3GPP TS 45.002 version 15.1.0 Release 15
Table 3 : Mapping of logical channels onto physical channels (see subclauses 6.3, 6.4, 6.5)
Figure 8a: TDMA frame mapping for FCCH + SCH + BCCH + CCCH
Fixes the following tests:
qa_gsm_bcch_ccch_demapper.test_uplink
qa_gsm_bcch_ccch_sdcch4_demapper.test_uplink
Change-Id: Ia6b3070c1085bcdda6d98fd94a89c6e0982e2aec
When gr-osmosdr is compiled with SoapySDR support and SoapyAudio is
installed the audio device is picked as a first choice when detecting
devices but grgsm tools are not able to work with audio devices. So in
such cases the user has to always specify the correct SDR device in the
args parameter which is a bit inconvenient.
When args is not specified call osmosdr.device_find to get all devices
and filter out unspported ones like SoapyAudio devices. When args is
specifed just try to create osmosdr.source with whatever value has been
specified.
Add -l and --list-devices command line option that prints information
about all detected devices.
Example commands:
grgsm_capture --list-devices
grgsm_capture --list-devices --args=nofake
grgsm_capture --args=uhd,type=b210 -a 111 capture.cfile
grgsm_livemon --args=rtl
grgsm_livemon --args=uhd,type=b210
Change-Id: Ib84081041ca6c2bc18b9da0c32bac9d3ecef65ca
We need a space between numchan=1 and the rest of the device arguments
otherwise when --args is specified it fails with RuntimeError: bad lexical cast
$ grgsm_capture --args=soapy
Traceback (most recent call last):
File "/usr/local/bin/grgsm_capture", line 179, in <module>
device_args=options.device_args)
File "/usr/local/bin/grgsm_capture", line 57, in __init__
osmosdr.source(args="numchan=1" + device_args )
File "/usr/local/lib64/python2.7/site-packages/osmosdr/osmosdr_swig.py", line 1170, in make
return _osmosdr_swig.source_make(*args, **kwargs)
RuntimeError: bad lexical cast: source type value could not be interpreted as target
Change-Id: I2d1bcee835b695c91a5c44ec78a40b2d969f611c
- Change "6,90 kbit/s" to "5.9 kbit/s"
A typo reported in github ptrkrysik/gr-gsm#456
- Comment out the "Error! frame_nr:" message as it turns out to confuse
users more then it actually helps debugging.
- When voice-boundary detection is enabled write the name of decoded
control channel messages
Change-Id: I697ef944f30c4cabb62c888317dd3a7f8dcd5611
- The second argument of tch_h_decoder constructor is a string that
accepts the value of MultiRate configuration element and not an enum
like the tch_f_decoder decoder.
- Make the demapper's burst sink required.
- Make all parameters visible.
- Rename the TCH/H Channel parameter to Sub-channel number.
- Add the qa_tch_h_decoder test in the CMakeLists.txt
- Fix several typos
Change-Id: I92d4f49955c634df7d76f17cfb58d7106846c1bd
grmgs_capture tried to do too many things for a simple recorder.
It was simplified by removing the receiver and ability to
save data to bursts files.
All other stuff that is not necessary for recording signal to disk was
also removed:
-setters/getters,
-storing of parameters that never will be changed.
The 'fc' parameter name was changed to 'freq' to follow GNU Radio
guidelines.
The 'shiftoff' parameter was removed.
'bb_gain' and 'if_gain' parameters were added.
Variables specific to some of SDR's like:
-gains at different stages,
-bandwidth (not all devices can set it),
-antennas (some devices have just one, some not),
were moved to separate options group.
What is left to be exposed is:
-dc_offset_mode,
-iq_balance_mode,
-gain_mode.
Change-Id: I092a43eaddb09a99c6cc05fde13f0ae94d9e0251
In the GSM input adaptor and GSM Receiver blocks the osr was hardcoded
to 4 and cannot be changed using the command line parameter.
Change-Id: I4e85b898f05db636f18fdea6e5fee4fed6e0382a
- Include grgsm/endian.h in tch_h_decoder_impl.cc
- Revert 0ed39fbf93 as linking with
boost_thread is needed
Fixes GH-444
Change-Id: I00884962295082cff3eb64fa21e9f73437be0001
The old name was quite long, resulting into cumbersome imports:
from change_sign_of_dict_elements import change_sign_of_dict_elements
let's use a shorter variant:
from dict_toggle_sign import dict_toggle_sign
Change-Id: Ie75e1d6e5e74c7c1cf34154633c1472e4b85dbb6
This is the output format of rtl_sdr and hackrf_transfer and this would
allow direct channelization without an additional post processing.
Change-Id: Ia489eca9ec7defc3a83946c42f1ae3f136efe4e8
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
- 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
This fixes the garbled output when multiple printers are used in a
flowgraph.
closes #255
closes #420
Change-Id: I1012ed26371b4c67163545652f0a1ce0f576af9e