46 mpScheduler(nullptr) {}
71 mpScheduler = &scheduler;
83 virtual void handle(
const String& topic,
const Bytes& payload)
override {
107 auto tasksObj = packet.
putMap(
"tasks");
108 uint64_t tasksElapsedMs = 0;
109 mpScheduler->exportTasksInfo([&](
const char* name,
bool isAttached, uint64_t elapsedMs) {
110 tasksElapsedMs += elapsedMs;
111 tasksObj.putArray(name)
115 auto idleMs = mpScheduler->getTotalElapsedMs() - tasksElapsedMs;
116 packet.
put(
"idle", idleMs);
117 packet.
put(
"timestamp",
static_cast<int64_t
>(
Date::now()));
118 packet.
put(
"uptime",
static_cast<uint64_t
>(millis()));
132 packet.
put(
"available",
static_cast<uint64_t
>(ESP.getFreeHeap()));
Definition CBORObject.h:40
CBORObject putMap(const char *key)
Put a new map at a specific string key, or get the existing one.
Definition CBORObject.h:338
CBORObject & put(int key, int value)
Put an integer value at a specific integer key.
Definition CBORObject.h:170
Bytes build() const
Build the CBOR data into binary format.
Definition CBORObject.h:499
static time_t now()
Returns the current Unix timestamp.
Definition Date.h:74
MQTTDevice()
Constructs a new MQTTDevice instance.
Definition MQTTDevice.h:44
bool isTopicMatch(const String &storedTopic, const String &incomingTopic) const
Determines if a stored topic matches an incoming topic string using MQTT wildcards.
Definition MQTTDevice.cpp:137
void publishDevice(const String &subTopic, const Bytes &payload, bool retained=false, bool sign=false)
Publishes a message to a device-specific subtopic.
Definition MQTTDevice.cpp:108
const String & subscribeDevice(const String &subTopic)
Subscribes to a device-specific subtopic.
Definition MQTTDevice.cpp:83
Definition TaskScheduler.h:164
void handleMem()
Handle request for memory usage information.
Definition TopDevice.h:130
TopDevice()
Construct a new TopDevice instance.
Definition TopDevice.h:44
virtual void handle(const String &topic, const Bytes &payload) override
Handle incoming MQTT messages.
Definition TopDevice.h:83
void setScheduler(const TaskScheduler &scheduler)
Associate a TaskScheduler with this monitoring device.
Definition TopDevice.h:70
virtual void syncSubscriptions() override
Set up MQTT topic subscriptions for device monitoring.
Definition TopDevice.h:57
void handleTop()
Handle request for task and system performance data.
Definition TopDevice.h:104
Contains all classes and functions related to the Uniot Core.