GNSS-SDR  0.0.19
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  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
16  * This file is part of GNSS-SDR.
17  *
18  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
19  * SPDX-License-Identifier: GPL-3.0-or-later
20  *
21  * -----------------------------------------------------------------------------
22  */
23 
24 #ifndef GNSS_SDR_ACQUISITION_INTERFACE_H
25 #define GNSS_SDR_ACQUISITION_INTERFACE_H
26 
27 #include "gnss_block_interface.h"
28 #include "gnss_synchro.h"
29 #include <memory>
30 
31 /** \addtogroup Core
32  * \{ */
33 /** \addtogroup GNSS_Block_Interfaces GNSS block interfaces
34  * GNSS block interfaces.
35  * \{ */
36 
37 
38 template <typename Data>
40 
41 class ChannelFsm;
42 
43 /*! \brief This abstract class represents an interface to an acquisition GNSS block.
44  *
45  * Abstract class for acquisition algorithms. Since all its methods are virtual,
46  * this class cannot be instantiated directly, and a subclass can only be
47  * instantiated directly if all inherited pure virtual methods have been
48  * implemented by that class or a parent class.
49  */
51 {
52 public:
53  virtual void set_gnss_synchro(Gnss_Synchro* gnss_synchro) = 0;
54  virtual void set_channel(unsigned int channel_id) = 0;
55  virtual void set_channel_fsm(std::weak_ptr<ChannelFsm> channel_fsm) = 0;
56  virtual void set_threshold(float threshold) = 0;
57  virtual void set_doppler_max(unsigned int doppler_max) = 0;
58  virtual void set_doppler_step(unsigned int doppler_step) = 0;
59  virtual void set_doppler_center(int doppler_center __attribute__((unused)))
60  {
61  return;
62  }
63  virtual void init() = 0;
64  virtual void set_local_code() = 0;
65  virtual void set_state(int state) = 0;
66  virtual signed int mag() = 0;
67  virtual void reset() = 0;
68  virtual void stop_acquisition() = 0;
69  virtual void set_resampler_latency(uint32_t latency_samples) = 0;
70 };
71 
72 
73 /** \} */
74 /** \} */
75 #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:38
This interface represents a GNSS block.
This class implements a State Machine for channel.
Definition: channel_fsm.h:41
This abstract class represents an interface to GNSS blocks.
This class implements a thread-safe std::queue.
Interface of the Gnss_Synchro class.