mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2025-04-16 08:31:27 +00:00
Remove Signal use, register message handler in View.
Changed my mind from earlier commit...
This commit is contained in:
parent
94b73d7825
commit
8c34e116af
@ -89,27 +89,11 @@ AISModel::AISModel() {
|
|||||||
receiver_model.set_baseband_bandwidth(1750000);
|
receiver_model.set_baseband_bandwidth(1750000);
|
||||||
|
|
||||||
log_file.open_for_append("ais.txt");
|
log_file.open_for_append("ais.txt");
|
||||||
|
|
||||||
EventDispatcher::message_map().register_handler(Message::ID::AISPacket,
|
|
||||||
[this](Message* const p) {
|
|
||||||
const auto message = static_cast<const AISPacketMessage*>(p);
|
|
||||||
const ais::Packet packet { message->packet };
|
|
||||||
this->on_packet(packet);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
AISModel::~AISModel() {
|
|
||||||
EventDispatcher::message_map().unregister_handler(Message::ID::AISPacket);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AISModel::on_packet(const ais::Packet& packet) {
|
bool AISModel::on_packet(const ais::Packet& packet) {
|
||||||
// TODO: Unstuff here, not in baseband!
|
// TODO: Unstuff here, not in baseband!
|
||||||
|
|
||||||
if( !packet.is_valid() ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( log_file.is_ready() ) {
|
if( log_file.is_ready() ) {
|
||||||
std::string entry;
|
std::string entry;
|
||||||
entry.reserve((packet.length() + 3) / 4);
|
entry.reserve((packet.length() + 3) / 4);
|
||||||
@ -122,8 +106,6 @@ bool AISModel::on_packet(const ais::Packet& packet) {
|
|||||||
log_file.write_entry(packet.received_at(), entry);
|
log_file.write_entry(packet.received_at(), entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
packet_signal.emit(packet);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,13 +114,20 @@ namespace ui {
|
|||||||
AISView::AISView() {
|
AISView::AISView() {
|
||||||
flags.focusable = true;
|
flags.focusable = true;
|
||||||
|
|
||||||
packet_signal_token = model.packet_signal += [this](const ais::Packet& packet) {
|
EventDispatcher::message_map().register_handler(Message::ID::AISPacket,
|
||||||
this->on_packet(packet);
|
[this](Message* const p) {
|
||||||
};
|
const auto message = static_cast<const AISPacketMessage*>(p);
|
||||||
|
const ais::Packet packet { message->packet };
|
||||||
|
if( packet.is_valid() ) {
|
||||||
|
this->model.on_packet(packet);
|
||||||
|
this->on_packet(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
AISView::~AISView() {
|
AISView::~AISView() {
|
||||||
model.packet_signal -= packet_signal_token;
|
EventDispatcher::message_map().unregister_handler(Message::ID::AISPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AISView::truncate_entries() {
|
void AISView::truncate_entries() {
|
||||||
|
@ -25,12 +25,8 @@
|
|||||||
#include "ui_widget.hpp"
|
#include "ui_widget.hpp"
|
||||||
#include "log_file.hpp"
|
#include "log_file.hpp"
|
||||||
|
|
||||||
#include "message.hpp"
|
|
||||||
|
|
||||||
#include "ais_packet.hpp"
|
#include "ais_packet.hpp"
|
||||||
|
|
||||||
#include "signal.hpp"
|
|
||||||
|
|
||||||
#include "lpc43xx_cpp.hpp"
|
#include "lpc43xx_cpp.hpp"
|
||||||
using namespace lpc43xx;
|
using namespace lpc43xx;
|
||||||
|
|
||||||
@ -70,14 +66,11 @@ struct AISRecentEntry {
|
|||||||
class AISModel {
|
class AISModel {
|
||||||
public:
|
public:
|
||||||
AISModel();
|
AISModel();
|
||||||
~AISModel();
|
|
||||||
|
|
||||||
Signal<const ais::Packet&> packet_signal;
|
bool on_packet(const ais::Packet& packet);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LogFile log_file;
|
LogFile log_file;
|
||||||
|
|
||||||
bool on_packet(const ais::Packet& packet);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace ui {
|
namespace ui {
|
||||||
@ -86,7 +79,7 @@ class AISView : public View {
|
|||||||
public:
|
public:
|
||||||
AISView();
|
AISView();
|
||||||
~AISView();
|
~AISView();
|
||||||
|
|
||||||
void paint(Painter& painter) override;
|
void paint(Painter& painter) override;
|
||||||
|
|
||||||
void on_focus() override;
|
void on_focus() override;
|
||||||
@ -96,7 +89,6 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
AISModel model;
|
AISModel model;
|
||||||
SignalToken packet_signal_token;
|
|
||||||
|
|
||||||
using EntryKey = ais::MMSI;
|
using EntryKey = ais::MMSI;
|
||||||
EntryKey selected_key;
|
EntryKey selected_key;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user