diff --git a/README.txt b/README.txt index 33c0df9d8dfe323fa9c367579d12727ae648b7a7..b0cad5f01129964a21cfba103e0d9c18e67761b8 100644 --- a/README.txt +++ b/README.txt @@ -62,3 +62,4 @@ v1.0.0 -> January 2019. This version first implements the architectural split de New tools: config library, telnet server, ... A lot of bugfixes and a proper automated Continuous Integration process validates contributions. v1.0.1 -> February 2019: Bug fix for the UE L1 simulator. +v1.0.2 -> February 2019: Full OAI support for 3.13.1 UHD diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp index f3094a4baaa78c32942a1450098c60443c2a194b..bfdc80f9b5462af1997933c0f7f6857359a5c100 100644 --- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -28,7 +28,12 @@ #include <pthread.h> #include <unistd.h> #include <stdio.h> +#include <uhd/version.hpp> +#if UHD_VERSION < 3110000 #include <uhd/utils/thread_priority.hpp> +#else +#include <uhd/utils/thread.hpp> +#endif #include <uhd/usrp/multi_usrp.hpp> #include <uhd/version.hpp> #include <boost/lexical_cast.hpp> @@ -183,7 +188,7 @@ static int sync_to_gps(openair0_device *device) { num_gps_locked++; std::cout << boost::format("GPS Locked\n"); } else { - std::cerr << "WARNING: GPS not locked - time will not be accurate until locked" << std::endl; + LOG_W(HW,"WARNING: GPS not locked - time will not be accurate until locked\n"); } //Set to GPS time @@ -724,6 +729,7 @@ void *freq_thread(void *arg) { usrp_state_t *s = (usrp_state_t *)device->priv; s->usrp->set_tx_freq(device->openair0_cfg[0].tx_freq[0]); s->usrp->set_rx_freq(device->openair0_cfg[0].rx_freq[0]); + return NULL; } /*! \brief Set frequencies (TX/RX). Spawns a thread to handle the frequency change to not block the calling thread * \param device the hardware to use @@ -1073,16 +1079,16 @@ extern "C" { uhd::device_addrs_t device_adds = uhd::device::find(args); if (device_adds.size() == 0) { - std::cerr<<"No USRP Device Found. " << std::endl; + LOG_E(HW,"No USRP Device Found.\n "); free(s); return -1; } else if (device_adds.size() > 1) { - std::cerr<<"More than one USRP Device Found. Please specify device more precisely in config file." << std::endl; + LOG_E(HW,"More than one USRP Device Found. Please specify device more precisely in config file.\n"); free(s); return -1; } - std::cerr << "Found USRP " << device_adds[0].get("type") << "\n"; + LOG_I(HW,"Found USRP %s\n", device_adds[0].get("type").c_str()); double usrp_master_clock; if (device_adds[0].get("type") == "b200") { @@ -1090,7 +1096,7 @@ extern "C" { device->type = USRP_B200_DEV; usrp_master_clock = 30.72e6; args += boost::str(boost::format(",master_clock_rate=%f") % usrp_master_clock); - args += ",num_send_frames=256,num_recv_frames=256, send_frame_size=15360, recv_frame_size=15360" ; + args += ",num_send_frames=256,num_recv_frames=256, send_frame_size=7680, recv_frame_size=7680" ; } if (device_adds[0].get("type") == "n3xx") { @@ -1287,8 +1293,9 @@ extern "C" { samples/=10000; LOG_I(PHY,"RF board max packet size %u, size for 100µs jitter %d \n", max, samples); - if ( samples < max ) + if ( samples < max ) { stream_args_rx.args["spp"] = str(boost::format("%d") % samples ); + } LOG_I(PHY,"rx_max_num_samps %zu\n", s->usrp->get_rx_stream(stream_args_rx)->get_max_num_samps()); diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index ce978d8b1affc2392d1aaf9639dbafb117e9c1a9..5ac8a77f872f0c84737bb3639b5b5af2f20ccf18 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -1,31 +1,23 @@ -/******************************************************************************* - OpenAirInterface - Copyright(c) 1999 - 2014 Eurecom - - OpenAirInterface is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - - OpenAirInterface is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with OpenAirInterface.The full GNU General Public License is - included in this distribution in the file called "COPYING". If not, - see <http://www.gnu.org/licenses/>. - - Contact Information - OpenAirInterface Admin: openair_admin@eurecom.fr - OpenAirInterface Tech : openair_tech@eurecom.fr - OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr - - Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE - -*******************************************************************************/ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ /*! \file lte-enb.c * \brief Top-level threads for eNodeB