Files
firmware/src/modules/WaypointModule.h

32 lines
1021 B
C
Raw Normal View History

#pragma once
#include "Observer.h"
2023-01-21 14:34:29 +01:00
#include "SinglePortModule.h"
/**
* Waypoint message handling for meshtastic
*/
2026-01-03 21:19:24 +01:00
class WaypointModule : public SinglePortModule, public Observable<const UIFrameEvent *> {
public:
/** Constructor
* name is for debugging output
*/
WaypointModule() : SinglePortModule("waypoint", meshtastic_PortNum_WAYPOINT_APP) {}
#if HAS_SCREEN
2026-01-03 21:19:24 +01:00
bool shouldDraw();
#endif
2026-01-03 21:19:24 +01:00
protected:
/** Called to handle a particular incoming message
2026-01-03 21:19:24 +01:00
@return ProcessMessage::STOP if you've guaranteed you've handled this message and no other handlers should be
considered for it
*/
2026-01-03 21:19:24 +01:00
virtual Observable<const UIFrameEvent *> *getUIFrameObservable() override { return this; }
#if HAS_SCREEN
2026-01-03 21:19:24 +01:00
virtual bool wantUIFrame() override { return this->shouldDraw(); }
virtual void drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) override;
#endif
2026-01-03 21:19:24 +01:00
virtual ProcessMessage handleReceived(const meshtastic_MeshPacket &mp) override;
};
extern WaypointModule *waypointModule;