1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-13 19:50:34 +00:00
This commit is contained in:
Carles Fernandez 2019-11-04 21:11:04 +01:00
commit 946624e4ce
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
12 changed files with 63 additions and 33 deletions

View File

@ -220,9 +220,9 @@ $ sudo apt-get install libblas-dev liblapack-dev # For Debian/Ubuntu/Linux
$ sudo yum install lapack-devel blas-devel # For Fedora/CentOS/RHEL
$ sudo zypper install lapack-devel blas-devel # For OpenSUSE
$ sudo pacman -S blas lapack # For Arch Linux
$ wget https://sourceforge.net/projects/arma/files/armadillo-9.700.3.tar.xz
$ tar xvfz armadillo-9.700.3.tar.xz
$ cd armadillo-9.700.3
$ wget https://sourceforge.net/projects/arma/files/armadillo-9.800.2.tar.xz
$ tar xvfz armadillo-9.800.2.tar.xz
$ cd armadillo-9.800.2
$ cmake .
$ make
$ sudo make install

View File

@ -21,6 +21,10 @@
# GPSTK_INCLUDE_DIR, where to find Rinex3ObsBase.hpp, etc.
# GPSTK_FOUND, If false, do not try to use GPSTK.
# GPSTK_LIBRARY, where to find the GPSTK library.
#
# Provides the following imported target:
# Gpstk::gpstk
#
if(NOT COMMAND feature_summary)
include(FeatureSummary)

View File

@ -19,6 +19,11 @@
# Find GR-DBFCTTC Module
########################################################################
#
# Provides the following imported target:
# Gnuradio::dbfcttc
#
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_GR_DBFCTTC gr-dbfcttc)

View File

@ -19,6 +19,11 @@
# Find GR-GN3S Module
########################################################################
#
# Provides the following imported target:
# Gnuradio::gn3s
#
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_GR_GN3S gr-gn3s)

View File

@ -17,7 +17,7 @@
#
# Provides the following imported target:
# Iio::iio
# Iio::ad9361
#
if(NOT COMMAND feature_summary)
@ -28,8 +28,7 @@ set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
include(FindPkgConfig)
pkg_check_modules(PC_LIBAD9361 libad9361)
find_path(
LIBAD9361_INCLUDE_DIRS
find_path(LIBAD9361_INCLUDE_DIRS
NAMES ad9361.h
HINTS ${PC_LIBAD9361_INCLUDEDIR}
PATHS /usr/include
@ -41,8 +40,7 @@ find_path(
$ENV{LIBAD9361_DIR}/include
)
find_library(
LIBAD9361_LIBRARIES
find_library(LIBAD9361_LIBRARIES
NAMES ad9361
HINTS ${PC_LIBAD9361_LIBDIR}
PATHS /usr/lib

View File

@ -15,6 +15,11 @@
# You should have received a copy of the GNU General Public License
# along with GNSS-SDR. If not, see <https://www.gnu.org/licenses/>.
#
# Provides the following imported target:
# Gnuradio::teleorbit
#
if(NOT COMMAND feature_summary)
include(FeatureSummary)
endif()

View File

@ -17,7 +17,7 @@
#
# Provides the following imported target:
# Iio::iio
# Uhd::uhd
#
########################################################################

View File

@ -39,7 +39,8 @@
- The CMake scripts now find dependencies in Debian's riscv64 architecture.
- Enable AVX2 kernels of the volk_gnsssdr library when using the Clang compiler.
- Added a CMake toolchain for building volk_gnsssdr in a Raspberry Pi.
- Fixed building in some ARM-based devices. Now Clang and ARMClang can be used for native building.
- Added toolchain files for building gnss-sdr and the volk_gnsssdr library in several ARM processor architectures, including those in Raspberry Pi 3 and 4.
### Improvements in Reliability:

View File

@ -202,6 +202,9 @@ Rtklib_Pvt::Rtklib_Pvt(ConfigurationInterface* configuration,
* 608 | BeiDou B3I + GPS L1 C/A + Galileo E1B + BeiDou B1I
* 609 | BeiDou B3I + GPS L1 C/A + Galileo E1B + GLONASS L1 C/A
* 610 | BeiDou B3I + GPS L1 C/A + Galileo E1B + GLONASS L1 C/A + BeiDou B1I
*
* 1000 | GPS L1 C/A + GPS L2C + GPS L5
* 1001 | GPS L1 C/A + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a
*/
int gps_1C_count = configuration->property("Channels_1C.count", 0);
int gps_2S_count = configuration->property("Channels_2S.count", 0);
@ -396,7 +399,7 @@ Rtklib_Pvt::Rtklib_Pvt(ConfigurationInterface* configuration,
// Settings 1
int positioning_mode = -1;
std::string default_pos_mode("Single");
std::string positioning_mode_str = configuration->property(role + ".positioning_mode", default_pos_mode); // (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h
std::string positioning_mode_str = configuration->property(role + ".positioning_mode", default_pos_mode); // (PMODE_XXX) see src/algorithms/libs/rtklib/rtklib.h
if (positioning_mode_str == "Single")
{
positioning_mode = PMODE_SINGLE;

View File

@ -1101,7 +1101,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
rp->log_rinex_nav(rp->navFile, new_glo_eph);
}
break;
case 29: // GPS L1 C/A + GLONASS L2 C/A
case 29: // GPS L1 C/A + GLONASS L2 C/A
if (d_rinex_version == 3)
{
rp->log_rinex_nav(rp->navMixFile, new_eph, new_glo_eph);
@ -1196,13 +1196,13 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
case 7: // GPS L1 C/A + GPS L2C
rp->log_rinex_nav(rp->navFile, new_cnav_eph);
break;
case 13: // L5+E5a
case 13: // L5+E5a
rp->log_rinex_nav(rp->navMixFile, new_cnav_eph, new_gal_eph);
break;
case 28: // GPS L2C + GLONASS L1 C/A
case 28: // GPS L2C + GLONASS L1 C/A
rp->log_rinex_nav(rp->navMixFile, new_cnav_eph, new_glo_eph);
break;
case 31: // GPS L2C + GLONASS L2 C/A
case 31: // GPS L2C + GLONASS L2 C/A
rp->log_rinex_nav(rp->navMixFile, new_cnav_eph, new_glo_eph);
break;
default:
@ -1458,7 +1458,7 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
case 25: // GLONASS L1 C/A + GLONASS L2 C/A
rp->log_rinex_nav(rp->navGloFile, new_glo_eph);
break;
case 26: // GPS L1 C/A + GLONASS L1 C/A
case 26: // GPS L1 C/A + GLONASS L1 C/A
if (d_rinex_version == 3)
{
rp->log_rinex_nav(rp->navMixFile, new_eph, new_glo_eph);
@ -1468,13 +1468,13 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
rp->log_rinex_nav(rp->navGloFile, new_glo_eph);
}
break;
case 27: // Galileo E1B + GLONASS L1 C/A
case 27: // Galileo E1B + GLONASS L1 C/A
rp->log_rinex_nav(rp->navMixFile, new_gal_eph, new_glo_eph);
break;
case 28: // GPS L2C + GLONASS L1 C/A
case 28: // GPS L2C + GLONASS L1 C/A
rp->log_rinex_nav(rp->navMixFile, new_cnav_eph, new_glo_eph);
break;
case 29: // GPS L1 C/A + GLONASS L2 C/A
case 29: // GPS L1 C/A + GLONASS L2 C/A
if (d_rinex_version == 3)
{
rp->log_rinex_nav(rp->navMixFile, new_eph, new_glo_eph);
@ -1484,10 +1484,10 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
rp->log_rinex_nav(rp->navGloFile, new_glo_eph);
}
break;
case 30: // Galileo E1B + GLONASS L2 C/A
case 30: // Galileo E1B + GLONASS L2 C/A
rp->log_rinex_nav(rp->navMixFile, new_gal_eph, new_glo_eph);
break;
case 31: // GPS L2C + GLONASS L2 C/A
case 31: // GPS L2C + GLONASS L2 C/A
rp->log_rinex_nav(rp->navMixFile, new_cnav_eph, new_glo_eph);
break;
default:
@ -1688,7 +1688,7 @@ bool rtklib_pvt_gs::send_sys_v_ttff_msg(ttff_msgbuf ttff)
ttff_msgbuf msg;
msg.ttff = ttff.ttff;
msgsend_size = sizeof(msg.ttff);
msg.mtype = 1; // default message ID
msg.mtype = 1; // default message ID
// SEND SOLUTION OVER A MESSAGE QUEUE
// non-blocking Sys V message send
@ -2287,7 +2287,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
std::map<int, Gps_CNAV_Ephemeris>::const_iterator gps_cnav_ephemeris_iter;
std::map<int, Glonass_Gnav_Ephemeris>::const_iterator glonass_gnav_ephemeris_iter;
std::map<int, Beidou_Dnav_Ephemeris>::const_iterator beidou_dnav_ephemeris_iter;
if (!b_rinex_header_written) // & we have utc data in nav message!
if (!b_rinex_header_written) // & we have utc data in nav message!
{
galileo_ephemeris_iter = d_user_pvt_solver->galileo_ephemeris_map.cbegin();
gps_ephemeris_iter = d_user_pvt_solver->gps_ephemeris_map.cbegin();
@ -2384,7 +2384,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
b_rinex_header_written = true; // do not write header anymore
}
break;
case 10: // GPS L1 C/A + Galileo E5a
case 10: // GPS L1 C/A + Galileo E5a
if ((galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()) and (gps_ephemeris_iter != d_user_pvt_solver->gps_ephemeris_map.cend()))
{
std::string gal_signal("5X");
@ -2394,7 +2394,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
b_rinex_header_written = true; // do not write header anymore
}
break;
case 11: // GPS L1 C/A + Galileo E5b
case 11: // GPS L1 C/A + Galileo E5b
if ((galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()) and (gps_ephemeris_iter != d_user_pvt_solver->gps_ephemeris_map.cend()))
{
std::string gal_signal("7X");
@ -2415,7 +2415,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
b_rinex_header_written = true; // do not write header anymore
}
break;
case 14: // Galileo E1B + Galileo E5a
case 14: // Galileo E1B + Galileo E5a
if ((galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()))
{
std::string gal_signal("1B 5X");
@ -2425,7 +2425,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
b_rinex_header_written = true; // do not write header anymore
}
break;
case 15: // Galileo E1B + Galileo E5b
case 15: // Galileo E1B + Galileo E5b
if ((galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()))
{
std::string gal_signal("1B 7X");
@ -2485,7 +2485,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
b_rinex_header_written = true; // do not write header anymore
}
break;
case 27: // Galileo E1B + GLONASS L1 C/A
case 27: // Galileo E1B + GLONASS L1 C/A
if ((glonass_gnav_ephemeris_iter != d_user_pvt_solver->glonass_gnav_ephemeris_map.cend()) and (galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()))
{
std::string glo_signal("1G");
@ -2526,7 +2526,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
b_rinex_header_written = true; // do not write header anymore
}
break;
case 30: // Galileo E1B + GLONASS L2 C/A
case 30: // Galileo E1B + GLONASS L2 C/A
if ((glonass_gnav_ephemeris_iter != d_user_pvt_solver->glonass_gnav_ephemeris_map.cend()) and (galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()))
{
std::string glo_signal("2G");

View File

@ -118,7 +118,14 @@ obsd_t insert_obs_to_rtklib(obsd_t& rtklib_obs, const Gnss_Synchro& gnss_synchro
// rtklib_obs.time = gpst2time(adjgpsweek(week), gnss_synchro.RX_time);
// }
//
rtklib_obs.time = gpst2time(adjgpsweek(week, pre_2009_file), gnss_synchro.RX_time);
if (gnss_synchro.System == 'E')
{
rtklib_obs.time = gst2time(week, gnss_synchro.RX_time);
}
else
{
rtklib_obs.time = gpst2time(adjgpsweek(week, pre_2009_file), gnss_synchro.RX_time);
}
// account for the TOW crossover transitory in the first 18 seconds where the week is not yet updated!
if (gnss_synchro.RX_time < 18.0)
{
@ -188,7 +195,7 @@ eph_t eph_to_rtklib(const Galileo_Ephemeris& gal_eph)
rtklib_sat.Adot = 0; // only in CNAV;
rtklib_sat.ndot = 0; // only in CNAV;
rtklib_sat.week = adjgpsweek(gal_eph.WN_5); /* week of tow */
rtklib_sat.week = gal_eph.WN_5 + 1024; /* week of tow in GPS (not mod-1024) week scale */
rtklib_sat.cic = gal_eph.C_ic_4;
rtklib_sat.cis = gal_eph.C_is_4;
rtklib_sat.cuc = gal_eph.C_uc_3;

View File

@ -405,6 +405,8 @@ if(MSVC)
set(cmake_c_compiler_version "Microsoft Visual Studio 11.0")
elseif(MSVC12) #Visual Studio 12
set(cmake_c_compiler_version "Microsoft Visual Studio 12.0")
elseif(MSVC14) #Visual Studio 14
set(cmake_c_compiler_version "Microsoft Visual Studio 14.0")
endif()
else()
execute_process(COMMAND ${CMAKE_C_COMPILER} --version
@ -625,12 +627,12 @@ if(ENABLE_STATIC_LIBS)
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
)
set_target_properties(volk_gnsssdr_static PROPERTIES OUTPUT_NAME volk_gnsssdr)
install(TARGETS volk_gnsssdr_static
EXPORT VOLK_GNSSSDR-export
ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT "volk_gnsssdr_devel"
)
set_target_properties(volk_gnsssdr_static PROPERTIES OUTPUT_NAME volk_gnsssdr)
endif()
########################################################################