SatNOGS-COMMS  4.1.0
A COMMS subsystem for CubeSats
Loading...
Searching...
No Matches
rf_frontend09.cpp
Go to the documentation of this file.
1/*
2 * SatNOGS-COMMS control library
3 *
4 * Copyright (C) 2022-2023, Libre Space Foundation <http://libre.space>
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *
19 * SPDX-License-Identifier: GNU General Public License v3.0 or later
20 */
21
23
24namespace satnogs::comms::lib
25{
26
38 : rf_frontend(init_params, std::move(io), pwr)
39{
40}
41
52void
54{
55 m_pwr.enable(power::subsys::UHF, set);
56}
57
64bool
66{
67 return m_pwr.enabled(power::subsys::UHF);
68}
69
83void
85{
86 switch (d) {
87 case dir::RX:
88 m_dir = d;
89 break;
90 case dir::TX:
91 m_dir = d;
92 m_agc.enable(false);
93 m_dac.stop();
94 break;
95 default:
96 throw inval_arg_exception(__FILE__, __LINE__);
97 }
98}
99
100} // namespace satnogs::comms::lib
Generic exception indicating an invalid argument.
Manages power supplies and monitors subsystem status.
Definition power.hpp:43
bool enabled() const
Checks if the UHF RF frontend is enabled.
rf_frontend09(const params &init_params, io_conf &io, power &pwr)
Construct a new rf frontend09::rf frontend09 object that controls the UHF interface.
void set_direction(dir d, uint64_t lo_freq=0)
This method is used to change the direction (TX/RX) of the RF-frontend. Any components that are not u...
RF frontend initialization settings.
rf_frontend(const params &init_params, io_conf &&io, power &pwr)