SensESP 3.4.1-alpha
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
signalk_emitter.h
Go to the documentation of this file.
1#ifndef SENSESP_SIGNALK_SIGNALK_EMITTER_H_
2#define SENSESP_SIGNALK_SIGNALK_EMITTER_H_
3
4#include "sensesp.h"
5
6#include <ArduinoJson.h>
7#include <set>
8
11#include "signalk_metadata.h"
12
13namespace sensesp {
14
20class SKEmitter : virtual public Observable {
21 public:
27 SKEmitter(const String& sk_path);
28
33 virtual ~SKEmitter();
34
39 virtual void as_signalk_json(JsonDocument& doc) {
40 ESP_LOGE("SKEmitter", "as_signalk_json() not implemented");
41 JsonVariant obj = doc.as<JsonVariant>();
42 obj.set("ERROR! Not implemented");
43 }
44
51 virtual SKMetadata* get_metadata() { return nullptr; }
52
61 virtual void add_metadata(JsonArray& meta);
62
68 String& get_sk_path() { return sk_path_; }
69
70 void set_sk_path(const String& path) { sk_path_ = path; }
71
72 static const std::vector<SKEmitter*>& get_sources() { return sources_; }
73
78 static void clear_registry();
79
80 protected:
81 String sk_path_{};
82
83 private:
84 static std::vector<SKEmitter*> sources_;
85};
86
87} // namespace sensesp
88
89#endif
A base class which allow observers to attach callbacks to themselves. The callbacks will be called wh...
Definition observable.h:16
A class that produces Signal K output to be forwarded to the Signal K server (if the system is connec...
static void clear_registry()
virtual void add_metadata(JsonArray &meta)
virtual SKMetadata * get_metadata()
virtual void as_signalk_json(JsonDocument &doc)
void set_sk_path(const String &path)
static const std::vector< SKEmitter * > & get_sources()
Holds Signal K meta data that is associated with the sk_path an SKEmitter class may optionally send t...