GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
acquisition_impl_interface.h
Go to the documentation of this file.
1/*!
2 * \file acquisition_impl_interface.h
3 * \brief Header file of the interface to an acquisition implementation GNSS block.
4 * \author Mathieu Favraeu, 2025. favreau.mathieu(at)hotmail.com
5 *
6 * This header file contains the interface to an abstract class
7 * for acquisition algorithms. Since all its methods are virtual,
8 * this class cannot be instantiated directly, and a subclass can only be
9 * instantiated directly if all inherited pure virtual methods have been
10 * implemented by that class or a parent class.
11 *
12 * -----------------------------------------------------------------------------
13 *
14 * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
15 * This file is part of GNSS-SDR.
16 *
17 * Copyright (C) 2010-2025 (see AUTHORS file for a list of contributors)
18 * SPDX-License-Identifier: GPL-3.0-or-later
19 *
20 * -----------------------------------------------------------------------------
21 */
22
23#ifndef GNSS_SDR_ACQUISITION_IMPL_INTERFACE_H
24#define GNSS_SDR_ACQUISITION_IMPL_INTERFACE_H
25
27#include "gnss_synchro.h"
28#include <gnuradio/block.h>
29#include <complex>
30#include <memory>
31
32/** \addtogroup Core
33 * \{ */
34/** \addtogroup GNSS_Block_Interfaces GNSS block interfaces
35 * GNSS block interfaces.
36 * \{ */
37
38class ChannelFsm;
40
41using acquisition_impl_interface_sptr = gnss_shared_ptr<acquisition_impl_interface>;
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 */
50class acquisition_impl_interface : public gr::block
51{
52public:
53 acquisition_impl_interface(const std::string& name,
54 gr::io_signature::sptr input_signature,
55 gr::io_signature::sptr output_signature) : gr::block(name, std::move(input_signature), std::move(output_signature)) {}
56
57 virtual void set_gnss_synchro(Gnss_Synchro* gnss_synchro) = 0;
58 virtual void set_channel(uint32_t channel_id) = 0;
59 virtual void set_channel_fsm(std::weak_ptr<ChannelFsm> channel_fsm) = 0;
60 virtual void set_local_code(std::complex<float>* /*code*/) {};
61 virtual void set_local_code(std::complex<float>* /*code_data*/, std::complex<float>* /*code_pilot*/) {};
62 virtual uint32_t mag() const = 0;
63 virtual void set_active(bool active) = 0;
64};
65
66
67/** \} */
68/** \} */
69#endif // GNSS_SDR_ACQUISITION_INTERFACE */
This class implements a State Machine for channel.
Definition channel_fsm.h:42
This is the class that contains the information that is shared by the processing blocks.
This abstract class represents an interface to an acquisition GNSS block.
This interface represents a GNSS block.
Interface of the Gnss_Synchro class.