From 6bf55a201eb56db1f413220624704e3c6192d5e5 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 15 Dec 2014 19:21:14 +0100 Subject: [PATCH] adding front-end-cal manpage --- docs/manpage/front-end-cal-manpage | 41 ++++++++++++++++++++++++++ src/utils/front-end-cal/CMakeLists.txt | 20 +++++++++++-- src/utils/front-end-cal/main.cc | 6 +++- 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 docs/manpage/front-end-cal-manpage diff --git a/docs/manpage/front-end-cal-manpage b/docs/manpage/front-end-cal-manpage new file mode 100644 index 000000000..a12660611 --- /dev/null +++ b/docs/manpage/front-end-cal-manpage @@ -0,0 +1,41 @@ +.\" Manpage for front-end-cal. +.\" Contact javier.arribas@cttc.es to correct errors or typos. +.TH front-end-cal 1 "15 Dec 2014" "0.0.1" "front-end-cal man page" +.SH NAME +\fBfront-end-cal\fR \- RF front-end center frequency and sampling rate calibration tool. +.SH SYNOPSIS +\fBfront-end-cal -config_file=\fR\fI\fR [OPTION]... +.SH DESCRIPTION +\fBfront-end-cal\fR is a calibration tool for some DVB-T receivers based on the Taiwan's Realtek RTL2832U chipset, sold in form of USB dongles that allow users to watch over-the-air DVB-T European broadcast television on their personal computers, to be used as GNSS front-ends. +\.TP +Normally, those devices send partially-decoded MPEG transport frames over the USB, but exploiting an undocumented mode of operation of the demodulator chip, the user is able to obtain raw I&Q samples, stream them through USB to a personal computer and then use \fBgnss-sdr\fR, turning the DVB-T receiver into a GNSS receiver and delivering position in real-time. +\.TP +The crystal oscillator that ships with the RTL2832U family devices exhibits limited accuracy to be used as a GNSS receiver front-end without previous calibration. \fBfront-end-cal\fR automatizes the algorithm proposed in [1], and it requires Internet access since it retrieves Assisted GPS data from SUPL servers. +\.TP +\fBfront-end-cal\fR is able to work with raw data files or, if there is computational power enough, in real time with suitable radiofrequency front-ends. The whole receiver is defined in a single configuration file, and therefore users can define theirs. +.SH OPTIONS +\fBfront-end-cal\fR takes the following options: +.TP +\fB-config_file=\fR\fI\fR Set the configuration file. +.TP +\fB-signal_source=\fR\fI\fR If defined, path to the file containing the signal samples (overrides the data file specified in the configuration file). +.TP +\fB-log_dir=\fR\fI\fR If defined, overrides the default directory where logs are saved. +.TP +\fB-version\fR Print program version and exit. +.TP +\fB-help\fR Print all the available commandline flags and exit. +.SH SEE ALSO +.BR gnss-sdr (1), volk_gnsssdr_profile (1) +\.TP +Example of configuration file available at: ${prefix}/share/gnss-sdr/conf/front-end-cal.conf, where ${prefix}$ uses to be /usr or /usr/local. +\.TP +[1] C. Fernandez-Prades, J. Arribas, P. Closas, \fITurning a Television into a GNSS Receiver\fR, in Proceedings of ION GNSS+, 15-16 September 2013, Nashville, Tennessee (USA). A draft copy is freely available at http://www.cttc.es/publication/turning-a-television-into-a-gnss-receiver/ +\.TP +Check http://gnss-sdr.org for more information. +.SH BUGS +No known bugs. +.SH AUTHOR +Javier Arribas (javier.arribas@cttc.es) +\.TP +This software has been developed at CTTC (Centre Tecnologic de Telecomunicacions de Catalunya, http://www.cttc.es) with contributions from around the world. \ No newline at end of file diff --git a/src/utils/front-end-cal/CMakeLists.txt b/src/utils/front-end-cal/CMakeLists.txt index 2838c6434..3b50d0ad2 100644 --- a/src/utils/front-end-cal/CMakeLists.txt +++ b/src/utils/front-end-cal/CMakeLists.txt @@ -17,7 +17,7 @@ # -if(ENABLE_RTLSDR) +if(ENABLE_OSMOSDR) set(FRONT_END_CAL_SOURCES front_end_cal.cc) include_directories( @@ -56,6 +56,7 @@ if(ENABLE_RTLSDR) ) add_definitions( -DGNSS_SDR_VERSION="${VERSION}" ) + add_definitions( -DGNSSSDR_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}" ) add_executable(front-end-cal ${CMAKE_CURRENT_SOURCE_DIR}/main.cc) @@ -80,4 +81,19 @@ if(ENABLE_RTLSDR) COMPONENT "front-end-cal" ) -endif(ENABLE_RTLSDR) + find_program(GZIP gzip + /bin + /usr/bin + /usr/local/bin + /opt/local/bin + /sbin + ) + + if(NOT GZIP_NOTFOUND) + execute_process(COMMAND gzip -9 -c ${CMAKE_SOURCE_DIR}/docs/manpage/front-end-cal-manpage + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} OUTPUT_FILE "${CMAKE_BINARY_DIR}/front-end-cal.1.gz") + + install(FILES ${CMAKE_BINARY_DIR}/front-end-cal.1.gz DESTINATION share/man/man1) + endif(NOT GZIP_NOTFOUND) + +endif(ENABLE_OSMOSDR) diff --git a/src/utils/front-end-cal/main.cc b/src/utils/front-end-cal/main.cc index ce4a64149..f27ff0956 100644 --- a/src/utils/front-end-cal/main.cc +++ b/src/utils/front-end-cal/main.cc @@ -79,7 +79,11 @@ using google::LogMessage; DECLARE_string(log_dir); -DEFINE_string(config_file, "../conf/front-end-cal.conf", +std::string s1_(GNSSSDR_INSTALL_DIR); +std::string s2_("/share/gnss-sdr/conf/front-end-cal.conf"); +std::string s3_ = s1_ + s2_; + +DEFINE_string(config_file, s3_, "Path to the file containing the configuration parameters"); concurrent_queue global_gps_ephemeris_queue;