#pragma once #include "ProtobufPlugin.h" /** * Position plugin for sending/receiving positions into the mesh */ class PositionPlugin : public ProtobufPlugin { public: /** Constructor * name is for debugging output */ PositionPlugin() : ProtobufPlugin("position", PortNum_POSITION_APP, Position_fields) {} /** * Send our position into the mesh */ void sendOurPosition(NodeNum dest = NODENUM_BROADCAST, bool wantReplies = false); protected: /** Called to handle a particular incoming message @return true if you've guaranteed you've handled this message and no other handlers should be considered for it */ virtual bool handleReceivedProtobuf(const MeshPacket &mp, const Position &p); /** Messages can be received that have the want_response bit set. If set, this callback will be invoked * so that subclasses can (optionally) send a response back to the original sender. */ virtual MeshPacket *allocReply(); }; extern PositionPlugin *positionPlugin;