From ff2d95f6d7bb0549c87c01d4e62e48cf32b716e3 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 6 Jul 2018 21:48:13 +0200 Subject: [PATCH 01/44] Add removed file --- .gitlab-ci.yml | 523 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 523 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..d86c3a7d0 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,523 @@ +# This script sets up a Continuous Reproducibility system for GNSS-SDR at GitLab +# +# Useful links: +# Website: http://gnss-sdr.org +# Upstream repository: https://github.com/gnss-sdr/gnss-sdr.git +# Dockerfile at https://github.com/carlesfernandez/docker-gnsssdr +# Docker cloud image: carlesfernandez/docker-gnsssdr +# +# In order to use this system and be able to make changes, you will need: +# - A GitHub account https://github.com +# - A GitLab account https://gitlab.com +# - A Docker Hub account https://hub.docker.com +# - A repository at Docker Hub. +# +# In order to use this system, please fork at GitHub the upstream +# repository; import that forked repo at GitLab; then add, commit and push to +# your GitLab repo this .gitlab-ci.yml file; and finally go to your project page +# at GitLab and set up the following secret variables. In the left panel: +# Settings > CI / CD > Secret variables +# +# DOCKER_HUB_USER +# DOCKER_HUB_REPO +# DOCKER_HUB_PASSWORD +# +# You will need either to protect your branch, or to leave those variables +# unproctected. +# +# For instance, my settings are: +# DOCKER_HUB_USER = carlesfernandez +# DOCKER_HUB_REPO = docker-gnsssdr +# DOCKER_HUB_PASSWORD = ******************** +# +# If you want to make changes in the source code, branch-off from the 'next' +# branch of your forked repository and, if needed, add new jobs in this +# file at the 'deploy' and 'experiment' stages. Please do not use the next +# branch for your changes, always open a new branch from next and work there. +# +# Feel free to delete the docker-gnsssdr and docker-pybombs-gnsssdr jobs, +# they are for developers' team only. Actually, this is their CI/CD system. +# +# More info about how to contribute to GNSS-SDR at +# https://github.com/gnss-sdr/gnss-sdr/blob/master/CONTRIBUTING.md +# +# (C) Carles Fernandez-Prades, 2018 cfernandez@cttc.cat + + +# This is performed before the scripts in the stages step +before_script: + - source /etc/profile + + +# Defines stages which are to be executed +stages: + - build + - test + - deploy + - experiment + + +# Stage "build" +archlinux: + image: base/devel:latest + stage: build + before_script: + - pwd + script: + - pacman -Syu --noconfirm + - pacman -S --noconfirm cmake git boost boost-libs log4cpp libvolk gnuradio gnuradio-osmosdr libpcap blas lapack gflags google-glog openssl python2-mako python2-six libmatio gtest + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +centos7: + image: centos:centos7 + stage: build + before_script: + - pwd + script: + - yum install -y wget + - wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm + - rpm -Uvh epel-release-latest-7.noarch.rpm + - yum install -y make automake gcc gcc-c++ kernel-devel libtool hdf5-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel openssl-devel python-mako python-six + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +crosscompile: + image: ubuntu:xenial + stage: build + script: + - apt-get update + - apt-get install -y build-essential xz-utils curl gawk wget git-core diffstat unzip texinfo gcc-multilib chrpath socat cpio python python3 python3-pip python3-pexpect debianutils iputils-ping + - curl https://sites.cttc.es/gnss_files/SDK/Rocko/oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh --output oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh + - echo "d3c3d5f909c1ca81435108a3cfc4227b oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh" > sdk.md5 + - md5sum -c sdk.md5 + - chmod +x ./oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh + - sh ./oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh -y + - . /usr/local/oecore-x86_64/environment-setup-armv7ahf-neon-oe-linux-gnueabi + - cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON -DENABLE_RAW_UDP=ON .. + - make + - make install DESTDIR=/usr/local/oecore-x86_64/sysroots/armv7ahf-neon-oe-linux-gnueabi/ + allow_failure: true + + +debian8.10: + image: debian:8.10-slim + stage: build + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential libtool automake libhdf5-dev cmake git ca-certificates libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libgfortran-4.9-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libgtest-dev + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +debian9.3: + image: debian:9.3-slim + stage: build + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + + +debian9.3-i386: + image: i386/debian:9.3-slim + stage: build + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest + - cd build + - cmake -DENABLE_PACKAGING=ON -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + + +debian10: + image: debian:buster-slim + stage: build + script: + - apt-get update + - apt-get upgrade -y + - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libiio-dev gr-iio libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +fedora26: + image: fedora:26 + stage: build + before_script: + - source ~/.bash_profile + script: + - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python-mako python-six matio-devel + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + + +fedora27: + image: fedora:27 + stage: build + before_script: + - source ~/.bash_profile + script: + - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python-mako python-six matio-devel + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + + +fedora-rawhide: + image: fedora:rawhide + stage: build + before_script: + - source ~/.bash_profile + script: + - dnf upgrade -y --nogpgcheck + - yum install -y automake gcc gcc-c++ kernel-devel make cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python-mako python-six matio-devel + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +opensuse42.3: + image: opensuse:42.3 + stage: build + before_script: + - pwd + script: + - zypper -n up + - zypper -n install cmake git gcc-c++ boost-devel log4cpp-devel gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six + - cd build + - cmake -DENABLE_PACKAGING=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +opensuse-tumbleweed: + image: opensuse:tumbleweed + stage: build + before_script: + - pwd + script: + - zypper -n up + - zypper -n install cmake git gcc-c++ boost-devel libboost_system-devel libboost_filesystem-devel libboost_date_time-devel libboost_thread-devel libboost_chrono-devel libboost_serialization-devel log4cpp-devel gtest gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six + - cd build + - cmake -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +ubuntu14.04: + image: ubuntu:trusty + stage: build + script: + - apt-get update + - apt-get install -y apt-file + - apt-file update + - apt-get install -y software-properties-common + - add-apt-repository -y ppa:myriadrf/gnuradio + - add-apt-repository -y ppa:myriadrf/drivers + - apt-get update + - apt-get install -y --no-install-recommends build-essential libtool automake libhdf5-dev cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libpcap-dev libblas-dev liblapack-dev libgfortran-4.7-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libgtest-dev + - cd build + - cmake -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +ubuntu16.04: + image: ubuntu:xenial + stage: build + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + + +ubuntu18.04: + image: ubuntu:bionic + stage: build + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +coverity-scan: + image: ubuntu:xenial + stage: build + script: + - apt-get update + - apt-get install -y wget curl + - wget -O ./cov-analysis-linux64.tgz https://scan.coverity.com/download/linux64 --post-data "project=$COVERITY_SCAN_USER%2Fgnss-sdr&token=$COVERITY_SCAN_TOKEN" + - tar xvzf cov-analysis-linux64.tgz + - export PATH=$PATH:$(pwd)/cov-analysis-linux64-2017.07/bin + - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev + - cd build + - cmake -DENABLE_OSMOSDR=ON -ENABLE_RAW_UDP=ON .. + - cov-build --dir cov-int make -j2 + - tar cvzf gnss-sdr.tgz cov-int + - curl --form token=$COVERITY_SCAN_TOKEN --form email=$COVERITY_SCAN_EMAIL --form file=@$(pwd)/gnss-sdr.tgz --form version="0.0.9-next" --form description=" " https://scan.coverity.com/builds?project=$COVERITY_SCAN_USER%2Fgnss-sdr --progress-bar | tee -a "log_upload.txt" ; test ${PIPESTATUS[0]} -eq 0 + when: manual + allow_failure: true + + +# Stage "test" +run-tests: + image: debian:9.3-slim + stage: test + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest + - mkdir build-test + - mkdir build64 + - cd build-test + - cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + # Execute Unit Tests + - ../install/run_tests --gtest_output=xml + - mv *.xml ../build64/ + # Execute System Tests + - ../install/position_test + - mv position_test*.txt ../build64/ + - cd .. + - rm -rf build-test + artifacts: + paths: + - build64/*.xml + - build64/*.txt + + +run-tests-i386: + image: i386/debian:9.3-slim + stage: test + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest + - mkdir build-test + - mkdir build32 + - cd build-test + - cmake -DENABLE_PACKAGING=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + # Execute Unit Tests + - ../install/run_tests --gtest_output=xml + - mv *.xml ../build32/ + # Execute System Tests + - ../install/position_test + - mv position_test*.txt ../build32/ + - cd .. + - rm -rf build-test + artifacts: + paths: + - build32/*.xml + - build32/*.txt + + +# Stage "deploy" +docker-gnsssdr: + image: docker:latest + stage: deploy + services: + - docker:dind + script: + - wget https://raw.githubusercontent.com/carlesfernandez/docker-gnsssdr/master/Dockerfile + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + - mkdir docker-build + - cd docker-build + - cp ../Dockerfile . + - docker build -t carlesfernandez/docker-gnsssdr . + - docker push carlesfernandez/docker-gnsssdr + only: + - next + allow_failure: true + + +docker-gnsssdr-v0.0.10: + image: docker:18.05 + stage: deploy + services: + - docker:dind + script: + - wget https://raw.githubusercontent.com/carlesfernandez/docker-gnsssdr/v0.0.10/Dockerfile + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + - mkdir docker-build + - cd docker-build + - cp ../Dockerfile . + - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . + - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:0.0.10 + - docker push $DOCKER_HUB_USER/$DOCKER_HUB_REPO:0.0.10 + only: + - v0.0.10 + allow_failure: true + + +docker-pybombs-gnsssdr: + image: docker:latest + stage: deploy + services: + - docker:dind + script: + - wget https://raw.githubusercontent.com/carlesfernandez/docker-pybombs-gnsssdr/master/Dockerfile + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + - mkdir docker-build + - cd docker-build + - cp ../Dockerfile . + - docker build -t carlesfernandez/docker-pybombs-gnsssdr . + - docker push carlesfernandez/docker-pybombs-gnsssdr + only: + - next + allow_failure: true + + +docker-access18: + image: docker:latest + stage: deploy + services: + - docker:dind + script: + - mkdir docker-build + - cd docker-build + - echo -e "FROM phusion/baseimage:master\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN apt-get clean && rm -rf /tmp/* /var/tmp/*\nRUN rm -rf /home/src\nWORKDIR /home\nCMD [\"bash\"]" > Dockerfile + - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" + - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . + - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 + - docker push $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 + + +docker-access18-0.0.10: + image: docker:18.05 + stage: deploy + services: + - docker:dind + script: + - mkdir docker-build + - cd docker-build + - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN apt-get clean && rm -rf /tmp/* /var/tmp/*\nRUN rm -rf /home/src\nWORKDIR /home\nCMD [\"bash\"]" > Dockerfile + - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" + - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . + - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 + - docker push $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 + only: + - v0.0.10 + allow_failure: true + + +# Stage "experiment" +run-access18: + image: $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 + stage: experiment + script: + - apt-get update + # Grab the data set + - mkdir -p exp-access18/data + - cd exp-access18/data + - curl https://zenodo.org/record/1184601/files/L2_signal_samples.tar.xz --output L2_signal_samples.tar.xz + - tar xvfJ L2_signal_samples.tar.xz + - echo "3a04c1eeb970776bb77f5e3b7eaff2df L2_signal_samples.tar.xz" > data.md5 + - md5sum -c data.md5 + - cd .. + # Execute the experiment + - cp ../src/utils/reproducibility/ieee-access18/L2-access18.conf . + - cp ../src/utils/reproducibility/ieee-access18/plot_dump.m . + - cp -r ../src/utils/matlab/libs/geoFunctions . + - gnss-sdr --c=L2-access18.conf + - octave --no-gui plot_dump.m + - epspdf Figure2.eps Figure2.pdf + - cd .. + - mkdir access18 + - cp exp-access18/*.pdf access18/ + artifacts: + paths: + - access18/*.pdf + + +run-access18-0.0.10: + image: $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 + stage: experiment + script: + - apt-get update + # Grab the data set + - mkdir -p exp-access18/data + - cd exp-access18/data + - curl https://zenodo.org/record/1184601/files/L2_signal_samples.tar.xz --output L2_signal_samples.tar.xz + - tar xvfJ L2_signal_samples.tar.xz + - echo "3a04c1eeb970776bb77f5e3b7eaff2df L2_signal_samples.tar.xz" > data.md5 + - md5sum -c data.md5 + - cd .. + # Execute the experiment + - cp ../src/utils/reproducibility/ieee-access18/L2-access18.conf . + - cp ../src/utils/reproducibility/ieee-access18/plot_dump.m . + - cp -r ../src/utils/matlab/libs/geoFunctions . + - gnss-sdr --c=L2-access18.conf + - octave --no-gui plot_dump.m + - epspdf Figure2.eps Figure2.pdf + - cd .. + - mkdir access18 + - cp exp-access18/*.pdf access18/ + artifacts: + paths: + - access18/*.pdf + only: + - v0.0.10 From 7429ae98f69893f980a74b6ea5186a353868cd80 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 28 Jul 2018 20:04:12 +0200 Subject: [PATCH 02/44] Reduce size of containers --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d86c3a7d0..374021211 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -439,7 +439,7 @@ docker-access18: script: - mkdir docker-build - cd docker-build - - echo -e "FROM phusion/baseimage:master\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN apt-get clean && rm -rf /tmp/* /var/tmp/*\nRUN rm -rf /home/src\nWORKDIR /home\nCMD [\"bash\"]" > Dockerfile + - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nrm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 @@ -454,7 +454,7 @@ docker-access18-0.0.10: script: - mkdir docker-build - cd docker-build - - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN apt-get clean && rm -rf /tmp/* /var/tmp/*\nRUN rm -rf /home/src\nWORKDIR /home\nCMD [\"bash\"]" > Dockerfile + - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nrm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 From 180ecc42f991821dfa132b512e3b6c4b92774ae5 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 28 Jul 2018 22:54:13 +0200 Subject: [PATCH 03/44] Fix Dockerfile for access18 image --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 374021211..19cc47eaf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -439,7 +439,7 @@ docker-access18: script: - mkdir docker-build - cd docker-build - - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nrm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile + - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 @@ -454,7 +454,7 @@ docker-access18-0.0.10: script: - mkdir docker-build - cd docker-build - - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nrm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile + - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 From 58db14450f7a7b9b8996b0c9caff2376ffade36e Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 17 Aug 2018 20:53:41 +0200 Subject: [PATCH 04/44] Update basephusion version to 0.10.2 --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 19cc47eaf..51d6baadd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -439,7 +439,7 @@ docker-access18: script: - mkdir docker-build - cd docker-build - - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile + - echo -e "FROM phusion/baseimage:0.10.2\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 @@ -454,7 +454,7 @@ docker-access18-0.0.10: script: - mkdir docker-build - cd docker-build - - echo -e "FROM phusion/baseimage:0.10.1\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile + - echo -e "FROM phusion/baseimage:0.10.2\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 From e043368f949c0b1e0462ed6b10883fedf961cd3f Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 21 Aug 2018 18:16:25 +0200 Subject: [PATCH 05/44] build access18 image with Ubuntu 18.04 --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 51d6baadd..3375dcccd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -439,7 +439,7 @@ docker-access18: script: - mkdir docker-build - cd docker-build - - echo -e "FROM phusion/baseimage:0.10.2\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile + - echo -e "FROM phusion/baseimage:0.11\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev googletest libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool fig2dev octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 @@ -454,7 +454,7 @@ docker-access18-0.0.10: script: - mkdir docker-build - cd docker-build - - echo -e "FROM phusion/baseimage:0.10.2\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool transfig octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile + - echo -e "FROM phusion/baseimage:0.11\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev googletest libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool fig2dev octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 From 0649531e26d5a1879f2b9b228bbba6d4b4e9c517 Mon Sep 17 00:00:00 2001 From: Javier Arribas Date: Wed, 5 Sep 2018 16:20:46 +0000 Subject: [PATCH 06/44] Adding obs and pvt test for external scenarios in kepler runner --- .gitlab-ci.yml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3375dcccd..8a226697f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -375,6 +375,70 @@ run-tests-i386: - build32/*.txt +observables-test-180417100529: + image: ubuntu:bionic + stage: test + tags: + - kepler + when: manual + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest gnuplot + - mkdir build-test + - mkdir build64 + - cd build-test + - cmake -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + + # Execute Unit Tests + - export DISPLAY=unknown + - echo "Running HybridObservablesTest for GPS L1 CA..." + - ../install/run_tests --gtest_filter=HybridObservablesTest* -PLL_bw_hz_start=25.0 -DLL_bw_hz_start=1.5 -PLL_narrow_bw_hz=10.0 -DLL_narrow_bw_hz=0.75 -disable_generator=1 -enable_external_signal_file=1 -signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat -fs_gen_sps=12500000 -skip_samples=125000000 -external_signal_acquisition_threshold=4.0 -extend_correlation_symbols=5 -external_signal_acquisition_doppler_step_hz=10 -trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 -filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt -skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml + + - echo "Running HybridObservablesTest for Galileo E1..." + - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=5.0 --DLL_bw_hz_start=0.75 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=50000000 --external_signal_acquisition_threshold=2.5 --trk_test_implementation=Galileo_E1_DLL_PLL_VEML_Tracking --external_signal_acquisition_doppler_step_hz=25 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=15 --gtest_output=xml:test_results.xml + + - echo "Running HybridObservablesTest for GPS L5..." + - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=25.0 --DLL_bw_hz_start=2.5 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=250000000 --external_signal_acquisition_threshold=2.4 --trk_test_implementation=GPS_L5_DLL_PLL_Tracking --external_signal_acquisition_dwells=10 --external_signal_acquisition_doppler_step_hz=10 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L5E5_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=5 --gtest_output=xml:test_results.xml + + - echo "Running HybridObservablesTest for Galileo E5a..." + - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=30.0 --DLL_bw_hz_start=1.0 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=2.2 --trk_test_implementation=Galileo_E5a_DLL_PLL_Tracking --external_signal_acquisition_doppler_step_hz=10 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L5E5_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=5 --gtest_output=xml:test_results.xml + + - mv *.xml ../build64/ + - cd .. + - rm -rf build-test + artifacts: + paths: + - build64/*.xml + +position-test-180417100529: + image: ubuntu:bionic + stage: test + tags: + - kepler + when: manual + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest gnuplot + - mkdir build-test + - mkdir build64 + - cd build-test + - cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + # Execute System Tests + - export DISPLAY=unknown + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - mv *.xml ../build64/ + - mv *.ps ../build64/ + - cd .. + - rm -rf build-test + artifacts: + paths: + - build64/*.xml + - build64/*.ps + # Stage "deploy" docker-gnsssdr: image: docker:latest From b71dccaf556e9dda0b5c1bd4a59129eac97f2846 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 7 Sep 2018 10:49:44 +0200 Subject: [PATCH 07/44] Improve position test --- .gitlab-ci.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8a226697f..cb935c94e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -417,7 +417,6 @@ position-test-180417100529: stage: test tags: - kepler - when: manual script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest gnuplot @@ -429,9 +428,19 @@ position-test-180417100529: - make -j$(($NPROC+1)) # Execute System Tests - export DISPLAY=unknown - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 - - mv *.xml ../build64/ + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - rm PVT_*.* && mv *.ps ../build64/ + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E1.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - rm PVT_*.* && mv *.ps ../build64/ + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - rm PVT_*.* && mv *.ps ../build64/ + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - rm PVT_*.* && mv *.ps ../build64/ + # - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + # - rm PVT_*.* && mv *.ps ../build64/ + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5E5.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 - mv *.ps ../build64/ + - mv *.xml ../build64/ - cd .. - rm -rf build-test artifacts: @@ -439,6 +448,7 @@ position-test-180417100529: - build64/*.xml - build64/*.ps + # Stage "deploy" docker-gnsssdr: image: docker:latest From a80eb957a088a612aa618e06cfd5f498b67623f2 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 8 Sep 2018 09:55:53 +0200 Subject: [PATCH 08/44] Update Debian versions --- .gitlab-ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cb935c94e..69ead0ea3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -113,8 +113,8 @@ crosscompile: allow_failure: true -debian8.10: - image: debian:8.10-slim +debian8.11: + image: debian:8.11-slim stage: build script: - apt-get update @@ -128,8 +128,8 @@ debian8.10: allow_failure: true -debian9.3: - image: debian:9.3-slim +debian9.5: + image: debian:9.5-slim stage: build script: - apt-get update @@ -142,8 +142,8 @@ debian9.3: - make install -debian9.3-i386: - image: i386/debian:9.3-slim +debian9.5-i386: + image: i386/debian:9.5-slim stage: build script: - apt-get update @@ -157,7 +157,7 @@ debian9.3-i386: debian10: - image: debian:buster-slim + image: debian:buster stage: build script: - apt-get update From 74a6706e25e0e97d35d5f4de8e3993795fc416a6 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 14 Sep 2018 17:50:11 +0200 Subject: [PATCH 09/44] Setup new cross-compile test environment --- .gitlab-ci.yml | 61 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 69ead0ea3..49e86dbbc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -97,20 +97,34 @@ centos7: crosscompile: image: ubuntu:xenial stage: build + tags: + - kepler script: - apt-get update - apt-get install -y build-essential xz-utils curl gawk wget git-core diffstat unzip texinfo gcc-multilib chrpath socat cpio python python3 python3-pip python3-pexpect debianutils iputils-ping - curl https://sites.cttc.es/gnss_files/SDK/Rocko/oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh --output oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh - - echo "d3c3d5f909c1ca81435108a3cfc4227b oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh" > sdk.md5 + - echo "fb26ff0b84f67006e19266154c36173b oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh" > sdk.md5 - md5sum -c sdk.md5 - chmod +x ./oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh - sh ./oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh -y - . /usr/local/oecore-x86_64/environment-setup-armv7ahf-neon-oe-linux-gnueabi - cd build - - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON -DENABLE_RAW_UDP=ON .. - - make - - make install DESTDIR=/usr/local/oecore-x86_64/sysroots/armv7ahf-neon-oe-linux-gnueabi/ + - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake -DENABLE_OSMOSDR=ON -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON -DENABLE_RAW_UDP=ON -DENABLE_INSTALL_TESTS=ON .. + - make -j + - mkdir local_install + - make install DESTDIR=./local_install + - rm ./local_install/usr/bin/front-end-cal + - rm ./local_install/usr/bin/ttff + - cd .. + - mkdir binaries + - mkdir binaries/bin + - mkdir binaries/share + - cp build/local_install/usr/bin/* binaries/bin/ + - cp build/local_install/usr/share/gnss-sim/* binaries/share/ allow_failure: true + artifacts: + paths: + - binaries/* debian8.11: @@ -390,21 +404,16 @@ observables-test-180417100529: - cmake -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON .. - NPROC=$(grep -c ^processor /proc/cpuinfo) - make -j$(($NPROC+1)) - # Execute Unit Tests - export DISPLAY=unknown - echo "Running HybridObservablesTest for GPS L1 CA..." - - ../install/run_tests --gtest_filter=HybridObservablesTest* -PLL_bw_hz_start=25.0 -DLL_bw_hz_start=1.5 -PLL_narrow_bw_hz=10.0 -DLL_narrow_bw_hz=0.75 -disable_generator=1 -enable_external_signal_file=1 -signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat -fs_gen_sps=12500000 -skip_samples=125000000 -external_signal_acquisition_threshold=4.0 -extend_correlation_symbols=5 -external_signal_acquisition_doppler_step_hz=10 -trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 -filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt -skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml - + - ../install/run_tests --gtest_filter=HybridObservablesTest* -PLL_bw_hz_start=25.0 --DLL_bw_hz_start=1.5 --PLL_narrow_bw_hz=10.0 --DLL_narrow_bw_hz=0.75 --disable_generator=1 --enable_external_signal_file=1 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=4.0 --extend_correlation_symbols=5 --external_signal_acquisition_doppler_step_hz=10 --trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml - echo "Running HybridObservablesTest for Galileo E1..." - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=5.0 --DLL_bw_hz_start=0.75 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=50000000 --external_signal_acquisition_threshold=2.5 --trk_test_implementation=Galileo_E1_DLL_PLL_VEML_Tracking --external_signal_acquisition_doppler_step_hz=25 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=15 --gtest_output=xml:test_results.xml - - echo "Running HybridObservablesTest for GPS L5..." - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=25.0 --DLL_bw_hz_start=2.5 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=250000000 --external_signal_acquisition_threshold=2.4 --trk_test_implementation=GPS_L5_DLL_PLL_Tracking --external_signal_acquisition_dwells=10 --external_signal_acquisition_doppler_step_hz=10 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L5E5_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=5 --gtest_output=xml:test_results.xml - - echo "Running HybridObservablesTest for Galileo E5a..." - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=30.0 --DLL_bw_hz_start=1.0 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=2.2 --trk_test_implementation=Galileo_E5a_DLL_PLL_Tracking --external_signal_acquisition_doppler_step_hz=10 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L5E5_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=5 --gtest_output=xml:test_results.xml - - mv *.xml ../build64/ - cd .. - rm -rf build-test @@ -412,6 +421,7 @@ observables-test-180417100529: paths: - build64/*.xml + position-test-180417100529: image: ubuntu:bionic stage: test @@ -428,17 +438,17 @@ position-test-180417100529: - make -j$(($NPROC+1)) # Execute System Tests - export DISPLAY=unknown - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E1.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - # - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + # - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 # - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5E5.conf -static_scenario=0 -use_pvt_solver_dump=1 -use_ref_motion_file=1 -ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv -pvt_solver_dump_filename=./PVT_pvt.dat -show_plots=0 + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 - mv *.ps ../build64/ - mv *.xml ../build64/ - cd .. @@ -449,6 +459,25 @@ position-test-180417100529: - build64/*.ps +run-test-arm: + image: carlesfernandez/gnsssdr-dev-arm32v7:latest + stage: test + tags: + - arm + when: manual + dependencies: + - crosscompile + script: + - cp binaries/bin/* /usr/bin/ + - mkdir /usr/share/gnss-sim/ + - cp -f binaries/share/* /usr/share/gnss-sim/ + - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib + - ldconfig + - position_test + - run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=25.0 --DLL_bw_hz_start=1.5 --PLL_narrow_bw_hz=10.0 --DLL_narrow_bw_hz=0.75 --disable_generator=1 --enable_external_signal_file=1 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=4.0 --extend_correlation_symbols=5 --external_signal_acquisition_doppler_step_hz=10 --trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml + allow_failure: true + + # Stage "deploy" docker-gnsssdr: image: docker:latest From 7ec5097ba7f214f7ba13103b17df68ea1bf66d77 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 16 Sep 2018 12:35:02 +0200 Subject: [PATCH 10/44] More consistent naming for jobs --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 49e86dbbc..40159d9bf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -337,7 +337,7 @@ coverity-scan: # Stage "test" -run-tests: +run-tests-x86: image: debian:9.3-slim stage: test script: @@ -459,8 +459,8 @@ position-test-180417100529: - build64/*.ps -run-test-arm: - image: carlesfernandez/gnsssdr-dev-arm32v7:latest +run-tests-armhf: + image: carlesfernandez/gnsssdr-dev-arm32v7:rocko stage: test tags: - arm From 52081c81cd0240988b00176ed7dd5c2a7ac3a5a5 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 16 Sep 2018 23:40:25 +0200 Subject: [PATCH 11/44] Deactivate Observables test on ARM, test matio --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 40159d9bf..59ba1619d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -337,7 +337,7 @@ coverity-scan: # Stage "test" -run-tests-x86: +run-tests-x86_64: image: debian:9.3-slim stage: test script: @@ -474,7 +474,8 @@ run-tests-armhf: - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib - ldconfig - position_test - - run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=25.0 --DLL_bw_hz_start=1.5 --PLL_narrow_bw_hz=10.0 --DLL_narrow_bw_hz=0.75 --disable_generator=1 --enable_external_signal_file=1 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=4.0 --extend_correlation_symbols=5 --external_signal_acquisition_doppler_step_hz=10 --trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml + - run_tests --gtest_filter=Matio* + # - run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=25.0 --DLL_bw_hz_start=1.5 --PLL_narrow_bw_hz=10.0 --DLL_narrow_bw_hz=0.75 --disable_generator=1 --enable_external_signal_file=1 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=4.0 --extend_correlation_symbols=5 --external_signal_acquisition_doppler_step_hz=10 --trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml allow_failure: true From ab8936c6a220475b281b944e2e9d7bc565ace9e7 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 16 Sep 2018 23:47:06 +0200 Subject: [PATCH 12/44] Stip crosscompiled binaries, so they are smaller --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 59ba1619d..9c5ce5aa9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -109,7 +109,7 @@ crosscompile: - sh ./oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh -y - . /usr/local/oecore-x86_64/environment-setup-armv7ahf-neon-oe-linux-gnueabi - cd build - - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake -DENABLE_OSMOSDR=ON -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON -DENABLE_RAW_UDP=ON -DENABLE_INSTALL_TESTS=ON .. + - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake -DENABLE_OSMOSDR=ON -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON -DENABLE_RAW_UDP=ON -DENABLE_INSTALL_TESTS=ON -DCMAKE_C_FLAGS_RELEASE="-s" -DCMAKE_CXX_FLAGS_RELEASE="-s" .. - make -j - mkdir local_install - make install DESTDIR=./local_install From cc1ccdc4ed5d7c0dd93aad4d5c9d2e4874790a5e Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 17 Sep 2018 00:06:28 +0200 Subject: [PATCH 13/44] Remove redundant build job --- .gitlab-ci.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9c5ce5aa9..0615f2bce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -156,20 +156,6 @@ debian9.5: - make install -debian9.5-i386: - image: i386/debian:9.5-slim - stage: build - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - - cd build - - cmake -DENABLE_PACKAGING=ON -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - - debian10: image: debian:buster stage: build From 998429c9f25e053179206d93de60128a3891095f Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 17 Sep 2018 00:26:26 +0200 Subject: [PATCH 14/44] Add -DENABLE_PACKAGING=ON to cross-compilation build --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0615f2bce..33e0b53af 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -109,7 +109,7 @@ crosscompile: - sh ./oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh -y - . /usr/local/oecore-x86_64/environment-setup-armv7ahf-neon-oe-linux-gnueabi - cd build - - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake -DENABLE_OSMOSDR=ON -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON -DENABLE_RAW_UDP=ON -DENABLE_INSTALL_TESTS=ON -DCMAKE_C_FLAGS_RELEASE="-s" -DCMAKE_CXX_FLAGS_RELEASE="-s" .. + - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake -DENABLE_OSMOSDR=ON -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON -DENABLE_RAW_UDP=ON -DENABLE_INSTALL_TESTS=ON -DCMAKE_C_FLAGS_RELEASE="-s" -DCMAKE_CXX_FLAGS_RELEASE="-s" -DENABLE_PACKAGING=ON .. - make -j - mkdir local_install - make install DESTDIR=./local_install From a253435ec067a76e47300b7f35520139913c91a0 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 21 Sep 2018 08:04:02 +0200 Subject: [PATCH 15/44] Deactivate matio test on arm --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 33e0b53af..6732a7b97 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -460,7 +460,7 @@ run-tests-armhf: - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib - ldconfig - position_test - - run_tests --gtest_filter=Matio* +# - run_tests --gtest_filter=Matio* # - run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=25.0 --DLL_bw_hz_start=1.5 --PLL_narrow_bw_hz=10.0 --DLL_narrow_bw_hz=0.75 --disable_generator=1 --enable_external_signal_file=1 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=4.0 --extend_correlation_symbols=5 --external_signal_acquisition_doppler_step_hz=10 --trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml allow_failure: true From 24174efa946f49a02b5992a227345fc83cb863cf Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 3 Oct 2018 20:00:48 +0200 Subject: [PATCH 16/44] Add OpenSUSE version --- .gitlab-ci.yml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6732a7b97..2643cad08 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -220,7 +220,24 @@ fedora-rawhide: opensuse42.3: - image: opensuse:42.3 + image: opensuse/leap:42.3 + stage: build + before_script: + - pwd + script: + - zypper -n up + - zypper -n install cmake git gcc-c++ boost-devel log4cpp-devel gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six + - cd build + - cmake -DENABLE_PACKAGING=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + allow_failure: true + + +opensuse-leap15.0: + image: opensuse/leap:15.0 stage: build before_script: - pwd @@ -237,12 +254,12 @@ opensuse42.3: opensuse-tumbleweed: - image: opensuse:tumbleweed + image: opensuse/tumbleweed stage: build before_script: - pwd script: - - zypper -n up + - zypper -n dup - zypper -n install cmake git gcc-c++ boost-devel libboost_system-devel libboost_filesystem-devel libboost_date_time-devel libboost_thread-devel libboost_chrono-devel libboost_serialization-devel log4cpp-devel gtest gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six - cd build - cmake -DENABLE_RAW_UDP=ON .. From dd16699ba2623c87858f5451c22bfa795c7a233e Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Thu, 4 Oct 2018 12:16:17 +0200 Subject: [PATCH 17/44] Fix boost installation in OpenSuse Leap 15.0 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2643cad08..297b164fc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -243,7 +243,7 @@ opensuse-leap15.0: - pwd script: - zypper -n up - - zypper -n install cmake git gcc-c++ boost-devel log4cpp-devel gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six + - zypper -n install cmake git gcc-c++ boost-devel libboost_chrono-devel libboost_thread-devel libboost_system-devel libboost_filesystem-devel libboost_serialization-devel log4cpp-devel gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six - cd build - cmake -DENABLE_PACKAGING=ON -DENABLE_RAW_UDP=ON .. - NPROC=$(grep -c ^processor /proc/cpuinfo) From 4d41bdc3a6b0aa9f69514dcdefd3658c5d698afd Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 5 Oct 2018 00:03:37 +0200 Subject: [PATCH 18/44] Add Ubuntu 18.10 --- .gitlab-ci.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 297b164fc..8754747f7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -317,6 +317,20 @@ ubuntu18.04: - make -j$(($NPROC+1)) - make check - make install + + +ubuntu18.10: + image: ubuntu:cosmic + stage: build + script: + - apt-get update + - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install allow_failure: true @@ -490,7 +504,7 @@ docker-gnsssdr: - docker:dind script: - wget https://raw.githubusercontent.com/carlesfernandez/docker-gnsssdr/master/Dockerfile - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - mkdir docker-build - cd docker-build - cp ../Dockerfile . @@ -508,7 +522,7 @@ docker-gnsssdr-v0.0.10: - docker:dind script: - wget https://raw.githubusercontent.com/carlesfernandez/docker-gnsssdr/v0.0.10/Dockerfile - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - mkdir docker-build - cd docker-build - cp ../Dockerfile . @@ -527,7 +541,7 @@ docker-pybombs-gnsssdr: - docker:dind script: - wget https://raw.githubusercontent.com/carlesfernandez/docker-pybombs-gnsssdr/master/Dockerfile - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - mkdir docker-build - cd docker-build - cp ../Dockerfile . From fe898a1e35f29d8847ea1502387d1d404edc634d Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 5 Oct 2018 00:21:10 +0200 Subject: [PATCH 19/44] Fix Ubuntu 18.10 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8754747f7..9e2fcff61 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -324,7 +324,7 @@ ubuntu18.10: stage: build script: - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest + - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev - cd build - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - NPROC=$(grep -c ^processor /proc/cpuinfo) From 92b8346fec1179dd73641f352cf4ec70e7df4fcc Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 7 Oct 2018 11:46:13 +0200 Subject: [PATCH 20/44] Add Fedora 28 and 29, remove 27 --- .gitlab-ci.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9e2fcff61..800b95c31 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -187,8 +187,23 @@ fedora26: - make install -fedora27: - image: fedora:27 +fedora28: + image: fedora:28 + stage: build + before_script: + - source ~/.bash_profile + script: + - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python-mako python-six matio-devel + - cd build + - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) + - make check + - make install + + +fedora29: + image: fedora:29 stage: build before_script: - source ~/.bash_profile From 6631ff4c460a4167a846d31a621a90ff22187358 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 7 Oct 2018 19:02:17 +0200 Subject: [PATCH 21/44] Remove gr-osmosdr from fedora 29 --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 800b95c31..3a3682d54 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -208,9 +208,9 @@ fedora29: before_script: - source ~/.bash_profile script: - - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python-mako python-six matio-devel + - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python3-mako python3-six matio-devel - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. + - cmake -DENABLE_RAW_UDP=ON .. - NPROC=$(grep -c ^processor /proc/cpuinfo) - make -j$(($NPROC+1)) - make check From 2335a5b4b06a0a75913be8c88d046e44e93c42e6 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 7 Oct 2018 19:04:55 +0200 Subject: [PATCH 22/44] Remove gr-osmosdr from fedora 29 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3a3682d54..7082a2b70 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -208,7 +208,7 @@ fedora29: before_script: - source ~/.bash_profile script: - - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python3-mako python3-six matio-devel + - yum install -y make gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python3-mako python3-six matio-devel - cd build - cmake -DENABLE_RAW_UDP=ON .. - NPROC=$(grep -c ^processor /proc/cpuinfo) From cba02ea54b35b771cff7d4f0fa1b55d7fedbd9a2 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 13 Oct 2018 10:49:59 +0200 Subject: [PATCH 23/44] Enable E5 in static position test --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7082a2b70..cc70c7bc9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -478,8 +478,8 @@ position-test-180417100529: - rm PVT_*.* && mv *.ps ../build64/ - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - # - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 - # - rm PVT_*.* && mv *.ps ../build64/ + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 + - rm PVT_*.* && mv *.ps ../build64/ - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 - mv *.ps ../build64/ - mv *.xml ../build64/ From 5a4c763f8dc601e238591e2417d2365a72831ef0 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 13 Oct 2018 11:36:31 +0200 Subject: [PATCH 24/44] Get figures in position test --- .gitlab-ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cc70c7bc9..706e1c5a9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -470,17 +470,17 @@ position-test-180417100529: - make -j$(($NPROC+1)) # Execute System Tests - export DISPLAY=unknown - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 + - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 + - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 + - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 + - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 + - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - rm PVT_*.* && mv *.ps ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --show_plots=0 + - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - mv *.ps ../build64/ - mv *.xml ../build64/ - cd .. From 5c352dcb305f30fd72ca6b265dad35b766cac774 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 16 Oct 2018 20:34:26 +0200 Subject: [PATCH 25/44] Move RINEX files to artifacts --- .gitlab-ci.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 706e1c5a9..ce251cc29 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ # This script sets up a Continuous Reproducibility system for GNSS-SDR at GitLab # # Useful links: -# Website: http://gnss-sdr.org +# Website: https://gnss-sdr.org # Upstream repository: https://github.com/gnss-sdr/gnss-sdr.git # Dockerfile at https://github.com/carlesfernandez/docker-gnsssdr # Docker cloud image: carlesfernandez/docker-gnsssdr @@ -185,6 +185,7 @@ fedora26: - make -j$(($NPROC+1)) - make check - make install + allow_failure: true fedora28: @@ -215,6 +216,7 @@ fedora29: - make -j$(($NPROC+1)) - make check - make install + allow_failure: true fedora-rawhide: @@ -318,6 +320,7 @@ ubuntu16.04: - make -j$(($NPROC+1)) - make check - make install + allow_failure: true ubuntu18.04: @@ -471,15 +474,15 @@ position-test-180417100529: # Execute System Tests - export DISPLAY=unknown - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ + - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ + - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ + - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ + - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ + - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - mv *.ps ../build64/ - mv *.xml ../build64/ @@ -489,7 +492,8 @@ position-test-180417100529: paths: - build64/*.xml - build64/*.ps - + allow_failure: true + run-tests-armhf: image: carlesfernandez/gnsssdr-dev-arm32v7:rocko From 18e5339ea11cf7b639b64fe5a1411389702b450b Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 19 Oct 2018 14:54:03 +0200 Subject: [PATCH 26/44] Adding a TCP telecommand squeleton to the control_thread --- src/core/receiver/CMakeLists.txt | 1 + src/core/receiver/control_thread.cc | 15 +++++++++++++-- src/core/receiver/control_thread.h | 5 +++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/core/receiver/CMakeLists.txt b/src/core/receiver/CMakeLists.txt index decc866d9..e0246a06f 100644 --- a/src/core/receiver/CMakeLists.txt +++ b/src/core/receiver/CMakeLists.txt @@ -24,6 +24,7 @@ set(GNSS_RECEIVER_SOURCES gnss_block_factory.cc gnss_flowgraph.cc in_memory_configuration.cc + tcp_cmd_interface.cc ) set(GNSS_RECEIVER_HEADERS diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index de3dc893b..467ac3ade 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -98,6 +98,12 @@ ControlThread::~ControlThread() } +void ControlThread::telecommand_listener() +{ + int tcp_cmd_port = configuration_->property("Channel.telecontrol_tcp_port", 3333); + cmd_interface_.run_cmd_server(tcp_cmd_port); +} + /* * Runs the control thread that manages the receiver control plane * @@ -146,8 +152,11 @@ void ControlThread::run() keyboard_thread_ = boost::thread(&ControlThread::keyboard_listener, this); sysv_queue_thread_ = boost::thread(&ControlThread::sysv_queue_listener, this); - bool enable_FPGA = configuration_->property("Channel.enable_FPGA", false); + //start the telecommand listener thread + cmd_interface_thread_ = boost::thread(&ControlThread::telecommand_listener, this); + + bool enable_FPGA = configuration_->property("Channel.enable_FPGA", false); if (enable_FPGA == true) { flowgraph_->start_acquisition_helper(); @@ -165,14 +174,16 @@ void ControlThread::run() stop_ = true; flowgraph_->disconnect(); - //Join keyboard thread +//Join keyboard thread #ifdef OLD_BOOST keyboard_thread_.timed_join(boost::posix_time::seconds(1)); sysv_queue_thread_.timed_join(boost::posix_time::seconds(1)); + cmd_interface_thread_.timed_join(boost::posix_time::seconds(1)); #endif #ifndef OLD_BOOST keyboard_thread_.try_join_until(boost::chrono::steady_clock::now() + boost::chrono::milliseconds(1000)); sysv_queue_thread_.try_join_until(boost::chrono::steady_clock::now() + boost::chrono::milliseconds(1000)); + cmd_interface_thread_.try_join_until(boost::chrono::steady_clock::now() + boost::chrono::milliseconds(1000)); #endif LOG(INFO) << "Flowgraph stopped"; diff --git a/src/core/receiver/control_thread.h b/src/core/receiver/control_thread.h index b978b7757..3b1fb2cda 100644 --- a/src/core/receiver/control_thread.h +++ b/src/core/receiver/control_thread.h @@ -37,6 +37,7 @@ #include "control_message_factory.h" #include "gnss_sdr_supl_client.h" +#include "tcp_cmd_interface.h" #include #include #include @@ -113,6 +114,10 @@ public: } private: + //Telecommand TCP interface + TcpCmdInterface cmd_interface_; + void telecommand_listener(); + boost::thread cmd_interface_thread_; //SUPL assistance classes gnss_sdr_supl_client supl_client_acquisition_; gnss_sdr_supl_client supl_client_ephemeris_; From c45ca2c0ee1422a617752e3218f2340848bcbd53 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 20 Oct 2018 13:06:43 +0200 Subject: [PATCH 27/44] Add missing include path --- src/tests/system-tests/libs/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/system-tests/libs/CMakeLists.txt b/src/tests/system-tests/libs/CMakeLists.txt index 0fe1d4440..4742e80fc 100644 --- a/src/tests/system-tests/libs/CMakeLists.txt +++ b/src/tests/system-tests/libs/CMakeLists.txt @@ -25,6 +25,7 @@ set(SYSTEM_TESTING_LIB_SOURCES include_directories( ${CMAKE_CURRENT_SOURCE_DIR} + ${Boost_INCLUDE_DIRS} ${GLOG_INCLUDE_DIRS} ${GFlags_INCLUDE_DIRS} ${MATIO_INCLUDE_DIRS} From 5ea52921661139da23a1e5ce67ce9c0086abfa93 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 20 Oct 2018 14:46:55 +0200 Subject: [PATCH 28/44] Only read XML assistance files if needed --- src/core/receiver/control_thread.cc | 136 +++++++++++++++------------- 1 file changed, 72 insertions(+), 64 deletions(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index 98daa01b5..8fd295192 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -209,89 +209,97 @@ bool ControlThread::read_assistance_from_XML() std::string gal_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gal_utc_model.xml", gal_utc_default_xml_filename); std::string cnav_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_cnav_utc_model.xml", cnav_utc_default_xml_filename); - std::cout << "Trying to read GNSS ephemeris from XML file(s)..." - << std::endl; + std::cout << "Trying to read GNSS ephemeris from XML file(s)..." << std::endl; - if (supl_client_ephemeris_.load_ephemeris_xml(eph_xml_filename) == true) + if (configuration_->property("Channels_1C.count", 0) > 0) { - std::map::const_iterator gps_eph_iter; - for (gps_eph_iter = supl_client_ephemeris_.gps_ephemeris_map.cbegin(); - gps_eph_iter != supl_client_ephemeris_.gps_ephemeris_map.cend(); - gps_eph_iter++) + if (supl_client_ephemeris_.load_ephemeris_xml(eph_xml_filename) == true) { - std::cout << "From XML file: Read NAV ephemeris for satellite " << Gnss_Satellite("GPS", gps_eph_iter->second.i_satellite_PRN) << std::endl; - std::shared_ptr tmp_obj = std::make_shared(gps_eph_iter->second); - flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + std::map::const_iterator gps_eph_iter; + for (gps_eph_iter = supl_client_ephemeris_.gps_ephemeris_map.cbegin(); + gps_eph_iter != supl_client_ephemeris_.gps_ephemeris_map.cend(); + gps_eph_iter++) + { + std::cout << "From XML file: Read NAV ephemeris for satellite " << Gnss_Satellite("GPS", gps_eph_iter->second.i_satellite_PRN) << std::endl; + std::shared_ptr tmp_obj = std::make_shared(gps_eph_iter->second); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + } + ret = true; } - ret = true; - } - if (supl_client_ephemeris_.load_gal_ephemeris_xml(eph_gal_xml_filename) == true) - { - std::map::const_iterator gal_eph_iter; - for (gal_eph_iter = supl_client_ephemeris_.gal_ephemeris_map.cbegin(); - gal_eph_iter != supl_client_ephemeris_.gal_ephemeris_map.cend(); - gal_eph_iter++) + if (supl_client_acquisition_.load_utc_xml(utc_xml_filename) == true) { - std::cout << "From XML file: Read ephemeris for satellite " << Gnss_Satellite("Galileo", gal_eph_iter->second.i_satellite_PRN) << std::endl; - std::shared_ptr tmp_obj = std::make_shared(gal_eph_iter->second); + std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_utc); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + std::cout << "From XML file: Read GPS UTC parameters." << std::endl; + ret = true; } - ret = true; - } - if (supl_client_ephemeris_.load_cnav_ephemeris_xml(eph_cnav_xml_filename) == true) - { - std::map::const_iterator gps_cnav_eph_iter; - for (gps_cnav_eph_iter = supl_client_ephemeris_.gps_cnav_ephemeris_map.cbegin(); - gps_cnav_eph_iter != supl_client_ephemeris_.gps_cnav_ephemeris_map.cend(); - gps_cnav_eph_iter++) + if (supl_client_acquisition_.load_iono_xml(iono_xml_filename) == true) { - std::cout << "From XML file: Read CNAV ephemeris for satellite " << Gnss_Satellite("GPS", gps_cnav_eph_iter->second.i_satellite_PRN) << std::endl; - std::shared_ptr tmp_obj = std::make_shared(gps_cnav_eph_iter->second); + std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_iono); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + std::cout << "From XML file: Read GPS iono parameters." << std::endl; + ret = true; } - ret = true; } - if (supl_client_acquisition_.load_utc_xml(utc_xml_filename) == true) + if ((configuration_->property("Channels_1B.count", 0) > 0) or (configuration_->property("Channels_5X.count", 0) > 0)) { - std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_utc); - flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read GPS UTC parameters." << std::endl; - ret = true; + if (supl_client_ephemeris_.load_gal_ephemeris_xml(eph_gal_xml_filename) == true) + { + std::map::const_iterator gal_eph_iter; + for (gal_eph_iter = supl_client_ephemeris_.gal_ephemeris_map.cbegin(); + gal_eph_iter != supl_client_ephemeris_.gal_ephemeris_map.cend(); + gal_eph_iter++) + { + std::cout << "From XML file: Read ephemeris for satellite " << Gnss_Satellite("Galileo", gal_eph_iter->second.i_satellite_PRN) << std::endl; + std::shared_ptr tmp_obj = std::make_shared(gal_eph_iter->second); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + } + ret = true; + } + + if (supl_client_acquisition_.load_gal_iono_xml(gal_iono_xml_filename) == true) + { + std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gal_iono); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + std::cout << "From XML file: Read Galileo iono parameters." << std::endl; + ret = true; + } + + if (supl_client_acquisition_.load_gal_utc_xml(gal_utc_xml_filename) == true) + { + std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gal_utc); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + std::cout << "From XML file: Read Galileo UTC parameters." << std::endl; + ret = true; + } } - if (supl_client_acquisition_.load_iono_xml(iono_xml_filename) == true) + if ((configuration_->property("Channels_2S.count", 0) > 0) or (configuration_->property("Channels_L5.count", 0) > 0)) { - std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_iono); - flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read GPS iono parameters." << std::endl; - ret = true; - } + if (supl_client_ephemeris_.load_cnav_ephemeris_xml(eph_cnav_xml_filename) == true) + { + std::map::const_iterator gps_cnav_eph_iter; + for (gps_cnav_eph_iter = supl_client_ephemeris_.gps_cnav_ephemeris_map.cbegin(); + gps_cnav_eph_iter != supl_client_ephemeris_.gps_cnav_ephemeris_map.cend(); + gps_cnav_eph_iter++) + { + std::cout << "From XML file: Read CNAV ephemeris for satellite " << Gnss_Satellite("GPS", gps_cnav_eph_iter->second.i_satellite_PRN) << std::endl; + std::shared_ptr tmp_obj = std::make_shared(gps_cnav_eph_iter->second); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + } + ret = true; + } - if (supl_client_acquisition_.load_gal_iono_xml(gal_iono_xml_filename) == true) - { - std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gal_iono); - flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read Galileo iono parameters." << std::endl; - ret = true; - } - - if (supl_client_acquisition_.load_gal_utc_xml(gal_utc_xml_filename) == true) - { - std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gal_utc); - flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read Galileo UTC parameters." << std::endl; - ret = true; - } - - if (supl_client_acquisition_.load_cnav_utc_xml(cnav_utc_xml_filename) == true) - { - std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_cnav_utc); - flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read GPS CNAV UTC parameters." << std::endl; - ret = true; + if (supl_client_acquisition_.load_cnav_utc_xml(cnav_utc_xml_filename) == true) + { + std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_cnav_utc); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + std::cout << "From XML file: Read GPS CNAV UTC parameters." << std::endl; + ret = true; + } } if (ret == false) From 15c4d62096867350909157bdd2bc22d6da67c320 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 20 Oct 2018 19:30:32 +0200 Subject: [PATCH 29/44] Add Glonass assistance --- .../PVT/gnuradio_blocks/rtklib_pvt_cc.cc | 44 +++++++++ src/core/libs/gnss_sdr_supl_client.cc | 93 +++++++++++++++++++ src/core/libs/gnss_sdr_supl_client.h | 26 ++++++ src/core/receiver/control_thread.cc | 29 ++++++ src/core/receiver/control_thread.h | 2 + 5 files changed, 194 insertions(+) diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc index 13498ee71..d7de9453c 100644 --- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc +++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc @@ -548,6 +548,50 @@ rtklib_pvt_cc::~rtklib_pvt_cc() { LOG(INFO) << "Failed to save GPS CNAV UTC model parameters, not valid data"; } + + // save GLONASS GNAV ephemeris to XML file + file_name = "glo_gnav_ephemeris.xml"; + if (d_ls_pvt->glonass_gnav_ephemeris_map.empty() == false) + { + std::ofstream ofs; + try + { + ofs.open(file_name.c_str(), std::ofstream::trunc | std::ofstream::out); + boost::archive::xml_oarchive xml(ofs); + xml << boost::serialization::make_nvp("GNSS-SDR_gnav_ephemeris_map", d_ls_pvt->glonass_gnav_ephemeris_map); + LOG(INFO) << "Saved GLONASS GNAV ephemeris map data"; + } + catch (std::exception& e) + { + LOG(WARNING) << e.what(); + } + } + else + { + LOG(INFO) << "Failed to save GLONASS GNAV ephemeris, map is empty"; + } + + // save GLONASS UTC model parameters to XML file + file_name = "glo_utc_model.xml"; + if (d_ls_pvt->glonass_gnav_utc_model.valid) + { + std::ofstream ofs; + try + { + ofs.open(file_name.c_str(), std::ofstream::trunc | std::ofstream::out); + boost::archive::xml_oarchive xml(ofs); + xml << boost::serialization::make_nvp("GNSS-SDR_gnav_utc_model", d_ls_pvt->glonass_gnav_utc_model); + LOG(INFO) << "Saved GLONASS UTC model parameters"; + } + catch (std::exception& e) + { + LOG(WARNING) << e.what(); + } + } + else + { + LOG(INFO) << "Failed to save GLONASS GNAV ephemeris, not valid data"; + } } diff --git a/src/core/libs/gnss_sdr_supl_client.cc b/src/core/libs/gnss_sdr_supl_client.cc index ce4df68f0..022f658fe 100644 --- a/src/core/libs/gnss_sdr_supl_client.cc +++ b/src/core/libs/gnss_sdr_supl_client.cc @@ -509,6 +509,53 @@ bool save_cnav_ephemeris_map_xml(const std::string file_name, std::map> boost::serialization::make_nvp("GNSS-SDR_gnav_ephemeris_map", this->glonass_gnav_ephemeris_map); + LOG(INFO) << "Loaded GLONASS ephemeris map data with " << this->gps_cnav_ephemeris_map.size() << " satellites"; + } + catch (std::exception& e) + { + LOG(WARNING) << e.what() << "File: " << file_name; + return false; + } + return true; +} + + +bool save_gnav_ephemeris_map_xml(const std::string file_name, std::map eph_map) +{ + if (eph_map.empty() == false) + { + std::ofstream ofs; + try + { + ofs.open(file_name.c_str(), std::ofstream::trunc | std::ofstream::out); + boost::archive::xml_oarchive xml(ofs); + xml << boost::serialization::make_nvp("GNSS-SDR_gnav_ephemeris_map", eph_map); + LOG(INFO) << "Saved GLONASS GNAV ephemeris map data"; + } + catch (std::exception& e) + { + LOG(WARNING) << e.what(); + return false; + } + } + else + { + LOG(WARNING) << "Failed to save GLONASS GNAV ephemeris, map is empty"; + return false; + } + return true; +} + + bool gnss_sdr_supl_client::load_utc_xml(const std::string file_name) { std::ifstream ifs; @@ -739,6 +786,52 @@ bool gnss_sdr_supl_client::save_gal_iono_xml(const std::string file_name, Galile } +bool gnss_sdr_supl_client::load_glo_utc_xml(const std::string file_name) +{ + std::ifstream ifs; + try + { + ifs.open(file_name.c_str(), std::ifstream::binary | std::ifstream::in); + boost::archive::xml_iarchive xml(ifs); + xml >> boost::serialization::make_nvp("GNSS-SDR_glo_utc_model", this->glo_gnav_utc); + LOG(INFO) << "Loaded UTC model data"; + } + catch (std::exception& e) + { + LOG(WARNING) << e.what() << "File: " << file_name; + return false; + } + return true; +} + + +bool gnss_sdr_supl_client::save_glo_utc_xml(const std::string file_name, Glonass_Gnav_Utc_Model& utc) +{ + if (utc.valid) + { + std::ofstream ofs; + try + { + ofs.open(file_name.c_str(), std::ofstream::trunc | std::ofstream::out); + boost::archive::xml_oarchive xml(ofs); + xml << boost::serialization::make_nvp("GNSS-SDR_glo_utc_model", utc); + LOG(INFO) << "Saved Glonass UTC Model data"; + } + catch (std::exception& e) + { + LOG(WARNING) << e.what(); + return false; + } + } + else + { + LOG(WARNING) << "Failed to save Glonass UTC model, no valid data"; + return false; + } + return true; +} + + bool gnss_sdr_supl_client::load_ref_time_xml(const std::string file_name) { std::ifstream ifs; diff --git a/src/core/libs/gnss_sdr_supl_client.h b/src/core/libs/gnss_sdr_supl_client.h index 9aea60492..a5554c75f 100644 --- a/src/core/libs/gnss_sdr_supl_client.h +++ b/src/core/libs/gnss_sdr_supl_client.h @@ -51,6 +51,8 @@ extern "C" #include "galileo_ephemeris.h" #include "galileo_utc_model.h" #include "galileo_iono.h" +#include "glonass_gnav_ephemeris.h" +#include "glonass_gnav_utc_model.h" #include #include #include @@ -84,6 +86,8 @@ public: std::map gps_ephemeris_map; std::map gal_ephemeris_map; std::map gps_cnav_ephemeris_map; + std::map glonass_gnav_ephemeris_map; + // almanac map std::map gps_almanac_map; @@ -96,6 +100,7 @@ public: Gps_Utc_Model gps_utc; Galileo_Utc_Model gal_utc; Gps_CNAV_Utc_Model gps_cnav_utc; + Glonass_Gnav_Utc_Model glo_gnav_utc; // reference location Gps_Ref_Location gps_ref_loc; // Acquisition Assistance map @@ -149,6 +154,17 @@ public: bool save_gal_ephemeris_map_xml(const std::string file_name, std::map eph_map); + /*! + * \brief Read GLONASS GNAV ephemeris map from XML file + */ + bool load_gnav_ephemeris_xml(const std::string file_name); + + /*! + * \brief Save GLONASS GNAV ephemeris map to XML file. + */ + bool save_gnav_ephemeris_map_xml(const std::string file_name, + std::map eph_map); + /*! * \brief Read GPS utc model from XML file */ @@ -202,6 +218,16 @@ public: */ bool save_gal_iono_xml(const std::string file_name, Galileo_Iono& iono); + /*! + * \brief Read Glonass utc model from XML file + */ + bool load_glo_utc_xml(const std::string file_name); + + /*! + * \brief Save Glonass UTC model map to XML file + */ + bool save_glo_utc_xml(const std::string file_name, Glonass_Gnav_Utc_Model& utc); + /*! * \brief Read ref time from XML file */ diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index 8fd295192..51ebbd9d8 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -47,6 +47,8 @@ #include "gps_iono.h" #include "gps_utc_model.h" #include "gps_almanac.h" +#include "glonass_gnav_ephemeris.h" +#include "glonass_gnav_utc_model.h" #include #include #include @@ -208,6 +210,8 @@ bool ControlThread::read_assistance_from_XML() std::string eph_cnav_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_cnav_ephemeris_xml", eph_cnav_default_xml_filename); std::string gal_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gal_utc_model.xml", gal_utc_default_xml_filename); std::string cnav_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_cnav_utc_model.xml", cnav_utc_default_xml_filename); + std::string eph_glo_xml_filename = configuration_->property("GNSS-SDR.SUPL_glo_ephemeris_xml", eph_glo_gnav_default_xml_filename); + std::string glo_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_glo_utc_model.xml", glo_utc_default_xml_filename); std::cout << "Trying to read GNSS ephemeris from XML file(s)..." << std::endl; @@ -302,6 +306,31 @@ bool ControlThread::read_assistance_from_XML() } } + if ((configuration_->property("Channels_1G.count", 0) > 0) or (configuration_->property("Channels_2G.count", 0) > 0)) + { + if (supl_client_ephemeris_.load_gnav_ephemeris_xml(eph_glo_xml_filename) == true) + { + std::map::const_iterator glo_gnav_eph_iter; + for (glo_gnav_eph_iter = supl_client_ephemeris_.glonass_gnav_ephemeris_map.cbegin(); + glo_gnav_eph_iter != supl_client_ephemeris_.glonass_gnav_ephemeris_map.cend(); + glo_gnav_eph_iter++) + { + std::cout << "From XML file: Read GLONASS GNAV ephemeris for satellite " << Gnss_Satellite("GLONASS", glo_gnav_eph_iter->second.i_satellite_PRN) << std::endl; + std::shared_ptr tmp_obj = std::make_shared(glo_gnav_eph_iter->second); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + } + ret = true; + } + + if (supl_client_acquisition_.load_glo_utc_xml(glo_utc_xml_filename) == true) + { + std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.glo_gnav_utc); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + std::cout << "From XML file: Read GLONASS UTC parameters." << std::endl; + ret = true; + } + } + if (ret == false) { std::cout << "ERROR: SUPL client error reading XML" << std::endl; diff --git a/src/core/receiver/control_thread.h b/src/core/receiver/control_thread.h index 534fc968e..7335d0547 100644 --- a/src/core/receiver/control_thread.h +++ b/src/core/receiver/control_thread.h @@ -172,6 +172,8 @@ private: const std::string gal_iono_default_xml_filename = "./gal_iono.xml"; const std::string gal_utc_default_xml_filename = "./gal_utc_model.xml"; const std::string cnav_utc_default_xml_filename = "./gps_cnav_utc_model.xml"; + const std::string eph_glo_gnav_default_xml_filename = "./glo_gnav_ephemeris.xml"; + const std::string glo_utc_default_xml_filename = "./glo_utc_model.xml"; }; #endif /*GNSS_SDR_CONTROL_THREAD_H_*/ From 64d9e63b18347f621b1296872c3623222752aa81 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 20 Oct 2018 19:31:10 +0200 Subject: [PATCH 30/44] Add missing include path --- .../unit-tests/signal-processing-blocks/libs/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt b/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt index 332f0e583..7d15075f2 100644 --- a/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt +++ b/src/tests/unit-tests/signal-processing-blocks/libs/CMakeLists.txt @@ -29,6 +29,7 @@ set(SIGNAL_PROCESSING_TESTING_LIB_SOURCES include_directories( ${CMAKE_CURRENT_SOURCE_DIR} + ${Boost_INCLUDE_DIRS} ${GLOG_INCLUDE_DIRS} ${GFlags_INCLUDE_DIRS} ${MATIO_INCLUDE_DIRS} From e750ee94d7c0d7d972d4720e0f42dd5f06813401 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 20 Oct 2018 19:39:14 +0200 Subject: [PATCH 31/44] Update googletest and Mac OS Mojave info --- README.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f2fe4a607..6624d618d 100644 --- a/README.md +++ b/README.md @@ -64,10 +64,10 @@ $ sudo apt-get install build-essential cmake git libboost-dev libboost-date-time libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev \ libboost-serialization-dev liblog4cpp5-dev libuhd-dev gnuradio-dev gr-osmosdr \ libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev \ - libgnutls-openssl-dev libpcap-dev python-mako python-six libmatio-dev googletest + libgnutls-openssl-dev libpcap-dev python-mako python-six libmatio-dev libgtest-dev ~~~~~~ -Please note that `googletest` was named `libgtest-dev` in distributions older than Debian 9 "stretch" and Ubuntu 17.04 "zesty". +Please note that the required files from `libgtest-dev` were moved to `googletest` in Debian 9 "stretch" and Ubuntu 18.04 "bionic", and moved back again to `libgtest-dev` in Debian 10 "buster" and Ubuntu 18.10 "cosmic". **Note for Ubuntu 14.04 LTS "trusty" users:** you will need to build from source and install GNU Radio manually, as explained below, since GNSS-SDR requires `gnuradio-dev` >= 3.7.3, and Ubuntu 14.04 came with 3.7.2. Install all the packages above BUT EXCEPT `libuhd-dev`, `gnuradio-dev` and `gr-osmosdr` (and remove them if they are already installed in your machine), and install those dependencies using PyBOMBS. The same applies to `libmatio-dev`: Ubuntu 14.04 came with 1.5.2 and the minimum required version is 1.5.3. Please do not install the `libmatio-dev` package and install `libtool`, `automake` and `libhdf5-dev` instead. A recent version of the library will be downloaded and built automatically if CMake does not find it installed. @@ -516,10 +516,7 @@ More details can be found in our tutorial about [GNSS-SDR configuration options macOS and Mac OS X --------- - -### macOS 10.13 (High Sierra) and 10.12 (Sierra), Mac OS X 10.11 (El Capitan), 10.10 (Yosemite) and 10.9 (Mavericks). - -If you still have not installed [Xcode](https://developer.apple.com/xcode/ "Xcode"), do it now from the App Store (it's free). You will also need the Xcode Command Line Tools. Launch the Terminal, found in /Applications/Utilities/, and type: +GNSS-SDR can be built on MacOS or Mac OS X, starting from 10.9 (Mavericks) and including 10.14 (Mojave). If you still have not installed [Xcode](https://developer.apple.com/xcode/ "Xcode"), do it now from the App Store (it's free). You will also need the Xcode Command Line Tools. Launch the Terminal, found in /Applications/Utilities/, and type: ~~~~~~ $ xcode-select --install @@ -558,7 +555,7 @@ You also might need to activate a Python installation. The list of installed ver $ port select list python ~~~~~~ -and you can activate a certain version (2.7 works well) by typing: +and you can activate a certain version by typing: ~~~~~~ $ sudo port select --set python python27 From 7b5caca9f8eaf86264c040c025c84a006c804064 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 20 Oct 2018 19:49:07 +0200 Subject: [PATCH 32/44] Detect MacOS Mojave --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b4a2cb33..670977ab9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -229,6 +229,12 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(OS_IS_MACOSX TRUE) exec_program(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION) string(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION}) + if(${DARWIN_VERSION} MATCHES "18") + set(MACOS_MOJAVE TRUE) + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++14") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") + message(STATUS "Configuring GNSS-SDR v${VERSION} to be built on macOS Mojave 10.14") + endif(${DARWIN_VERSION} MATCHES "18") if(${DARWIN_VERSION} MATCHES "17") set(MACOS_HIGH_SIERRA TRUE) set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++14") From c6e3dbb929b9ef98e3d21d3fce4d2d1c1af37784 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 11:06:36 +0200 Subject: [PATCH 33/44] Replace the deprecated exec_program by execute_process --- CMakeLists.txt | 2 +- cmake/cmake_uninstall.cmake.in | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 670977ab9..4a209fcaf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -227,7 +227,7 @@ endif(NOT LINUX_DISTRIBUTION) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(OperatingSystem "Mac OS X") set(OS_IS_MACOSX TRUE) - exec_program(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION) + execute_process(COMMAND uname -v OUTPUT_VARIABLE DARWIN_VERSION) string(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION}) if(${DARWIN_VERSION} MATCHES "18") set(MACOS_MOJAVE TRUE) diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in index 5d4ab76f7..9b3887185 100644 --- a/cmake/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -24,10 +24,10 @@ string(REGEX REPLACE "\n" ";" files "${files}") foreach(file ${files}) message(STATUS "Uninstalling $ENV{DESTDIR}${file}") if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") - exec_program( - "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + execute_process( + COMMAND @CMAKE_COMMAND@ -E remove \"$ENV{DESTDIR}${file}\" OUTPUT_VARIABLE rm_out - RETURN_VALUE rm_retval + RESULT_VARIABLE rm_retval ) if(NOT "${rm_retval}" STREQUAL 0) message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") From ec50cda69290c37683492d476893bb0bfe04515e Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 11:28:47 +0200 Subject: [PATCH 34/44] Replace the deprecated exec_program by execute_process --- .../volk_gnsssdr/cmake/cmake_uninstall.cmake.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in index a6191a104..d026a667a 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/cmake_uninstall.cmake.in @@ -25,10 +25,10 @@ string(REGEX REPLACE "\n" ";" files "${files}") foreach(file ${files}) message(STATUS "Uninstalling $ENV{DESTDIR}${file}") if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") - exec_program( - "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + execute_process( + COMMAND @CMAKE_COMMAND@ -E remove \"$ENV{DESTDIR}${file}\" OUTPUT_VARIABLE rm_out - RETURN_VALUE rm_retval + RESULT_VARIABLE rm_retval ) if(NOT "${rm_retval}" STREQUAL 0) message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") From 337cafb31aff36b1cde0892e5c267fe74c197619 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 12:16:45 +0200 Subject: [PATCH 35/44] Remove unused function --- src/algorithms/PVT/adapters/rtklib_pvt.cc | 43 ----------------------- src/algorithms/PVT/adapters/rtklib_pvt.h | 4 +-- src/core/libs/gnss_sdr_supl_client.h | 4 +-- 3 files changed, 2 insertions(+), 49 deletions(-) diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.cc b/src/algorithms/PVT/adapters/rtklib_pvt.cc index 509d07886..3e63a19a6 100644 --- a/src/algorithms/PVT/adapters/rtklib_pvt.cc +++ b/src/algorithms/PVT/adapters/rtklib_pvt.cc @@ -133,18 +133,6 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration, { rtcm_msg_rate_ms[k] = rtcm_MT1097_rate_ms; } - // getting names from the config file, if available - // default filename for assistance data - const std::string eph_default_xml_filename = "./gps_ephemeris.xml"; - const std::string utc_default_xml_filename = "./gps_utc_model.xml"; - const std::string iono_default_xml_filename = "./gps_iono.xml"; - const std::string ref_time_default_xml_filename = "./gps_ref_time.xml"; - const std::string ref_location_default_xml_filename = "./gps_ref_location.xml"; - eph_xml_filename_ = configuration->property("GNSS-SDR.SUPL_gps_ephemeris_xml", eph_default_xml_filename); - //std::string utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_utc_model.xml", utc_default_xml_filename); - //std::string iono_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_iono_xml", iono_default_xml_filename); - //std::string ref_time_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ref_time_xml", ref_time_default_xml_filename); - //std::string ref_location_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ref_location_xml", ref_location_default_xml_filename); // Infer the type of receiver /* @@ -499,40 +487,9 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration, } -bool RtklibPvt::save_assistance_to_XML() -{ - LOG(INFO) << "SUPL: Try to save GPS ephemeris to XML file " << eph_xml_filename_; - std::map eph_map = pvt_->get_GPS_L1_ephemeris_map(); - - if (eph_map.empty() == false) - { - std::ofstream ofs; - try - { - ofs.open(eph_xml_filename_.c_str(), std::ofstream::trunc | std::ofstream::out); - boost::archive::xml_oarchive xml(ofs); - xml << boost::serialization::make_nvp("GNSS-SDR_ephemeris_map", eph_map); - LOG(INFO) << "Saved GPS L1 Ephemeris map data"; - } - catch (const std::exception& e) - { - LOG(WARNING) << e.what(); - return false; - } - } - else - { - LOG(WARNING) << "Failed to save Ephemeris, map is empty"; - return false; - } - return true; // return variable (true == succeeded) -} - - RtklibPvt::~RtklibPvt() { rtkfree(&rtk); - save_assistance_to_XML(); } diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.h b/src/algorithms/PVT/adapters/rtklib_pvt.h index 936fd1632..c79519581 100644 --- a/src/algorithms/PVT/adapters/rtklib_pvt.h +++ b/src/algorithms/PVT/adapters/rtklib_pvt.h @@ -40,7 +40,7 @@ class ConfigurationInterface; /*! - * \brief This class implements a PvtInterface for Galileo E1 + * \brief This class implements a PvtInterface for the RTKLIB PVT block */ class RtklibPvt : public PvtInterface { @@ -87,8 +87,6 @@ private: std::string role_; unsigned int in_streams_; unsigned int out_streams_; - std::string eph_xml_filename_; - bool save_assistance_to_XML(); }; #endif diff --git a/src/core/libs/gnss_sdr_supl_client.h b/src/core/libs/gnss_sdr_supl_client.h index a5554c75f..465e552f3 100644 --- a/src/core/libs/gnss_sdr_supl_client.h +++ b/src/core/libs/gnss_sdr_supl_client.h @@ -172,7 +172,6 @@ public: /*! * \brief Save UTC model map to XML file - * To be called by ControlThread::gps_utc_model_data_write_to_XML() */ bool save_utc_xml(const std::string file_name, Gps_Utc_Model& utc); @@ -183,7 +182,6 @@ public: /*! * \brief Save CNAV UTC model map to XML file - * To be called by ControlThread::gps_utc_model_data_write_to_XML() */ bool save_cnav_utc_xml(const std::string file_name, Gps_CNAV_Utc_Model& utc); @@ -194,7 +192,6 @@ public: /*! * \brief Save Galileo UTC model map to XML file - * To be called by ControlThread::gal_utc_model_data_write_to_XML() */ bool save_gal_utc_xml(const std::string file_name, Galileo_Utc_Model& utc); @@ -254,6 +251,7 @@ public: * Prints SUPL data to std::cout. Use it for debug purposes only. */ void print_assistance(); + gnss_sdr_supl_client(); ~gnss_sdr_supl_client(); }; From 0e454cb76e1ffc68c551b2176bc02ba7c72059de Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 13:58:29 +0200 Subject: [PATCH 36/44] More consistent naming for AGNSS configuration parameters, backward-compatible with SUPL --- src/core/receiver/control_thread.cc | 69 +++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index 51ebbd9d8..6e04d72f0 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -213,6 +213,22 @@ bool ControlThread::read_assistance_from_XML() std::string eph_glo_xml_filename = configuration_->property("GNSS-SDR.SUPL_glo_ephemeris_xml", eph_glo_gnav_default_xml_filename); std::string glo_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_glo_utc_model.xml", glo_utc_default_xml_filename); + if (configuration_->property("GNSS-SDR.AGNSS_XML_enabled", false) == true) + { + eph_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_ephemeris_xml", eph_default_xml_filename); + utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_utc_model.xml", utc_default_xml_filename); + iono_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_iono_xml", iono_default_xml_filename); + gal_iono_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gal_iono_xml", gal_iono_default_xml_filename); + ref_time_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_ref_time_xml", ref_time_default_xml_filename); + ref_location_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_ref_location_xml", ref_location_default_xml_filename); + eph_gal_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gal_ephemeris_xml", eph_gal_default_xml_filename); + eph_cnav_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_cnav_ephemeris_xml", eph_cnav_default_xml_filename); + gal_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gal_utc_model.xml", gal_utc_default_xml_filename); + cnav_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_cnav_utc_model.xml", cnav_utc_default_xml_filename); + eph_glo_xml_filename = configuration_->property("GNSS-SDR.AGNSS_glo_ephemeris_xml", eph_glo_gnav_default_xml_filename); + glo_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_glo_utc_model.xml", glo_utc_default_xml_filename); + } + std::cout << "Trying to read GNSS ephemeris from XML file(s)..." << std::endl; if (configuration_->property("Channels_1C.count", 0) > 0) @@ -333,8 +349,8 @@ bool ControlThread::read_assistance_from_XML() if (ret == false) { - std::cout << "ERROR: SUPL client error reading XML" << std::endl; - std::cout << "Disabling SUPL assistance..." << std::endl; + std::cout << "Error reading XML files" << std::endl; + std::cout << "Disabling GNSS assistance..." << std::endl; } // Only look for {ref time, ref location} if SUPL is enabled @@ -375,11 +391,11 @@ void ControlThread::assist_GNSS() //######### GNSS Assistance ################################# // GNSS Assistance configuration bool enable_gps_supl_assistance = configuration_->property("GNSS-SDR.SUPL_gps_enabled", false); - if (enable_gps_supl_assistance == true) - //SUPL SERVER TEST. Not operational yet! + bool enable_xml_agnss_enabled = configuration_->property("GNSS-SDR.AGNSS_XML_enabled", false); + if ((enable_gps_supl_assistance == true) and (enable_xml_agnss_enabled == false)) { std::cout << "SUPL RRLP GPS assistance enabled!" << std::endl; - std::string default_acq_server = "supl.nokia.com"; + std::string default_acq_server = "supl.google.com"; std::string default_eph_server = "supl.google.com"; supl_client_ephemeris_.server_name = configuration_->property("GNSS-SDR.SUPL_gps_ephemeris_server", default_acq_server); supl_client_acquisition_.server_name = configuration_->property("GNSS-SDR.SUPL_gps_acquisition_server", default_eph_server); @@ -431,11 +447,11 @@ void ControlThread::assist_GNSS() gps_eph_iter != supl_client_ephemeris_.gps_ephemeris_map.cend(); gps_eph_iter++) { - std::cout << "SUPL: Received Ephemeris for GPS SV " << gps_eph_iter->first << std::endl; + std::cout << "SUPL: Received Ephemeris for GPS satellite " << Gnss_Satellite("GPS", gps_eph_iter->second.i_satellite_PRN) << std::endl; std::shared_ptr tmp_obj = std::make_shared(gps_eph_iter->second); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } - //Save ephemeris to XML file + // Save ephemeris to XML file std::string eph_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ephemeris_xml", eph_default_xml_filename); if (supl_client_ephemeris_.save_ephemeris_map_xml(eph_xml_filename, supl_client_ephemeris_.gps_ephemeris_map) == true) { @@ -449,7 +465,7 @@ void ControlThread::assist_GNSS() else { std::cout << "ERROR: SUPL client for Ephemeris returned " << error << std::endl; - std::cout << "Please check internet connection and SUPL server configuration" << error << std::endl; + std::cout << "Please check internet connection and SUPL server configuration" << std::endl; std::cout << "Trying to read ephemeris from XML file" << std::endl; if (read_assistance_from_XML() == false) { @@ -457,7 +473,7 @@ void ControlThread::assist_GNSS() } } - // Request almanac , IONO and UTC Model + // Request almanac, IONO and UTC Model data supl_client_ephemeris_.request = 0; std::cout << "SUPL: Try read Almanac, Iono, Utc Model, Ref Time and Ref Location from SUPL server..." << std::endl; error = supl_client_ephemeris_.get_assistance(supl_mcc, supl_mns, supl_lac, supl_ci); @@ -468,7 +484,7 @@ void ControlThread::assist_GNSS() gps_alm_iter != supl_client_ephemeris_.gps_almanac_map.cend(); gps_alm_iter++) { - std::cout << "SUPL: Received Almanac for GPS SV " << gps_alm_iter->first << std::endl; + std::cout << "SUPL: Received Almanac for GPS satellite " << Gnss_Satellite("GPS", gps_alm_iter->second.i_satellite_PRN) << std::endl; std::shared_ptr tmp_obj = std::make_shared(gps_alm_iter->second); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } @@ -484,11 +500,30 @@ void ControlThread::assist_GNSS() std::shared_ptr tmp_obj = std::make_shared(supl_client_ephemeris_.gps_utc); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } + // Save iono and UTC model data to xml file + std::string iono_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_iono_xml", iono_default_xml_filename); + if (supl_client_ephemeris_.save_iono_xml(iono_xml_filename, supl_client_ephemeris_.gps_iono) == true) + { + std::cout << "SUPL: Iono data file created" << std::endl; + } + else + { + std::cout << "SUPL: Failed to create Iono data file" << std::endl; + } + std::string utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_utc_model.xml", utc_default_xml_filename); + if (supl_client_ephemeris_.save_utc_xml(utc_xml_filename, supl_client_ephemeris_.gps_utc) == true) + { + std::cout << "SUPL: UTC model file created" << std::endl; + } + else + { + std::cout << "SUPL: Failed to create XML UTC model file" << std::endl; + } } else { std::cout << "ERROR: SUPL client for Almanac returned " << error << std::endl; - std::cout << "Please check internet connection and SUPL server configuration" << error << std::endl; + std::cout << "Please check internet connection and SUPL server configuration" << std::endl; std::cout << "Disabling SUPL assistance." << std::endl; } @@ -503,7 +538,7 @@ void ControlThread::assist_GNSS() gps_acq_iter != supl_client_acquisition_.gps_acq_map.cend(); gps_acq_iter++) { - std::cout << "SUPL: Received Acquisition assistance for GPS SV " << gps_acq_iter->first << std::endl; + std::cout << "SUPL: Received Acquisition assistance for GPS satellite " << Gnss_Satellite("GPS", gps_acq_iter->second.i_satellite_PRN) << std::endl; global_gps_acq_assist_map.write(gps_acq_iter->second.i_satellite_PRN, gps_acq_iter->second); } if (supl_client_acquisition_.gps_ref_loc.valid == true) @@ -522,11 +557,19 @@ void ControlThread::assist_GNSS() else { std::cout << "ERROR: SUPL client for Acquisition assistance returned " << error << std::endl; - std::cout << "Please check internet connection and SUPL server configuration" << error << std::endl; + std::cout << "Please check internet connection and SUPL server configuration" << std::endl; std::cout << "Disabling SUPL assistance.." << std::endl; } } } + if ((enable_gps_supl_assistance == false) and (enable_xml_agnss_enabled == true)) + { + // read assistance from file + if (read_assistance_from_XML()) + { + std::cout << "GNSS assistance data loaded from local XML file(s)." << std::endl; + } + } } From 7cad0bac742bdb1d4dbd423148601ab9dc1c5720 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 14:15:41 +0200 Subject: [PATCH 37/44] Improve wording in SUPL terminal output --- src/core/receiver/control_thread.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index 6e04d72f0..3fd122d5a 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -447,7 +447,7 @@ void ControlThread::assist_GNSS() gps_eph_iter != supl_client_ephemeris_.gps_ephemeris_map.cend(); gps_eph_iter++) { - std::cout << "SUPL: Received Ephemeris for GPS satellite " << Gnss_Satellite("GPS", gps_eph_iter->second.i_satellite_PRN) << std::endl; + std::cout << "SUPL: Received Ephemeris for satellite " << Gnss_Satellite("GPS", gps_eph_iter->second.i_satellite_PRN) << std::endl; std::shared_ptr tmp_obj = std::make_shared(gps_eph_iter->second); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } @@ -484,7 +484,7 @@ void ControlThread::assist_GNSS() gps_alm_iter != supl_client_ephemeris_.gps_almanac_map.cend(); gps_alm_iter++) { - std::cout << "SUPL: Received Almanac for GPS satellite " << Gnss_Satellite("GPS", gps_alm_iter->second.i_satellite_PRN) << std::endl; + std::cout << "SUPL: Received Almanac for satellite " << Gnss_Satellite("GPS", gps_alm_iter->second.i_satellite_PRN) << std::endl; std::shared_ptr tmp_obj = std::make_shared(gps_alm_iter->second); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } @@ -538,7 +538,7 @@ void ControlThread::assist_GNSS() gps_acq_iter != supl_client_acquisition_.gps_acq_map.cend(); gps_acq_iter++) { - std::cout << "SUPL: Received Acquisition assistance for GPS satellite " << Gnss_Satellite("GPS", gps_acq_iter->second.i_satellite_PRN) << std::endl; + std::cout << "SUPL: Received Acquisition assistance for satellite " << Gnss_Satellite("GPS", gps_acq_iter->second.i_satellite_PRN) << std::endl; global_gps_acq_assist_map.write(gps_acq_iter->second.i_satellite_PRN, gps_acq_iter->second); } if (supl_client_acquisition_.gps_ref_loc.valid == true) From 239efe245853e8eeeedbde8ee598366d9c0d2055 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 17:55:06 +0200 Subject: [PATCH 38/44] Improve wording in SUPL terminal output --- src/core/receiver/control_thread.cc | 71 +++++++++++++++-------------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index 3fd122d5a..dbc433241 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -251,7 +251,7 @@ bool ControlThread::read_assistance_from_XML() { std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_utc); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read GPS UTC parameters." << std::endl; + std::cout << "From XML file: Read GPS UTC model parameters." << std::endl; ret = true; } @@ -259,7 +259,7 @@ bool ControlThread::read_assistance_from_XML() { std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_iono); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read GPS iono parameters." << std::endl; + std::cout << "From XML file: Read GPS ionosphere model parameters." << std::endl; ret = true; } } @@ -284,7 +284,7 @@ bool ControlThread::read_assistance_from_XML() { std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gal_iono); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read Galileo iono parameters." << std::endl; + std::cout << "From XML file: Read Galileo ionosphere model parameters." << std::endl; ret = true; } @@ -292,7 +292,7 @@ bool ControlThread::read_assistance_from_XML() { std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gal_utc); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read Galileo UTC parameters." << std::endl; + std::cout << "From XML file: Read Galileo UTC model parameters." << std::endl; ret = true; } } @@ -317,7 +317,7 @@ bool ControlThread::read_assistance_from_XML() { std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_cnav_utc); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read GPS CNAV UTC parameters." << std::endl; + std::cout << "From XML file: Read GPS CNAV UTC model parameters." << std::endl; ret = true; } } @@ -342,7 +342,7 @@ bool ControlThread::read_assistance_from_XML() { std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.glo_gnav_utc); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); - std::cout << "From XML file: Read GLONASS UTC parameters." << std::endl; + std::cout << "From XML file: Read GLONASS UTC model parameters." << std::endl; ret = true; } } @@ -366,7 +366,7 @@ bool ControlThread::read_assistance_from_XML() } else { - LOG(INFO) << "SUPL: couldn't read Ref Time XML"; + LOG(INFO) << "SUPL: could not read Ref Time XML"; } // Try to read Ref Location from XML @@ -378,7 +378,7 @@ bool ControlThread::read_assistance_from_XML() } else { - LOG(INFO) << "SUPL: couldn't read Ref Location XML"; + LOG(INFO) << "SUPL: could not read Ref Location XML"; } } @@ -391,8 +391,8 @@ void ControlThread::assist_GNSS() //######### GNSS Assistance ################################# // GNSS Assistance configuration bool enable_gps_supl_assistance = configuration_->property("GNSS-SDR.SUPL_gps_enabled", false); - bool enable_xml_agnss_enabled = configuration_->property("GNSS-SDR.AGNSS_XML_enabled", false); - if ((enable_gps_supl_assistance == true) and (enable_xml_agnss_enabled == false)) + bool enable_agnss_xml = configuration_->property("GNSS-SDR.AGNSS_XML_enabled", false); + if ((enable_gps_supl_assistance == true) and (enable_agnss_xml == false)) { std::cout << "SUPL RRLP GPS assistance enabled!" << std::endl; std::string default_acq_server = "supl.google.com"; @@ -431,6 +431,7 @@ void ControlThread::assist_GNSS() if (read_assistance_from_XML()) { std::cout << "GNSS assistance data loaded from local XML file(s)." << std::endl; + std::cout << "No SUPL request has been performed." << std::endl; } } else @@ -438,7 +439,7 @@ void ControlThread::assist_GNSS() // Request ephemeris from SUPL server int error; supl_client_ephemeris_.request = 1; - std::cout << "SUPL: Try to read GPS ephemeris from SUPL server..." << std::endl; + std::cout << "SUPL: Try to read GPS ephemeris data from SUPL server..." << std::endl; error = supl_client_ephemeris_.get_assistance(supl_mcc, supl_mns, supl_lac, supl_ci); if (error == 0) { @@ -447,7 +448,7 @@ void ControlThread::assist_GNSS() gps_eph_iter != supl_client_ephemeris_.gps_ephemeris_map.cend(); gps_eph_iter++) { - std::cout << "SUPL: Received Ephemeris for satellite " << Gnss_Satellite("GPS", gps_eph_iter->second.i_satellite_PRN) << std::endl; + std::cout << "SUPL: Received ephemeris data for satellite " << Gnss_Satellite("GPS", gps_eph_iter->second.i_satellite_PRN) << std::endl; std::shared_ptr tmp_obj = std::make_shared(gps_eph_iter->second); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } @@ -455,27 +456,27 @@ void ControlThread::assist_GNSS() std::string eph_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ephemeris_xml", eph_default_xml_filename); if (supl_client_ephemeris_.save_ephemeris_map_xml(eph_xml_filename, supl_client_ephemeris_.gps_ephemeris_map) == true) { - std::cout << "SUPL: XML Ephemeris file created" << std::endl; + std::cout << "SUPL: XML ephemeris data file created" << std::endl; } else { - std::cout << "SUPL: Failed to create XML Ephemeris file" << std::endl; + std::cout << "SUPL: Failed to create XML ephemeris data file" << std::endl; } } else { - std::cout << "ERROR: SUPL client for Ephemeris returned " << error << std::endl; - std::cout << "Please check internet connection and SUPL server configuration" << std::endl; - std::cout << "Trying to read ephemeris from XML file" << std::endl; + std::cout << "ERROR: SUPL client request for ephemeris data returned " << error << std::endl; + std::cout << "Please check your network connectivity and SUPL server configuration" << std::endl; + std::cout << "Trying to read AGNSS data from local XML file(s)..." << std::endl; if (read_assistance_from_XML() == false) { - std::cout << "ERROR: Could not read Ephemeris file: Disabling SUPL assistance." << std::endl; + std::cout << "ERROR: Could not read XML files: Disabling SUPL assistance." << std::endl; } } // Request almanac, IONO and UTC Model data supl_client_ephemeris_.request = 0; - std::cout << "SUPL: Try read Almanac, Iono, Utc Model, Ref Time and Ref Location from SUPL server..." << std::endl; + std::cout << "SUPL: Try to read Almanac, Iono, Utc Model, Ref Time and Ref Location data from SUPL server..." << std::endl; error = supl_client_ephemeris_.get_assistance(supl_mcc, supl_mns, supl_lac, supl_ci); if (error == 0) { @@ -484,19 +485,19 @@ void ControlThread::assist_GNSS() gps_alm_iter != supl_client_ephemeris_.gps_almanac_map.cend(); gps_alm_iter++) { - std::cout << "SUPL: Received Almanac for satellite " << Gnss_Satellite("GPS", gps_alm_iter->second.i_satellite_PRN) << std::endl; + std::cout << "SUPL: Received almanac data for satellite " << Gnss_Satellite("GPS", gps_alm_iter->second.i_satellite_PRN) << std::endl; std::shared_ptr tmp_obj = std::make_shared(gps_alm_iter->second); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } if (supl_client_ephemeris_.gps_iono.valid == true) { - std::cout << "SUPL: Received GPS Iono" << std::endl; + std::cout << "SUPL: Received GPS Ionosphere model parameters" << std::endl; std::shared_ptr tmp_obj = std::make_shared(supl_client_ephemeris_.gps_iono); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } if (supl_client_ephemeris_.gps_utc.valid == true) { - std::cout << "SUPL: Received GPS UTC Model" << std::endl; + std::cout << "SUPL: Received GPS UTC model parameters" << std::endl; std::shared_ptr tmp_obj = std::make_shared(supl_client_ephemeris_.gps_utc); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } @@ -513,23 +514,22 @@ void ControlThread::assist_GNSS() std::string utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_utc_model.xml", utc_default_xml_filename); if (supl_client_ephemeris_.save_utc_xml(utc_xml_filename, supl_client_ephemeris_.gps_utc) == true) { - std::cout << "SUPL: UTC model file created" << std::endl; + std::cout << "SUPL: UTC model data file created" << std::endl; } else { - std::cout << "SUPL: Failed to create XML UTC model file" << std::endl; + std::cout << "SUPL: Failed to create UTC model data file" << std::endl; } } else { - std::cout << "ERROR: SUPL client for Almanac returned " << error << std::endl; - std::cout << "Please check internet connection and SUPL server configuration" << std::endl; - std::cout << "Disabling SUPL assistance." << std::endl; + std::cout << "ERROR: SUPL client for almanac data returned " << error << std::endl; + std::cout << "Please check your network connectivity and SUPL server configuration" << std::endl; } // Request acquisition assistance supl_client_acquisition_.request = 2; - std::cout << "SUPL: Try read Acquisition assistance from SUPL server..." << std::endl; + std::cout << "SUPL: Try to read acquisition assistance data from SUPL server..." << std::endl; error = supl_client_acquisition_.get_assistance(supl_mcc, supl_mns, supl_lac, supl_ci); if (error == 0) { @@ -538,31 +538,32 @@ void ControlThread::assist_GNSS() gps_acq_iter != supl_client_acquisition_.gps_acq_map.cend(); gps_acq_iter++) { - std::cout << "SUPL: Received Acquisition assistance for satellite " << Gnss_Satellite("GPS", gps_acq_iter->second.i_satellite_PRN) << std::endl; + std::cout << "SUPL: Received acquisition assistance data for satellite " << Gnss_Satellite("GPS", gps_acq_iter->second.i_satellite_PRN) << std::endl; global_gps_acq_assist_map.write(gps_acq_iter->second.i_satellite_PRN, gps_acq_iter->second); } if (supl_client_acquisition_.gps_ref_loc.valid == true) { - std::cout << "SUPL: Received Ref Location (Acquisition Assistance)" << std::endl; + std::cout << "SUPL: Received Ref Location data (Acquisition Assistance)" << std::endl; std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_ref_loc); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } if (supl_client_acquisition_.gps_time.valid == true) { - std::cout << "SUPL: Received Ref Time (Acquisition Assistance)" << std::endl; + std::cout << "SUPL: Received Ref Time data (Acquisition Assistance)" << std::endl; std::shared_ptr tmp_obj = std::make_shared(supl_client_acquisition_.gps_time); flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); } } else { - std::cout << "ERROR: SUPL client for Acquisition assistance returned " << error << std::endl; - std::cout << "Please check internet connection and SUPL server configuration" << std::endl; - std::cout << "Disabling SUPL assistance.." << std::endl; + std::cout << "ERROR: SUPL client for acquisition assistance returned " << error << std::endl; + std::cout << "Please check your network connectivity and SUPL server configuration" << std::endl; + std::cout << "Disabling SUPL acquisition assistance." << std::endl; } } } - if ((enable_gps_supl_assistance == false) and (enable_xml_agnss_enabled == true)) + + if ((enable_gps_supl_assistance == false) and (enable_agnss_xml == true)) { // read assistance from file if (read_assistance_from_XML()) From 7d681a7e19868e2059bbf97512e680750401fb63 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 18:27:23 +0200 Subject: [PATCH 39/44] Fix typos --- src/core/receiver/control_thread.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index dbc433241..12da99748 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -201,32 +201,32 @@ bool ControlThread::read_assistance_from_XML() bool ret = false; // getting names from the config file, if available std::string eph_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ephemeris_xml", eph_default_xml_filename); - std::string utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_utc_model.xml", utc_default_xml_filename); + std::string utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_utc_model_xml", utc_default_xml_filename); std::string iono_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_iono_xml", iono_default_xml_filename); std::string gal_iono_xml_filename = configuration_->property("GNSS-SDR.SUPL_gal_iono_xml", gal_iono_default_xml_filename); std::string ref_time_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ref_time_xml", ref_time_default_xml_filename); std::string ref_location_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ref_location_xml", ref_location_default_xml_filename); std::string eph_gal_xml_filename = configuration_->property("GNSS-SDR.SUPL_gal_ephemeris_xml", eph_gal_default_xml_filename); std::string eph_cnav_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_cnav_ephemeris_xml", eph_cnav_default_xml_filename); - std::string gal_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gal_utc_model.xml", gal_utc_default_xml_filename); - std::string cnav_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_cnav_utc_model.xml", cnav_utc_default_xml_filename); + std::string gal_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gal_utc_model_xml", gal_utc_default_xml_filename); + std::string cnav_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_cnav_utc_model_xml", cnav_utc_default_xml_filename); std::string eph_glo_xml_filename = configuration_->property("GNSS-SDR.SUPL_glo_ephemeris_xml", eph_glo_gnav_default_xml_filename); - std::string glo_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_glo_utc_model.xml", glo_utc_default_xml_filename); + std::string glo_utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_glo_utc_model_xml", glo_utc_default_xml_filename); if (configuration_->property("GNSS-SDR.AGNSS_XML_enabled", false) == true) { eph_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_ephemeris_xml", eph_default_xml_filename); - utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_utc_model.xml", utc_default_xml_filename); + utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_utc_model_xml", utc_default_xml_filename); iono_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_iono_xml", iono_default_xml_filename); gal_iono_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gal_iono_xml", gal_iono_default_xml_filename); ref_time_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_ref_time_xml", ref_time_default_xml_filename); ref_location_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_ref_location_xml", ref_location_default_xml_filename); eph_gal_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gal_ephemeris_xml", eph_gal_default_xml_filename); eph_cnav_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gps_cnav_ephemeris_xml", eph_cnav_default_xml_filename); - gal_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gal_utc_model.xml", gal_utc_default_xml_filename); - cnav_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_cnav_utc_model.xml", cnav_utc_default_xml_filename); + gal_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_gal_utc_model_xml", gal_utc_default_xml_filename); + cnav_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_cnav_utc_model_xml", cnav_utc_default_xml_filename); eph_glo_xml_filename = configuration_->property("GNSS-SDR.AGNSS_glo_ephemeris_xml", eph_glo_gnav_default_xml_filename); - glo_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_glo_utc_model.xml", glo_utc_default_xml_filename); + glo_utc_xml_filename = configuration_->property("GNSS-SDR.AGNSS_glo_utc_model_xml", glo_utc_default_xml_filename); } std::cout << "Trying to read GNSS ephemeris from XML file(s)..." << std::endl; @@ -511,7 +511,7 @@ void ControlThread::assist_GNSS() { std::cout << "SUPL: Failed to create Iono data file" << std::endl; } - std::string utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_utc_model.xml", utc_default_xml_filename); + std::string utc_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_utc_model_xml", utc_default_xml_filename); if (supl_client_ephemeris_.save_utc_xml(utc_xml_filename, supl_client_ephemeris_.gps_utc) == true) { std::cout << "SUPL: UTC model data file created" << std::endl; From 2acdbc31f2e7fa32c2e88747beb3a00537c63f29 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 19:28:54 +0200 Subject: [PATCH 40/44] Store Galileo UTC data in xml file if leap second is not zero --- src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc index d7de9453c..f055915cc 100644 --- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc +++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc @@ -507,7 +507,7 @@ rtklib_pvt_cc::~rtklib_pvt_cc() // Save Galileo UTC model parameters file_name = "gal_utc_model.xml"; - if (d_ls_pvt->galileo_utc_model.A0_6 != 0.0) + if (d_ls_pvt->galileo_utc_model.Delta_tLS_6 != 0.0) { std::ofstream ofs; try From 146363920d892b23b0316c3ca22f08e0268a8cca Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 21 Oct 2018 19:33:02 +0200 Subject: [PATCH 41/44] Adding missing files --- src/core/receiver/tcp_cmd_interface.cc | 187 +++++++++++++++++++++++++ src/core/receiver/tcp_cmd_interface.h | 64 +++++++++ 2 files changed, 251 insertions(+) create mode 100644 src/core/receiver/tcp_cmd_interface.cc create mode 100644 src/core/receiver/tcp_cmd_interface.h diff --git a/src/core/receiver/tcp_cmd_interface.cc b/src/core/receiver/tcp_cmd_interface.cc new file mode 100644 index 000000000..6254f3ed9 --- /dev/null +++ b/src/core/receiver/tcp_cmd_interface.cc @@ -0,0 +1,187 @@ +/*! + * \file tcp_cmd_interface.cc + * + * \brief Class that implements a TCP telecontrol command line interface + * for GNSS-SDR + * \author Javier Arribas jarribas (at) cttc.es + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) + * + * GNSS-SDR is a software defined Global Navigation + * Satellite Systems receiver + * + * This file is part of GNSS-SDR. + * + * GNSS-SDR 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. + * + * GNSS-SDR 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 GNSS-SDR. If not, see . + * + * ------------------------------------------------------------------------- + */ + +#include "tcp_cmd_interface.h" + + +std::string TcpCmdInterface::stop(const std::vector &commandLine) +{ + std::string response; + response = "Not implemented\n"; + return response; +} + +std::string TcpCmdInterface::status(const std::vector &commandLine) +{ + std::string response; + response = "Not implemented\n"; + return response; +} + +std::string TcpCmdInterface::assistedstart(const std::vector &commandLine) +{ + std::string response; + response = "Not implemented\n"; + return response; +} + +std::string TcpCmdInterface::warmstart(const std::vector &commandLine) +{ + std::string response; + response = "Not implemented\n"; + return response; +} + + +std::string TcpCmdInterface::coldstart(const std::vector &commandLine) +{ + std::string response; + response = "Not implemented\n"; + return response; +} + +std::string TcpCmdInterface::set_ch_satellite(const std::vector &commandLine) +{ + std::string response; + response = "Not implemented\n"; + return response; +} + + +void TcpCmdInterface::register_functions() +{ + functions["status"] = status; + functions["stop"] = stop; + functions["assistedstart"] = assistedstart; + functions["warmstart"] = warmstart; + functions["coldstart"] = coldstart; + functions["set_ch_satellite"] = set_ch_satellite; +} + + +TcpCmdInterface::TcpCmdInterface() +{ + register_functions(); +} + + +void TcpCmdInterface::run_cmd_server(int tcp_port) +{ + // Get the port from the parameters + uint16_t port = tcp_port; + + // Error to not throw exception + boost::system::error_code not_throw; + + // Socket and acceptor + boost::asio::io_service service; + boost::asio::ip::tcp::acceptor acceptor(service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port)); + + bool keep_running = true; + while (keep_running) + { + try + { + std::cout << "Telecommand TCP interface listening on port " << tcp_port << std::endl; + boost::asio::ip::tcp::socket socket(service); + acceptor.accept(socket, not_throw); + if (not_throw) + { + std::cerr << "Error when binding the port in the socket" << std::endl; + continue; + } + + // Read a message + boost::system::error_code error = boost::asio::error::eof; + do + { + std::string response; + boost::asio::streambuf b; + boost::asio::read_until(socket, b, '\n'); + std::istream is(&b); + std::string line; + std::getline(is, line); + std::cout << "received command: " << line << std::endl; + + std::istringstream iss(line); + std::vector cmd_vector(std::istream_iterator{iss}, + std::istream_iterator()); + + if (cmd_vector.size() > 0) + { + try + { + response = functions[cmd_vector.at(0)](cmd_vector); + } + catch (const std::exception &ex) + { + response = "ERROR: command execution error: " + std::string(ex.what()) + "\n"; + } + } + else + { + response = "ERROR: empty command\n"; + } + + //send cmd response + socket.write_some(boost::asio::buffer(response), not_throw); + if (not_throw) + { + std::cerr << "Error sending(" << not_throw.value() << "): " << not_throw.message() << std::endl; + break; + } + } + while (error > 0); // && error != boost::asio::error::eof); + + if (error == boost::asio::error::eof) + { + std::cout << "EOF detected\n"; + } + else + { + std::cout << "error: " << error << std::endl; + } + + // Close socket + socket.close(); + } + catch (const std::exception &ex) + { + std::cout << "Exception " << ex.what() << std::endl; + } + } +} + + +TcpCmdInterface::~TcpCmdInterface() +{ + // TODO Auto-generated destructor stub +} diff --git a/src/core/receiver/tcp_cmd_interface.h b/src/core/receiver/tcp_cmd_interface.h new file mode 100644 index 000000000..ae366aad7 --- /dev/null +++ b/src/core/receiver/tcp_cmd_interface.h @@ -0,0 +1,64 @@ +/*! + * \file tcp_cmd_interface.h + * + * \brief Class that implements a TCP telecontrol command line interface + * for GNSS-SDR + * \author Javier Arribas jarribas (at) cttc.es + * ------------------------------------------------------------------------- + * + * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) + * + * GNSS-SDR is a software defined Global Navigation + * Satellite Systems receiver + * + * This file is part of GNSS-SDR. + * + * GNSS-SDR 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. + * + * GNSS-SDR 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 GNSS-SDR. If not, see . + * + * ------------------------------------------------------------------------- + */ +#ifndef TCPCMDINTERFACE_H_ +#define TCPCMDINTERFACE_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + + +class TcpCmdInterface +{ +public: + TcpCmdInterface(); + virtual ~TcpCmdInterface(); + void run_cmd_server(int tcp_port); + +private: + std::unordered_map &)>> + functions; + static std::string status(const std::vector &commandLine); + static std::string stop(const std::vector &commandLine); + static std::string assistedstart(const std::vector &commandLine); + static std::string warmstart(const std::vector &commandLine); + static std::string coldstart(const std::vector &commandLine); + static std::string set_ch_satellite(const std::vector &commandLine); + + void register_functions(); +}; + +#endif /* TCPCMDINTERFACE_H_ */ From 09e429b50a97f890527687cdbde98f58ba3396e5 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 21:08:46 +0200 Subject: [PATCH 42/44] Fix building with boost 1.68, fix control_thread_test --- src/core/receiver/tcp_cmd_interface.cc | 119 ++++++++++++++----------- src/core/receiver/tcp_cmd_interface.h | 8 +- 2 files changed, 69 insertions(+), 58 deletions(-) diff --git a/src/core/receiver/tcp_cmd_interface.cc b/src/core/receiver/tcp_cmd_interface.cc index 6254f3ed9..76144d297 100644 --- a/src/core/receiver/tcp_cmd_interface.cc +++ b/src/core/receiver/tcp_cmd_interface.cc @@ -103,81 +103,92 @@ void TcpCmdInterface::run_cmd_server(int tcp_port) // Socket and acceptor boost::asio::io_service service; - boost::asio::ip::tcp::acceptor acceptor(service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port)); - - bool keep_running = true; - while (keep_running) + try { - try + boost::asio::ip::tcp::acceptor acceptor(service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port)); + bool keep_running = true; + while (keep_running) { - std::cout << "Telecommand TCP interface listening on port " << tcp_port << std::endl; - boost::asio::ip::tcp::socket socket(service); - acceptor.accept(socket, not_throw); - if (not_throw) + try { - std::cerr << "Error when binding the port in the socket" << std::endl; - continue; - } + std::cout << "Telecommand TCP interface listening on port " << tcp_port << std::endl; - // Read a message - boost::system::error_code error = boost::asio::error::eof; - do - { - std::string response; - boost::asio::streambuf b; - boost::asio::read_until(socket, b, '\n'); - std::istream is(&b); - std::string line; - std::getline(is, line); - std::cout << "received command: " << line << std::endl; - - std::istringstream iss(line); - std::vector cmd_vector(std::istream_iterator{iss}, - std::istream_iterator()); - - if (cmd_vector.size() > 0) + boost::asio::ip::tcp::socket socket(service); + acceptor.accept(socket, not_throw); + if (not_throw) { - try + std::cerr << "Error when binding the port in the socket" << std::endl; + continue; + } + + // Read a message + boost::system::error_code error = boost::asio::error::eof; + do + { + std::string response; + boost::asio::streambuf b; + boost::asio::read_until(socket, b, '\n'); + std::istream is(&b); + std::string line; + std::getline(is, line); + std::cout << "received command: " << line << std::endl; + + std::istringstream iss(line); + std::vector cmd_vector(std::istream_iterator{iss}, + std::istream_iterator()); + + if (cmd_vector.size() > 0) { - response = functions[cmd_vector.at(0)](cmd_vector); + try + { + response = functions[cmd_vector.at(0)](cmd_vector); + } + catch (const std::exception &ex) + { + response = "ERROR: command execution error: " + std::string(ex.what()) + "\n"; + } } - catch (const std::exception &ex) + else { - response = "ERROR: command execution error: " + std::string(ex.what()) + "\n"; + response = "ERROR: empty command\n"; } + + //send cmd response + socket.write_some(boost::asio::buffer(response), not_throw); + if (not_throw) + { + std::cerr << "Error sending(" << not_throw.value() << "): " << not_throw.message() << std::endl; + break; + } + } + while (!error); // && error != boost::asio::error::eof); + + if (error == boost::asio::error::eof) + { + std::cout << "EOF detected\n"; } else { - response = "ERROR: empty command\n"; + std::cout << "error: " << error << std::endl; } - //send cmd response - socket.write_some(boost::asio::buffer(response), not_throw); - if (not_throw) - { - std::cerr << "Error sending(" << not_throw.value() << "): " << not_throw.message() << std::endl; - break; - } + // Close socket + socket.close(); } - while (error > 0); // && error != boost::asio::error::eof); - - if (error == boost::asio::error::eof) + catch (const boost::exception &e) { - std::cout << "EOF detected\n"; + std::cout << "Boost exception " << std::endl; } - else + catch (const std::exception &ex) { - std::cout << "error: " << error << std::endl; + std::cout << "Exception " << ex.what() << std::endl; } - - // Close socket - socket.close(); - } - catch (const std::exception &ex) - { - std::cout << "Exception " << ex.what() << std::endl; } } + catch (const boost::exception &e) + { + std::cout << "TCP Command Interface exception: address already in use" << std::endl; + } } diff --git a/src/core/receiver/tcp_cmd_interface.h b/src/core/receiver/tcp_cmd_interface.h index ae366aad7..5ffc44cb1 100644 --- a/src/core/receiver/tcp_cmd_interface.h +++ b/src/core/receiver/tcp_cmd_interface.h @@ -28,8 +28,8 @@ * * ------------------------------------------------------------------------- */ -#ifndef TCPCMDINTERFACE_H_ -#define TCPCMDINTERFACE_H_ +#ifndef GNSS_SDR_TCPCMDINTERFACE_H_ +#define GNSS_SDR_TCPCMDINTERFACE_H_ #include #include @@ -38,7 +38,7 @@ #include #include #include -#include +#include class TcpCmdInterface @@ -61,4 +61,4 @@ private: void register_functions(); }; -#endif /* TCPCMDINTERFACE_H_ */ +#endif /* GNSS_SDR_TCPCMDINTERFACE_H_ */ From 1225d3daf89fcda8c963bbf99f5f557d64816949 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 21 Oct 2018 21:23:22 +0200 Subject: [PATCH 43/44] Delete wrong file --- .gitlab-ci.yml | 663 ------------------------------------------------- 1 file changed, 663 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index ce251cc29..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,663 +0,0 @@ -# This script sets up a Continuous Reproducibility system for GNSS-SDR at GitLab -# -# Useful links: -# Website: https://gnss-sdr.org -# Upstream repository: https://github.com/gnss-sdr/gnss-sdr.git -# Dockerfile at https://github.com/carlesfernandez/docker-gnsssdr -# Docker cloud image: carlesfernandez/docker-gnsssdr -# -# In order to use this system and be able to make changes, you will need: -# - A GitHub account https://github.com -# - A GitLab account https://gitlab.com -# - A Docker Hub account https://hub.docker.com -# - A repository at Docker Hub. -# -# In order to use this system, please fork at GitHub the upstream -# repository; import that forked repo at GitLab; then add, commit and push to -# your GitLab repo this .gitlab-ci.yml file; and finally go to your project page -# at GitLab and set up the following secret variables. In the left panel: -# Settings > CI / CD > Secret variables -# -# DOCKER_HUB_USER -# DOCKER_HUB_REPO -# DOCKER_HUB_PASSWORD -# -# You will need either to protect your branch, or to leave those variables -# unproctected. -# -# For instance, my settings are: -# DOCKER_HUB_USER = carlesfernandez -# DOCKER_HUB_REPO = docker-gnsssdr -# DOCKER_HUB_PASSWORD = ******************** -# -# If you want to make changes in the source code, branch-off from the 'next' -# branch of your forked repository and, if needed, add new jobs in this -# file at the 'deploy' and 'experiment' stages. Please do not use the next -# branch for your changes, always open a new branch from next and work there. -# -# Feel free to delete the docker-gnsssdr and docker-pybombs-gnsssdr jobs, -# they are for developers' team only. Actually, this is their CI/CD system. -# -# More info about how to contribute to GNSS-SDR at -# https://github.com/gnss-sdr/gnss-sdr/blob/master/CONTRIBUTING.md -# -# (C) Carles Fernandez-Prades, 2018 cfernandez@cttc.cat - - -# This is performed before the scripts in the stages step -before_script: - - source /etc/profile - - -# Defines stages which are to be executed -stages: - - build - - test - - deploy - - experiment - - -# Stage "build" -archlinux: - image: base/devel:latest - stage: build - before_script: - - pwd - script: - - pacman -Syu --noconfirm - - pacman -S --noconfirm cmake git boost boost-libs log4cpp libvolk gnuradio gnuradio-osmosdr libpcap blas lapack gflags google-glog openssl python2-mako python2-six libmatio gtest - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -centos7: - image: centos:centos7 - stage: build - before_script: - - pwd - script: - - yum install -y wget - - wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm - - rpm -Uvh epel-release-latest-7.noarch.rpm - - yum install -y make automake gcc gcc-c++ kernel-devel libtool hdf5-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel openssl-devel python-mako python-six - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -crosscompile: - image: ubuntu:xenial - stage: build - tags: - - kepler - script: - - apt-get update - - apt-get install -y build-essential xz-utils curl gawk wget git-core diffstat unzip texinfo gcc-multilib chrpath socat cpio python python3 python3-pip python3-pexpect debianutils iputils-ping - - curl https://sites.cttc.es/gnss_files/SDK/Rocko/oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh --output oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh - - echo "fb26ff0b84f67006e19266154c36173b oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh" > sdk.md5 - - md5sum -c sdk.md5 - - chmod +x ./oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh - - sh ./oecore-x86_64-armv7ahf-neon-toolchain-nodistro.0.sh -y - - . /usr/local/oecore-x86_64/environment-setup-armv7ahf-neon-oe-linux-gnueabi - - cd build - - cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/oe-sdk_cross.cmake -DENABLE_OSMOSDR=ON -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON -DENABLE_RAW_UDP=ON -DENABLE_INSTALL_TESTS=ON -DCMAKE_C_FLAGS_RELEASE="-s" -DCMAKE_CXX_FLAGS_RELEASE="-s" -DENABLE_PACKAGING=ON .. - - make -j - - mkdir local_install - - make install DESTDIR=./local_install - - rm ./local_install/usr/bin/front-end-cal - - rm ./local_install/usr/bin/ttff - - cd .. - - mkdir binaries - - mkdir binaries/bin - - mkdir binaries/share - - cp build/local_install/usr/bin/* binaries/bin/ - - cp build/local_install/usr/share/gnss-sim/* binaries/share/ - allow_failure: true - artifacts: - paths: - - binaries/* - - -debian8.11: - image: debian:8.11-slim - stage: build - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential libtool automake libhdf5-dev cmake git ca-certificates libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libgfortran-4.9-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libgtest-dev - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -debian9.5: - image: debian:9.5-slim - stage: build - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - - -debian10: - image: debian:buster - stage: build - script: - - apt-get update - - apt-get upgrade -y - - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libiio-dev gr-iio libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON -DENABLE_FMCOMMS2=ON -DENABLE_AD9361=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -fedora26: - image: fedora:26 - stage: build - before_script: - - source ~/.bash_profile - script: - - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python-mako python-six matio-devel - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -fedora28: - image: fedora:28 - stage: build - before_script: - - source ~/.bash_profile - script: - - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python-mako python-six matio-devel - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - - -fedora29: - image: fedora:29 - stage: build - before_script: - - source ~/.bash_profile - script: - - yum install -y make gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python3-mako python3-six matio-devel - - cd build - - cmake -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -fedora-rawhide: - image: fedora:rawhide - stage: build - before_script: - - source ~/.bash_profile - script: - - dnf upgrade -y --nogpgcheck - - yum install -y automake gcc gcc-c++ kernel-devel make cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel libpcap-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel openssl-devel python-mako python-six matio-devel - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -opensuse42.3: - image: opensuse/leap:42.3 - stage: build - before_script: - - pwd - script: - - zypper -n up - - zypper -n install cmake git gcc-c++ boost-devel log4cpp-devel gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six - - cd build - - cmake -DENABLE_PACKAGING=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -opensuse-leap15.0: - image: opensuse/leap:15.0 - stage: build - before_script: - - pwd - script: - - zypper -n up - - zypper -n install cmake git gcc-c++ boost-devel libboost_chrono-devel libboost_thread-devel libboost_system-devel libboost_filesystem-devel libboost_serialization-devel log4cpp-devel gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six - - cd build - - cmake -DENABLE_PACKAGING=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -opensuse-tumbleweed: - image: opensuse/tumbleweed - stage: build - before_script: - - pwd - script: - - zypper -n dup - - zypper -n install cmake git gcc-c++ boost-devel libboost_system-devel libboost_filesystem-devel libboost_date_time-devel libboost_thread-devel libboost_chrono-devel libboost_serialization-devel log4cpp-devel gtest gnuradio-devel libpcap-devel armadillo-devel libtool automake hdf5-devel openssl-devel python-Mako python-six - - cd build - - cmake -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -ubuntu14.04: - image: ubuntu:trusty - stage: build - script: - - apt-get update - - apt-get install -y apt-file - - apt-file update - - apt-get install -y software-properties-common - - add-apt-repository -y ppa:myriadrf/gnuradio - - add-apt-repository -y ppa:myriadrf/drivers - - apt-get update - - apt-get install -y --no-install-recommends build-essential libtool automake libhdf5-dev cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libpcap-dev libblas-dev liblapack-dev libgfortran-4.7-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libgtest-dev - - cd build - - cmake -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -ubuntu16.04: - image: ubuntu:xenial - stage: build - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -ubuntu18.04: - image: ubuntu:bionic - stage: build - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - - -ubuntu18.10: - image: ubuntu:cosmic - stage: build - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev - - cd build - - cmake -DENABLE_OSMOSDR=ON -DENABLE_RAW_UDP=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - - make check - - make install - allow_failure: true - - -coverity-scan: - image: ubuntu:xenial - stage: build - script: - - apt-get update - - apt-get install -y wget curl - - wget -O ./cov-analysis-linux64.tgz https://scan.coverity.com/download/linux64 --post-data "project=$COVERITY_SCAN_USER%2Fgnss-sdr&token=$COVERITY_SCAN_TOKEN" - - tar xvzf cov-analysis-linux64.tgz - - export PATH=$PATH:$(pwd)/cov-analysis-linux64-2017.07/bin - - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libpcap-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev - - cd build - - cmake -DENABLE_OSMOSDR=ON -ENABLE_RAW_UDP=ON .. - - cov-build --dir cov-int make -j2 - - tar cvzf gnss-sdr.tgz cov-int - - curl --form token=$COVERITY_SCAN_TOKEN --form email=$COVERITY_SCAN_EMAIL --form file=@$(pwd)/gnss-sdr.tgz --form version="0.0.9-next" --form description=" " https://scan.coverity.com/builds?project=$COVERITY_SCAN_USER%2Fgnss-sdr --progress-bar | tee -a "log_upload.txt" ; test ${PIPESTATUS[0]} -eq 0 - when: manual - allow_failure: true - - -# Stage "test" -run-tests-x86_64: - image: debian:9.3-slim - stage: test - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - - mkdir build-test - - mkdir build64 - - cd build-test - - cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - # Execute Unit Tests - - ../install/run_tests --gtest_output=xml - - mv *.xml ../build64/ - # Execute System Tests - - ../install/position_test - - mv position_test*.txt ../build64/ - - cd .. - - rm -rf build-test - artifacts: - paths: - - build64/*.xml - - build64/*.txt - - -run-tests-i386: - image: i386/debian:9.3-slim - stage: test - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - - mkdir build-test - - mkdir build32 - - cd build-test - - cmake -DENABLE_PACKAGING=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - # Execute Unit Tests - - ../install/run_tests --gtest_output=xml - - mv *.xml ../build32/ - # Execute System Tests - - ../install/position_test - - mv position_test*.txt ../build32/ - - cd .. - - rm -rf build-test - artifacts: - paths: - - build32/*.xml - - build32/*.txt - - -observables-test-180417100529: - image: ubuntu:bionic - stage: test - tags: - - kepler - when: manual - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest gnuplot - - mkdir build-test - - mkdir build64 - - cd build-test - - cmake -DENABLE_UNIT_TESTING_EXTRA=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - # Execute Unit Tests - - export DISPLAY=unknown - - echo "Running HybridObservablesTest for GPS L1 CA..." - - ../install/run_tests --gtest_filter=HybridObservablesTest* -PLL_bw_hz_start=25.0 --DLL_bw_hz_start=1.5 --PLL_narrow_bw_hz=10.0 --DLL_narrow_bw_hz=0.75 --disable_generator=1 --enable_external_signal_file=1 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=4.0 --extend_correlation_symbols=5 --external_signal_acquisition_doppler_step_hz=10 --trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml - - echo "Running HybridObservablesTest for Galileo E1..." - - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=5.0 --DLL_bw_hz_start=0.75 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=50000000 --external_signal_acquisition_threshold=2.5 --trk_test_implementation=Galileo_E1_DLL_PLL_VEML_Tracking --external_signal_acquisition_doppler_step_hz=25 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=15 --gtest_output=xml:test_results.xml - - echo "Running HybridObservablesTest for GPS L5..." - - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=25.0 --DLL_bw_hz_start=2.5 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=250000000 --external_signal_acquisition_threshold=2.4 --trk_test_implementation=GPS_L5_DLL_PLL_Tracking --external_signal_acquisition_dwells=10 --external_signal_acquisition_doppler_step_hz=10 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L5E5_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=5 --gtest_output=xml:test_results.xml - - echo "Running HybridObservablesTest for Galileo E5a..." - - ../install/run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=30.0 --DLL_bw_hz_start=1.0 --disable_generator=1 --enable_external_signal_file=1 --show_plots=true --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=2.2 --trk_test_implementation=Galileo_E5a_DLL_PLL_Tracking --external_signal_acquisition_doppler_step_hz=10 --show_plots=0 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L5E5_12500000Hz_ichar.dat --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=5 --gtest_output=xml:test_results.xml - - mv *.xml ../build64/ - - cd .. - - rm -rf build-test - artifacts: - paths: - - build64/*.xml - - -position-test-180417100529: - image: ubuntu:bionic - stage: test - tags: - - kepler - script: - - apt-get update - - apt-get install -y --no-install-recommends build-essential cmake ca-certificates git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest gnuplot - - mkdir build-test - - mkdir build64 - - cd build-test - - cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. - - NPROC=$(grep -c ^processor /proc/cpuinfo) - - make -j$(($NPROC+1)) - # Execute System Tests - - export DISPLAY=unknown - - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - - ../install/position_test -config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L1E1.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - rm PVT_*.* && mv *.ps ../build64/ && mv *.*N ../build64/ && mv *.*O ../build64/ - - ../install/position_test --config_file_ptest=/captures/gitlab_test_signals/static/gnss-sdr_180417100529.A_L5E5.conf --static_scenario=0 --use_pvt_solver_dump=1 --use_ref_motion_file=1 --ref_motion_filename=/captures/gitlab_test_signals/static/true_data_180417100529/motion_V1.csv --pvt_solver_dump_filename=./PVT_pvt.dat --plot_position_test --show_plots=0 - - mv *.ps ../build64/ - - mv *.xml ../build64/ - - cd .. - - rm -rf build-test - artifacts: - paths: - - build64/*.xml - - build64/*.ps - allow_failure: true - - -run-tests-armhf: - image: carlesfernandez/gnsssdr-dev-arm32v7:rocko - stage: test - tags: - - arm - when: manual - dependencies: - - crosscompile - script: - - cp binaries/bin/* /usr/bin/ - - mkdir /usr/share/gnss-sim/ - - cp -f binaries/share/* /usr/share/gnss-sim/ - - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib - - ldconfig - - position_test -# - run_tests --gtest_filter=Matio* - # - run_tests --gtest_filter=HybridObservablesTest* --PLL_bw_hz_start=25.0 --DLL_bw_hz_start=1.5 --PLL_narrow_bw_hz=10.0 --DLL_narrow_bw_hz=0.75 --disable_generator=1 --enable_external_signal_file=1 --signal_file=/captures/gitlab_test_signals/static/180417100529.A_L1E1_12500000Hz_ichar.dat --fs_gen_sps=12500000 --skip_samples=125000000 --external_signal_acquisition_threshold=4.0 --extend_correlation_symbols=5 --external_signal_acquisition_doppler_step_hz=10 --trk_test_implementation=GPS_L1_CA_DLL_PLL_Tracking --show_plots=0 --filename_rinex_obs=/captures/gitlab_test_signals/static/true_data_180417100529/rinex_obs/rinex-obs_V1_A1-static_vehicle.txt --skip_trk_transitory_s=30 --gtest_output=xml:test_results.xml - allow_failure: true - - -# Stage "deploy" -docker-gnsssdr: - image: docker:latest - stage: deploy - services: - - docker:dind - script: - - wget https://raw.githubusercontent.com/carlesfernandez/docker-gnsssdr/master/Dockerfile - - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - - mkdir docker-build - - cd docker-build - - cp ../Dockerfile . - - docker build -t carlesfernandez/docker-gnsssdr . - - docker push carlesfernandez/docker-gnsssdr - only: - - next - allow_failure: true - - -docker-gnsssdr-v0.0.10: - image: docker:18.05 - stage: deploy - services: - - docker:dind - script: - - wget https://raw.githubusercontent.com/carlesfernandez/docker-gnsssdr/v0.0.10/Dockerfile - - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - - mkdir docker-build - - cd docker-build - - cp ../Dockerfile . - - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:0.0.10 - - docker push $DOCKER_HUB_USER/$DOCKER_HUB_REPO:0.0.10 - only: - - v0.0.10 - allow_failure: true - - -docker-pybombs-gnsssdr: - image: docker:latest - stage: deploy - services: - - docker:dind - script: - - wget https://raw.githubusercontent.com/carlesfernandez/docker-pybombs-gnsssdr/master/Dockerfile - - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - - mkdir docker-build - - cd docker-build - - cp ../Dockerfile . - - docker build -t carlesfernandez/docker-pybombs-gnsssdr . - - docker push carlesfernandez/docker-pybombs-gnsssdr - only: - - next - allow_failure: true - - -docker-access18: - image: docker:latest - stage: deploy - services: - - docker:dind - script: - - mkdir docker-build - - cd docker-build - - echo -e "FROM phusion/baseimage:0.11\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev googletest libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool fig2dev octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout $CI_COMMIT_SHA && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 - - docker push $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 - - -docker-access18-0.0.10: - image: docker:18.05 - stage: deploy - services: - - docker:dind - script: - - mkdir docker-build - - cd docker-build - - echo -e "FROM phusion/baseimage:0.11\nMAINTAINER carles.fernandez@cttc.es\nCMD [\"/sbin/my_init\"]\nWORKDIR /home/src\nRUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake curl nano libarmadillo-dev libblas-dev libboost-chrono-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev googletest libgnutls-openssl-dev liblapack-dev liblog4cpp5-dev libmatio-dev git ca-certificates gnuradio-dev python-mako python-six texlive-latex-base texlive-fonts-recommended texlive-font-utils texlive-pictures epstool fig2dev octave pstoedit gnuplot-x11 && rm -rf /var/lib/apt/lists/*\nRUN git clone https://gitlab.com/gnss-sdr/gnss-sdr && cd gnss-sdr/build && git checkout v0.0.10 && cmake -DENABLE_PACKAGING=ON -DENABLE_INSTALL_TESTS=ON .. && NPROC=$(grep -c ^processor /proc/cpuinfo) && make -j$(($NPROC+1)) && make install && rm -rf /home/src\nWORKDIR /home\nRUN /usr/bin/volk_profile -v 8111\nRUN /usr/local/bin/volk_gnsssdr_profile\nRUN rm -rf /tmp/* /var/tmp/*\nCMD [\"bash\"]" > Dockerfile - - docker login -u "$DOCKER_HUB_USER" -p "$DOCKER_HUB_PASSWORD" - - docker build -t $DOCKER_HUB_USER/$DOCKER_HUB_REPO . - - docker tag $DOCKER_HUB_USER/$DOCKER_HUB_REPO:latest $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 - - docker push $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 - only: - - v0.0.10 - allow_failure: true - - -# Stage "experiment" -run-access18: - image: $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18 - stage: experiment - script: - - apt-get update - # Grab the data set - - mkdir -p exp-access18/data - - cd exp-access18/data - - curl https://zenodo.org/record/1184601/files/L2_signal_samples.tar.xz --output L2_signal_samples.tar.xz - - tar xvfJ L2_signal_samples.tar.xz - - echo "3a04c1eeb970776bb77f5e3b7eaff2df L2_signal_samples.tar.xz" > data.md5 - - md5sum -c data.md5 - - cd .. - # Execute the experiment - - cp ../src/utils/reproducibility/ieee-access18/L2-access18.conf . - - cp ../src/utils/reproducibility/ieee-access18/plot_dump.m . - - cp -r ../src/utils/matlab/libs/geoFunctions . - - gnss-sdr --c=L2-access18.conf - - octave --no-gui plot_dump.m - - epspdf Figure2.eps Figure2.pdf - - cd .. - - mkdir access18 - - cp exp-access18/*.pdf access18/ - artifacts: - paths: - - access18/*.pdf - - -run-access18-0.0.10: - image: $DOCKER_HUB_USER/$DOCKER_HUB_REPO:access18-0.0.10 - stage: experiment - script: - - apt-get update - # Grab the data set - - mkdir -p exp-access18/data - - cd exp-access18/data - - curl https://zenodo.org/record/1184601/files/L2_signal_samples.tar.xz --output L2_signal_samples.tar.xz - - tar xvfJ L2_signal_samples.tar.xz - - echo "3a04c1eeb970776bb77f5e3b7eaff2df L2_signal_samples.tar.xz" > data.md5 - - md5sum -c data.md5 - - cd .. - # Execute the experiment - - cp ../src/utils/reproducibility/ieee-access18/L2-access18.conf . - - cp ../src/utils/reproducibility/ieee-access18/plot_dump.m . - - cp -r ../src/utils/matlab/libs/geoFunctions . - - gnss-sdr --c=L2-access18.conf - - octave --no-gui plot_dump.m - - epspdf Figure2.eps Figure2.pdf - - cd .. - - mkdir access18 - - cp exp-access18/*.pdf access18/ - artifacts: - paths: - - access18/*.pdf - only: - - v0.0.10 From 3b0fbc60bd4208305a89c0e3b2c691da01ebb349 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 22 Oct 2018 14:56:02 +0200 Subject: [PATCH 44/44] Fix reading of LAC and CI parameters for SUPL assistance --- src/core/receiver/control_thread.cc | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index 65fc6118d..16a6389fb 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -417,20 +417,33 @@ void ControlThread::assist_GNSS() std::string default_lac = "0x59e2"; std::string default_ci = "0x31b0"; + std::string supl_lac_s = configuration_->property("GNSS-SDR.SUPL_LAC", default_lac); + std::string supl_ci_s = configuration_->property("GNSS-SDR.SUPL_CI", default_ci); try { - supl_lac = boost::lexical_cast(configuration_->property("GNSS-SDR.SUPL_LAC", default_lac)); + supl_lac = std::stoi(supl_lac_s, nullptr, 0); } - catch (boost::bad_lexical_cast &) + catch (const std::invalid_argument &ia) + { + std::cerr << "Invalid argument for SUPL LAC: " << ia.what() << '\n'; + supl_lac = -1; + } + try + { + supl_ci = std::stoi(supl_ci_s, nullptr, 0); + } + catch (const std::invalid_argument &ia) + { + std::cerr << "Invalid argument for SUPL CI: " << ia.what() << '\n'; + supl_ci = -1; + } + + if (supl_lac < 0 or supl_lac > 65535) { supl_lac = 0x59e2; } - try - { - supl_ci = boost::lexical_cast(configuration_->property("GNSS-SDR.SUPL_CI", default_ci)); - } - catch (boost::bad_lexical_cast &) + if (supl_ci < 0 or supl_ci > 268435455) // 2^16 for GSM and CDMA, 2^28 for UMTS and LTE networks { supl_ci = 0x31b0; }