Fixes this type of compilation warning:
‘void* memcpy(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘class Complex<float>’; use copy-assignment or copy-initialization instead [-Werror=class-memaccess]
Change-Id: Ibb2380a0a335ce798fe87221519fbbebade53054
This change allows to remove some wrong use of code as per compilation
warning:
osmo-trx/Transceiver52M/sigProcLib.cpp:1266:40: error:
‘void* memcpy(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘class Complex<float>’; use copy-assignment or copy-initialization instead [-Werror=class-memaccess]
midMidamble->size() * sizeof(complex));
Change-Id: Id446711349bec70fa4e7c8efe0f7f9faf7e4f277
Fixes compilation warning:
In file included from osmo-trx/Transceiver52M/device/uhd/UHDDevice.cpp:31:
/usr/include/uhd/utils/thread_priority.hpp:10:17: note: #pragma message: This header is deprecated - please use <uhd/utils/thread.hpp> instead.
Header was moved in uhd.git c33928d2bbdd27688c3475e77fc461e7d16eba5a.
Change-Id: I6299df48a5e14c54eaa07288d166c705eb9ebdbe
We don't want the version of the last tagged version, but the version
number uniquely representing the current HEAD. Use the script from
libosmocore.
I suspect that this somehow got broken in commit 00d5114717
Related: OS#3517
Change-Id: Iba3212aa417dce4240c5c27eb4f12afcd9c95e5b
This is useful if we add more AC_CHECK_HEADER or similar configure tests including
C++ header files or required C++ features, since otherwise gcc is used
by default and test fail.
Change-Id: Iee757c78b72290c5d2a4c31339800a4e72b6be23
Transceiver::stop() can only be called from either CTRL iface thread or
from main thread (running osmocom loop). That's because stop attempts to
cancel and then join all the other threads, which would then lock if
attempting to stop from some of them.
As a result, the best option is to indicate to the user of the
transceiver option (osmo-trx.cpp) to stop it in a correct fashion by
destroying the object from the main thread.
Change-Id: Iac1d2dbe2328e735db2d4b933cb67b1af1babca1
If LImeSDR device is unplugged or its fw crashes during operation,
reading from the device will fail and will first receive short reads and
finally 0 byte reads. Let's quickly notify these events to upper layers
instead of trying to process the buffer and checking timestamps for
something we know it's already not useful.
Related: OS#3340
Change-Id: Ib1af8cdd6cdadf581b039882add4049eea45a0f7
pthread_cancel is implemented in c++ using exception handlers. In
destructor of Log object, the log function is called which will
eventually call fputs() to write to a file. Since that function is
considered a cancelation point, if pthread_cancel has been called the
exception handler will start unstacking frames and calling destructors
in the process. At some point this will cause a runtime exception in c++
which will call std::terminate() to abort the process.
The solution is thus to avoid starting the cancellation process inside the
destructor.
This behavior was spotted while calling the destructor of Transceiver
object in forthcoming patches.
See a more detailed example here:
https://skaark.wordpress.com/2010/08/26/pthread_cancel-considered-harmful/
Change-Id: I71ca90f3fbc73df58b878a03361f7b7831d838b4
The DMAIN category got too overloaded. Let's have the code in
Transceive52M/device/* use the new DDEV category.
Also, in some cases the log levels have been adjusted to ensure
that enabling INFO level should not result in a complete overflow
of messages during normal operation.
Change-Id: I844fe4a75bf277cd3cc5bd8fa06e06ad97b2ea95
osmotrxuhd is already being built since it's enabled by default, but
let's make it more explicit that we are building it too.
Change-Id: Ie9c224485cce047cd3ee4600ff7fbdb082355cdc
Until now, setRxGain in LMSDevice did not take into account the setter
parameter and was always using hardcoded 34dB, which was experimentally
found to be a good default value.
Let's force that value during initialization, but still allow the upper
layers (controlled by BTS) to set different values. osmo-bts only sends
a SETRXGAIN command (which calls setRxGain in osmo-trx) if a value is
explicitly set in its VTY config, so we are on the safe side if the user
doesn't explicitly configure a desired dB.
Change-Id: I5684e675281a3f581855dbb56d199a6fe238a712
Sort cfg files according to their osmo-trx binary.
Install them during make install.
Add the installed cfg files to related debian packages.
Change-Id: I905cdac30b441e4df0a3f5c0924d1637b9f67b90
There might be some configuration that's not supported by osmo-bts-usrp1,
and we should reject that properly.
Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad
Closes: OS#3348
There might be some configuration that's not supported by osmo-bts-lms,
and we should reject that properly.
Change-Id: I6f82edce589030a4407f6150fb7e8abe6417c1f2
Closes: OS#3347
In Change-Id Ib2fca81b76d027b08e2891056fa076d071597783 we introduced
some coding style violations. Let's make newly-added code follows
standard Osmocom coding style.
Change-Id: Ib7ddd275014f03a2eed3cddc02b1356e2b00c0bc
It's not good style to have the derived classes initialize members
inherited from the base class using "this->foo = bar". Rather, let's
make the base class have a constructor, and call that constructor to
initialize the members of the base class.
While doing this
* rename 'offset' to 'lo_offset' to avoid confusion with timestamp offset
* move 'InterfaceType' into the base class
* move 'chans' into the base class
* move 'rx_sps' into the base class
* mark base class members as 'protected'
Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab
Before this patch, any configuration in osmo-trx.cfg regarding the rx
and tx "antenna" (path) would have been completely ignored, as the
radioDevice::make() function would simply drop those arguments to the
floor.
Change-Id: Ie50f854abbc9dcf351cddc052d10206382e1d5d3
Initially, Rx gain was hardcoded to be 47. This was too high for our
setup and we were constantly getting "clipping detected" messages.
Reducing Rx gain to 34 solved the issue. However, it looks like gains
should be controlled through configuration files.
Change-Id: I30580f18c4ad630c09f725b1d24c125fc3119809
LMS_StartStream() (in LMSDevice::start()) was moved to separate loop. It
is because LMS_SetupStream() would fail for second channel if streaming
has already been started (LMS_StartStream()) for single channel
configuration.
Change-Id: I6704bb92864aa81417507c4ae24a22f41dc529c1
Log level of "send buffer of len ..." messages was changed as it was
causing problems on some machines.
Change-Id: I605d50e81966c7bd169b27788d62af6fb54c84e1
The tx timestamp offset was not set. We set it to the same value as it
was in UHD interface for LimeSDR
Change-Id: I78bc40cd575097f71a5f82b63467fa81c3f8d837
As of LimeSuite 618fbb9c3188b36d75ad5785a97b8887dcc468f6, it seems 5e6
is within the returned range, but LMS_SetLPFBW fails anyway.
See for more information: https://github.com/myriadrf/LimeSuite/issues/184
Change-Id: I967e7da7c0e3e8138b76733ee4a0e6311d20b62e
It seems the order in which static code and -lfoo is passed to the
linker matters.
This commit is a lms specific follow-up of commit
2a8183bdf0.
Change-Id: I59c20d268ecac4c22689124165c47295bd9176d4
I'm not quite sure what the ts_offset is for, but by using "0"
we are now receiving exactly the timestamp that we're expecting:
LMSDevice.cpp:486 [tid=140576250332928] chan 0 recv buffer of len 2500 expect 305ed0 got 305ed0 (305ed0) diff=0
Change-Id: I270c94945b1af9662cfc468cfda1ae3af3ac0a27
ts_initial must not point to the timestamp of the first sample
in the last "flush" sample buffer, but to the first timestamp we
expect in the next buffer.
Change-Id: I23af62870544d4c6cf5f6e2d6578936603bceb91
Rx 1.4 MHz, Tx 5MHz. Both massively too wide for GSM, but there's
no smaller band-width available.
Change-Id: I9723c9a2ea77f65bfa9d796d7c44adc2417e89cf
LMS_Init() will override basically all device settings with their
default value, including the sample rate. We hence have to make sure
to call it before any other API function that changes the device config
such as sample rate, frequency, filter bandwidth, ...
Change-Id: I4cdbae8406b5e1e93da491e90f8bad41d4be748b