From 11e8456da038b785ed02f196e747bfd84f5a9260 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Tue, 1 Dec 2015 21:59:47 -0800 Subject: [PATCH] Move app_ert.hpp code to .cpp. --- firmware/application/Makefile | 1 + firmware/application/app_ert.cpp | 84 ++++++++++++++++++++++++++++++++ firmware/application/app_ert.hpp | 57 ++-------------------- 3 files changed, 90 insertions(+), 52 deletions(-) create mode 100644 firmware/application/app_ert.cpp diff --git a/firmware/application/Makefile b/firmware/application/Makefile index 8702a562..e0c778b6 100755 --- a/firmware/application/Makefile +++ b/firmware/application/Makefile @@ -171,6 +171,7 @@ CPPSRC = main.cpp \ ais_baseband.cpp \ app_ais.cpp \ app_tpms.cpp \ + app_ert.cpp \ sd_card.cpp \ manchester.cpp \ ../common/utility.cpp \ diff --git a/firmware/application/app_ert.cpp b/firmware/application/app_ert.cpp new file mode 100644 index 00000000..30ef4736 --- /dev/null +++ b/firmware/application/app_ert.cpp @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "app_ert.hpp" + +#include "portapack.hpp" +using namespace portapack; + +#include "manchester.hpp" + +ERTModel::ERTModel() { + receiver_model.set_baseband_configuration({ + .mode = 6, + .sampling_rate = 4194304, + .decimation_factor = 1, + }); + receiver_model.set_baseband_bandwidth(1750000); +} + +std::string ERTModel::on_packet(const ERTPacketMessage& message) { + std::string s; + + if( message.packet.preamble == 0x555516a3 ) { + s += "IDM\n"; + } + if( message.packet.preamble == 0x1f2a60 ) { + s += "SCM\n"; + } + + const ManchesterDecoder decoder(message.packet.payload, message.packet.bits_received); + + const auto hex_formatted = format_manchester(decoder); + s += hex_formatted.data; + s += "\n"; + s += hex_formatted.errors; + s += "\n"; + + return s; +} + +namespace ui { + +void ERTView::on_show() { + Console::on_show(); + + auto& message_map = context().message_map(); + message_map.register_handler(Message::ID::ERTPacket, + [this](Message* const p) { + const auto message = static_cast(p); + this->log(this->model.on_packet(*message)); + } + ); +} + +void ERTView::on_hide() { + auto& message_map = context().message_map(); + message_map.unregister_handler(Message::ID::ERTPacket); + + Console::on_hide(); +} + +void ERTView::log(const std::string& s) { + write(s); +} + +} /* namespace ui */ diff --git a/firmware/application/app_ert.hpp b/firmware/application/app_ert.hpp index 5b5e01bb..05f0eba7 100644 --- a/firmware/application/app_ert.hpp +++ b/firmware/application/app_ert.hpp @@ -22,7 +22,6 @@ #ifndef __APP_ERT_H__ #define __APP_ERT_H__ -#include "receiver_model.hpp" #include "ui_console.hpp" #include "message.hpp" @@ -30,68 +29,22 @@ class ERTModel { public: - ERTModel() { - receiver_model.set_baseband_configuration({ - .mode = 6, - .sampling_rate = 4194304, - .decimation_factor = 1, - }); - receiver_model.set_baseband_bandwidth(1750000); - } + ERTModel(); - std::string on_packet(const ERTPacketMessage& message) { - std::string s; - - if( message.packet.preamble == 0x555516a3 ) { - s += "IDM\n"; - } - if( message.packet.preamble == 0x1f2a60 ) { - s += "SCM\n"; - } - - const ManchesterDecoder decoder(message.packet.payload, message.packet.bits_received); - - const auto hex_formatted = format_manchester(decoder); - s += hex_formatted.data; - s += "\n"; - s += hex_formatted.errors; - s += "\n"; - - return s; - } - -private: + std::string on_packet(const ERTPacketMessage& message); }; namespace ui { class ERTView : public Console { public: - void on_show() override { - Console::on_show(); - - auto& message_map = context().message_map(); - message_map.register_handler(Message::ID::ERTPacket, - [this](Message* const p) { - const auto message = static_cast(p); - this->log(this->model.on_packet(*message)); - } - ); - } - - void on_hide() override { - auto& message_map = context().message_map(); - message_map.unregister_handler(Message::ID::ERTPacket); - - Console::on_hide(); - } + void on_show() override; + void on_hide() override; private: ERTModel model; - void log(const std::string& s) { - write(s); - } + void log(const std::string& s); }; } /* namespace ui */