2022-03-20 12:39:45 +00:00
|
|
|
#ifndef TASK_BEACON_H_
|
|
|
|
#define TASK_BEACON_H_
|
|
|
|
|
2022-03-27 00:02:14 +00:00
|
|
|
#include <OneButton.h>
|
2022-03-20 12:39:45 +00:00
|
|
|
#include <TinyGPS++.h>
|
|
|
|
|
2023-09-23 13:37:35 +00:00
|
|
|
#include "System/TaskManager.h"
|
2022-03-20 12:39:45 +00:00
|
|
|
#include <APRSMessage.h>
|
|
|
|
#include <TaskMQTT.h>
|
|
|
|
|
|
|
|
class BeaconTask : public Task {
|
|
|
|
public:
|
|
|
|
BeaconTask(TaskQueue<std::shared_ptr<APRSMessage>> &toModem, TaskQueue<std::shared_ptr<APRSMessage>> &toAprsIs);
|
|
|
|
virtual ~BeaconTask();
|
|
|
|
|
|
|
|
virtual bool setup(System &system) override;
|
|
|
|
virtual bool loop(System &system) override;
|
2022-03-26 21:27:43 +00:00
|
|
|
bool sendBeacon(System &system);
|
2022-03-20 12:39:45 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
TaskQueue<std::shared_ptr<APRSMessage>> &_toModem;
|
|
|
|
TaskQueue<std::shared_ptr<APRSMessage>> &_toAprsIs;
|
|
|
|
|
|
|
|
std::shared_ptr<APRSMessage> _beaconMsg;
|
|
|
|
Timer _beacon_timer;
|
|
|
|
|
2022-03-26 21:27:43 +00:00
|
|
|
HardwareSerial _ss;
|
|
|
|
TinyGPSPlus _gps;
|
|
|
|
bool _useGps;
|
2022-03-27 00:02:14 +00:00
|
|
|
|
|
|
|
static uint _instances;
|
|
|
|
static OneButton _userButton;
|
|
|
|
static bool _send_update;
|
|
|
|
static void pushButton();
|
2022-03-20 12:39:45 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|