SensESP 3.0.1
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::SKOutput< T > Class Template Reference

A specialized transform whose primary purpose is to output Signal K data on the Signal K network. More...

#include <sensesp/signalk/signalk_output.h>

Inheritance diagram for sensesp::SKOutput< T >:
[legend]

Public Member Functions

 SKOutput ()
 
 SKOutput (String sk_path, String config_path="", SKMetadata *meta=nullptr)
 
 SKOutput (String sk_path, String config_path, std::shared_ptr< SKMetadata > meta)
 
 SKOutput (String sk_path, SKMetadata *meta)
 
virtual void set (const T &new_value) override
 
virtual void as_signalk_json (JsonDocument &doc) override
 
virtual bool to_json (JsonObject &root) override
 
virtual bool from_json (const JsonObject &config) override
 
virtual void set_metadata (SKMetadata *meta)
 
virtual SKMetadataget_metadata () override
 
void as_signalk_json (JsonDocument &doc)
 Template specialization for SKOutputPosition::as_signalk_json()
 
void as_signalk_json (JsonDocument &doc)
 
void as_signalk_json (JsonDocument &doc)
 
void as_signalk_json (JsonDocument &doc)
 
void as_signalk_json (JsonDocument &doc)
 
void as_signalk_json (JsonDocument &doc)
 
- Public Member Functions inherited from sensesp::SKEmitter
 SKEmitter (const String &sk_path)
 
virtual void add_metadata (JsonArray &meta)
 
String & get_sk_path ()
 
void set_sk_path (const String &path)
 
- Public Member Functions inherited from sensesp::Observable
 Observable ()
 
 Observable (Observable &&other)
 Move constructor.
 
void notify ()
 
void attach (std::function< void()> observer)
 
- Public Member Functions inherited from sensesp::SymmetricTransform< T >
 SymmetricTransform (String config_path="")
 
- Public Member Functions inherited from sensesp::Transform< T, T >
 Transform (String config_path="")
 
Transform< T, T > * connect_from (ValueProducer< T > *producer0, ValueProducer< T > *producer1=NULL, ValueProducer< T > *producer2=NULL, ValueProducer< T > *producer3=NULL, ValueProducer< T > *producer4=NULL)
 
- Public Member Functions inherited from sensesp::TransformBase
 TransformBase (const String &config_path)
 
- Public Member Functions inherited from sensesp::FileSystemSaveable
 FileSystemSaveable (const String &config_path)
 
virtual bool load () override
 Load and populate the object from a persistent storage.
 
virtual bool save () override
 Save the object to a persistent storage.
 
virtual bool clear () override
 Delete the data from a persistent storage.
 
bool find_config_file (const String &config_path, String &filename)
 
- Public Member Functions inherited from sensesp::Saveable
 Saveable (const String &config_path)
 
virtual bool refresh ()
 Refresh the object. This may or may not access the persistent storage but is not expected to overwrite the object's state.
 
const String & get_config_path () const
 
- Public Member Functions inherited from sensesp::Serializable
- Public Member Functions inherited from sensesp::ValueConsumer< T >
virtual void set_input (const T &new_value)
 
void connect_from (ValueProducer< T > *producer)
 
- Public Member Functions inherited from sensesp::ValueProducer< T >
 ValueProducer ()
 
 ValueProducer (const T &initial_value)
 
virtual const T & get () const
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, std::shared_ptr< VConsumer > >::type connect_to (std::shared_ptr< VConsumer > consumer)
 Connect a producer to a transform with a different input type.
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer *consumer)
 
template<typename VConsumer >
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< T, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer &consumer)
 
void emit (const T &new_value)
 

Protected Attributes

std::shared_ptr< SKMetadatameta_
 
- Protected Attributes inherited from sensesp::SKEmitter
String sk_path_ {}
 
- Protected Attributes inherited from sensesp::Saveable
const String config_path_
 
- Protected Attributes inherited from sensesp::ValueProducer< T >
output_
 

Additional Inherited Members

- Public Types inherited from sensesp::ValueConsumer< T >
using input_type = T
 
- Static Public Member Functions inherited from sensesp::SKEmitter
static const std::vector< SKEmitter * > & get_sources ()
 
- Static Public Member Functions inherited from sensesp::TransformBase
static const std::set< TransformBase * > & get_transforms ()
 

Detailed Description

template<typename T>
class sensesp::SKOutput< T >

A specialized transform whose primary purpose is to output Signal K data on the Signal K network.

Definition at line 17 of file signalk_output.h.

Constructor & Destructor Documentation

◆ SKOutput() [1/4]

template<typename T >
sensesp::SKOutput< T >::SKOutput ( )
inline

Definition at line 19 of file signalk_output.h.

Here is the call graph for this function:

◆ SKOutput() [2/4]

template<typename T >
sensesp::SKOutput< T >::SKOutput ( String sk_path,
String config_path = "",
SKMetadata * meta = nullptr )
inline

The constructor

Parameters
sk_pathThe Signal K path the output value of this transform is sent on
config_pathThe optional configuration path that allows an end user to change the configuration of this object. See the Configurable class for more information.
metaOptional metadata that is associated with the value output by this class A value specified here will cause the path's metadata to be emitted on the first delta sent to the server. Use NULL if this path has no metadata to report (or if the path is already an official part of the Signal K specification)

Definition at line 34 of file signalk_output.h.

◆ SKOutput() [3/4]

template<typename T >
sensesp::SKOutput< T >::SKOutput ( String sk_path,
String config_path,
std::shared_ptr< SKMetadata > meta )
inline

Definition at line 37 of file signalk_output.h.

Here is the call graph for this function:

◆ SKOutput() [4/4]

template<typename T >
sensesp::SKOutput< T >::SKOutput ( String sk_path,
SKMetadata * meta )
inline

Definition at line 42 of file signalk_output.h.

Member Function Documentation

◆ as_signalk_json() [1/7]

void sensesp::SKOutput< Position >::as_signalk_json ( JsonDocument & doc)
virtual

Template specialization for SKOutputPosition::as_signalk_json()

This specialization allows Position objects to be output as Signal K deltas.

Template Parameters

return String

Reimplemented from sensesp::SKEmitter.

Reimplemented in sensesp::SKOutputRawJson.

Definition at line 16 of file signalk_types.cpp.

◆ as_signalk_json() [2/7]

void sensesp::SKOutput< ENUVector >::as_signalk_json ( JsonDocument & doc)
virtual

Returns the data to be reported to the server as a Signal K json object.

Reimplemented from sensesp::SKEmitter.

Reimplemented in sensesp::SKOutputRawJson.

Definition at line 27 of file signalk_types.cpp.

◆ as_signalk_json() [3/7]

void sensesp::SKOutput< AttitudeVector >::as_signalk_json ( JsonDocument & doc)
virtual

Returns the data to be reported to the server as a Signal K json object.

Reimplemented from sensesp::SKEmitter.

Reimplemented in sensesp::SKOutputRawJson.

Definition at line 38 of file signalk_types.cpp.

◆ as_signalk_json() [4/7]

void sensesp::SKOutput< Position >::as_signalk_json ( JsonDocument & doc)
virtual

Returns the data to be reported to the server as a Signal K json object.

Reimplemented from sensesp::SKEmitter.

Reimplemented in sensesp::SKOutputRawJson.

◆ as_signalk_json() [5/7]

void sensesp::SKOutput< ENUVector >::as_signalk_json ( JsonDocument & doc)
virtual

Returns the data to be reported to the server as a Signal K json object.

Reimplemented from sensesp::SKEmitter.

Reimplemented in sensesp::SKOutputRawJson.

◆ as_signalk_json() [6/7]

void sensesp::SKOutput< AttitudeVector >::as_signalk_json ( JsonDocument & doc)
virtual

Returns the data to be reported to the server as a Signal K json object.

Reimplemented from sensesp::SKEmitter.

Reimplemented in sensesp::SKOutputRawJson.

◆ as_signalk_json() [7/7]

template<typename T >
virtual void sensesp::SKOutput< T >::as_signalk_json ( JsonDocument & doc)
inlineoverridevirtual

Returns the data to be reported to the server as a Signal K json object.

Reimplemented from sensesp::SKEmitter.

Reimplemented in sensesp::SKOutputRawJson.

Definition at line 48 of file signalk_output.h.

Here is the call graph for this function:

◆ from_json()

template<typename T >
virtual bool sensesp::SKOutput< T >::from_json ( const JsonObject & root)
inlineoverridevirtual

Deserializes the current object data from a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 58 of file signalk_output.h.

Here is the call graph for this function:

◆ get_metadata()

template<typename T >
virtual SKMetadata * sensesp::SKOutput< T >::get_metadata ( )
inlineoverridevirtual

Returns a Metadata structure that describes the sk_path this SKEmitter is associated with. If this emitter has no metadata, NULL is returned.

See also
add_metadata()

Reimplemented from sensesp::SKEmitter.

Definition at line 76 of file signalk_output.h.

◆ set()

template<typename T >
virtual void sensesp::SKOutput< T >::set ( const T & new_value)
inlineoverridevirtual

Used to set an input of this consumer. It is called automatically by a ValueProducer but can also be called manually.

Parameters
new_valuethe value of the input

Reimplemented from sensesp::ValueConsumer< T >.

Definition at line 44 of file signalk_output.h.

Here is the call graph for this function:

◆ set_metadata()

template<typename T >
virtual void sensesp::SKOutput< T >::set_metadata ( SKMetadata * meta)
inlinevirtual

Used to set the optional metadata that is associated with the Signal K path this transform emits. This is a second method of setting the metadata (the first being a parameter to the constructor).

Definition at line 72 of file signalk_output.h.

◆ to_json()

template<typename T >
virtual bool sensesp::SKOutput< T >::to_json ( JsonObject & root)
inlineoverridevirtual

Serializes the current object data into a JsonObject.

Reimplemented from sensesp::Serializable.

Definition at line 53 of file signalk_output.h.

Here is the call graph for this function:

Member Data Documentation

◆ meta_

template<typename T >
std::shared_ptr<SKMetadata> sensesp::SKOutput< T >::meta_
protected

Definition at line 79 of file signalk_output.h.


The documentation for this class was generated from the following file: