mirror of
https://github.com/alexhopeoconnor/firmware.git
synced 2026-10-13 23:21:19 +10:00
* Improve resource cleanup on connection close * Copilot had some good feedback. Let's just make the api a unique pointer * Update src/mesh/api/ServerAPI.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Copilot stupidly suggesting we call protected methods * Gotta do it in the superclasses as well * Fix moar * Refactor MQTT unit test to ensure proper subscription handling and clear side effects --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include "PhoneAPI.h"
|
|
#include "comms/PacketServer.h"
|
|
#include "concurrency/OSThread.h"
|
|
|
|
/**
|
|
* A version of the phone API used for inter task communication based on protobuf packets, e.g.
|
|
* between two tasks running on CPU0 and CPU1, respectively.
|
|
*
|
|
*/
|
|
class PacketAPI : public PhoneAPI, public concurrency::OSThread
|
|
{
|
|
public:
|
|
static PacketAPI *create(PacketServer *_server);
|
|
virtual ~PacketAPI(){};
|
|
virtual int32_t runOnce();
|
|
// Check the current underlying physical queue to see if the client is fetching packets
|
|
bool checkIsConnected() override;
|
|
|
|
protected:
|
|
explicit PacketAPI(PacketServer *_server);
|
|
|
|
void onNowHasData(uint32_t fromRadioNum) override {}
|
|
void onConnectionChanged(bool connected) override {}
|
|
|
|
private:
|
|
bool receivePacket(void);
|
|
bool sendPacket(void);
|
|
bool notifyProgrammingMode(void);
|
|
|
|
bool isConnected;
|
|
bool programmingMode;
|
|
PacketServer *server;
|
|
uint8_t txBuf[MAX_TO_FROM_RADIO_SIZE] = {0}; // dummy buf to obey PhoneAPI
|
|
};
|
|
|
|
extern PacketAPI *packetAPI; |