GNSS-SDR  0.0.13
An Open Source GNSS Software Defined Receiver
acquisition_interface.h
Go to the documentation of this file.
1 /*!
2  * \file acquisition_interface.h
3  * \brief Header file of the interface to an acquisition GNSS block.
4  * \author Carlos Aviles, 2010. carlos.avilesr(at)googlemail.com
5  * Luis Esteve, 2011. luis(at)epsilon-formacion.com
6  *
7  * This header file contains the interface to an abstract class
8  * for acquisition algorithms. Since all its methods are virtual,
9  * this class cannot be instantiated directly, and a subclass can only be
10  * instantiated directly if all inherited pure virtual methods have been
11  * implemented by that class or a parent class.
12  *
13  * -----------------------------------------------------------------------------
14  *
15  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
16  *
17  * GNSS-SDR is a software defined Global Navigation
18  * Satellite Systems receiver
19  *
20  * This file is part of GNSS-SDR.
21  *
22  * SPDX-License-Identifier: GPL-3.0-or-later
23  *
24  * -----------------------------------------------------------------------------
25  */
26 
27 #ifndef GNSS_SDR_ACQUISITION_INTERFACE_H
28 #define GNSS_SDR_ACQUISITION_INTERFACE_H
29 
30 #include "gnss_block_interface.h"
31 #include "gnss_synchro.h"
32 #include <memory>
33 
34 template <typename Data>
36 
37 class ChannelFsm;
38 
39 /*! \brief This abstract class represents an interface to an acquisition GNSS block.
40  *
41  * Abstract class for acquisition algorithms. Since all its methods are virtual,
42  * this class cannot be instantiated directly, and a subclass can only be
43  * instantiated directly if all inherited pure virtual methods have been
44  * implemented by that class or a parent class.
45  */
47 {
48 public:
49  virtual void set_gnss_synchro(Gnss_Synchro* gnss_synchro) = 0;
50  virtual void set_channel(unsigned int channel_id) = 0;
51  virtual void set_channel_fsm(std::weak_ptr<ChannelFsm> channel_fsm) = 0;
52  virtual void set_threshold(float threshold) = 0;
53  virtual void set_doppler_max(unsigned int doppler_max) = 0;
54  virtual void set_doppler_step(unsigned int doppler_step) = 0;
55  virtual void set_doppler_center(int doppler_center __attribute__((unused)))
56  {
57  return;
58  }
59  virtual void init() = 0;
60  virtual void set_local_code() = 0;
61  virtual void set_state(int state) = 0;
62  virtual signed int mag() = 0;
63  virtual void reset() = 0;
64  virtual void stop_acquisition() = 0;
65  virtual void set_resampler_latency(uint32_t latency_samples) = 0;
66 };
67 
68 #endif // GNSS_SDR_ACQUISITION_INTERFACE */
This abstract class represents an interface to an acquisition GNSS block.
This is the class that contains the information that is shared by the processing blocks.
Definition: gnss_synchro.h:33
This interface represents a GNSS block.
This class implements a State Machine for channel.
Definition: channel_fsm.h:38
This abstract class represents an interface to GNSS blocks.
This class implements a thread-safe std::queue.
Interface of the Gnss_Synchro class.