From 3e2b6087c2308a9dfa5b8a8a322ad3774ea619cb Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Tue, 16 Feb 2016 10:28:13 -0800 Subject: [PATCH] Tighten up radio API, stop leaking 1st/2nd IF instances. --- firmware/application/radio.cpp | 27 +++++++++++++++++++++ firmware/application/radio.hpp | 23 ++++++++++++++---- firmware/application/temperature_logger.cpp | 2 +- firmware/application/ui_debug.cpp | 4 +-- 4 files changed, 48 insertions(+), 8 deletions(-) diff --git a/firmware/application/radio.cpp b/firmware/application/radio.cpp index 55c67250..88ef4a21 100644 --- a/firmware/application/radio.cpp +++ b/firmware/application/radio.cpp @@ -22,6 +22,9 @@ #include "radio.hpp" #include "rf_path.hpp" + +#include "rffc507x.hpp" +#include "max2837.hpp" #include "max5864.hpp" #include "baseband_cpld.hpp" @@ -183,4 +186,28 @@ void configure(Configuration configuration) { set_direction(configuration.direction); } +namespace debug { + +namespace first_if { + +uint32_t register_read(const size_t register_number) { + return radio::first_if.read(register_number); +} + +} /* namespace first_if */ + +namespace second_if { + +uint32_t register_read(const size_t register_number) { + return radio::second_if.read(register_number); +} + +uint8_t temp_sense() { + return radio::second_if.temp_sense() & 0x1f; +} + +} /* namespace second_if */ + +} /* namespace debug */ + } /* namespace radio */ diff --git a/firmware/application/radio.hpp b/firmware/application/radio.hpp index acc16fe7..4c1faa78 100644 --- a/firmware/application/radio.hpp +++ b/firmware/application/radio.hpp @@ -27,9 +27,6 @@ #include #include -#include "rffc507x.hpp" -#include "max2837.hpp" - namespace radio { struct Configuration { @@ -59,8 +56,24 @@ void enable(Configuration configuration); void configure(Configuration configuration); void disable(); -extern rffc507x::RFFC507x first_if; -extern max2837::MAX2837 second_if; +namespace debug { + +namespace first_if { + +uint32_t register_read(const size_t register_number); + +} /* namespace first_if */ + +namespace second_if { + +uint32_t register_read(const size_t register_number); + +// TODO: This belongs somewhere else. +uint8_t temp_sense(); + +} /* namespace second_if */ + +} /* namespace debug */ } /* namespace radio */ diff --git a/firmware/application/temperature_logger.cpp b/firmware/application/temperature_logger.cpp index 474c3dd0..152c4d5b 100644 --- a/firmware/application/temperature_logger.cpp +++ b/firmware/application/temperature_logger.cpp @@ -54,7 +54,7 @@ std::vector TemperatureLogger::history() const { TemperatureLogger::sample_t TemperatureLogger::read_sample() { // MAX2837 does not return a valid temperature if in "shutdown" mode. - return radio::second_if.temp_sense() & 0x1f; + return radio::debug::second_if::temp_sense(); } void TemperatureLogger::push_sample(const TemperatureLogger::sample_t sample) { diff --git a/firmware/application/ui_debug.cpp b/firmware/application/ui_debug.cpp index f35faeee..1e005d7f 100644 --- a/firmware/application/ui_debug.cpp +++ b/firmware/application/ui_debug.cpp @@ -248,11 +248,11 @@ DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) { add_items<4>({ { { "RFFC5072", [&nav](){ nav.push( "RFFC5072", RegistersWidgetConfig { 31, 2, 4, 4 }, - [](const size_t register_number) { return radio::first_if.read(register_number); } + [](const size_t register_number) { return radio::debug::first_if::register_read(register_number); } ); } }, { "MAX2837", [&nav](){ nav.push( "MAX2837", RegistersWidgetConfig { 32, 2, 3, 4 }, - [](const size_t register_number) { return radio::second_if.read(register_number); } + [](const size_t register_number) { return radio::debug::second_if::register_read(register_number); } ); } }, { "Si5351C", [&nav](){ nav.push( "Si5351C", RegistersWidgetConfig { 96, 2, 2, 8 },