The websocket connection to the Signal K server. More...
#include <sensesp/signalk/signalk_ws_client.h>
Public Member Functions | |
SKWSClient (const String &config_path, std::shared_ptr< SKDeltaQueue > sk_delta_queue, const String &server_address, uint16_t server_port, bool use_mdns=true) | |
const String | get_server_address () const |
uint16_t | get_server_port () const |
virtual bool | to_json (JsonObject &root) override final |
virtual bool | from_json (const JsonObject &config) override final |
ValueProducer< int > & | get_delta_tx_count_producer () |
ValueProducer< int > & | get_delta_rx_count_producer () |
Get the delta rx count producer object. | |
String | get_connection_status () |
Get a String representation of the current connection state. | |
void | on_disconnected () |
Called when the websocket connection is disconnected. | |
void | on_error () |
Called when the websocket connection encounters an error. | |
void | on_connected () |
Called when the websocket connection is established. | |
void | on_receive_delta (uint8_t *payload, size_t length) |
Called when the websocket receives a delta. | |
void | on_receive_updates (JsonDocument &message) |
Called when a delta update is received. | |
void | on_receive_put (JsonDocument &message) |
Called when a PUT event is received. | |
void | connect () |
void | loop () |
bool | is_connected () |
void | restart () |
void | send_delta () |
void | sendTXT (String &payload) |
Send some processed data to the websocket. | |
![]() | |
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) |
![]() | |
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 |
![]() | |
![]() | |
ValueProducer () | |
ValueProducer (const SKWSConnectionState &initial_value) | |
virtual const SKWSConnectionState & | get () const |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< SKWSConnectionState, 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. | |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< SKWSConnectionState, typenameVConsumer::input_type >::value, VConsumer * >::type | connect_to (VConsumer *consumer) |
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< SKWSConnectionState, typenameVConsumer::input_type >::value, VConsumer * >::type | connect_to (VConsumer &consumer) |
void | emit (const SKWSConnectionState &new_value) |
![]() | |
Observable () | |
Observable (Observable &&other) | |
Move constructor. | |
void | notify () |
void | attach (std::function< void()> observer) |
Protected Member Functions | |
bool | take_received_updates_semaphore (unsigned long int timeout_ms=0) |
void | release_received_updates_semaphore () |
void | process_received_updates () |
Loop through the received updates and process them. | |
void | connect_loop () |
void | test_token (const String host, const uint16_t port) |
void | send_access_request (const String host, const uint16_t port) |
void | poll_access_request (const String host, const uint16_t port, const String href) |
void | connect_ws (const String &host, const uint16_t port) |
void | subscribe_listeners () |
Subscribes the SK delta paths to the websocket. | |
bool | get_mdns_service (String &server_address, uint16_t &server_port) |
void | set_connection_state (SKWSConnectionState state) |
SKWSConnectionState | get_connection_state () |
The websocket connection to the Signal K server.
Definition at line 35 of file signalk_ws_client.h.
sensesp::SKWSClient::SKWSClient | ( | const String & | config_path, |
std::shared_ptr< SKDeltaQueue > | sk_delta_queue, | ||
const String & | server_address, | ||
uint16_t | server_port, | ||
bool | use_mdns = true ) |
void sensesp::SKWSClient::connect | ( | ) |
Definition at line 400 of file signalk_ws_client.cpp.
|
protected |
|
protected |
Definition at line 636 of file signalk_ws_client.cpp.
|
finaloverridevirtual |
Deserializes the current object data from a JsonObject.
Reimplemented from sensesp::Serializable.
Definition at line 706 of file signalk_ws_client.cpp.
|
inlineprotected |
String sensesp::SKWSClient::get_connection_status | ( | ) |
Get a String representation of the current connection state.
Definition at line 734 of file signalk_ws_client.cpp.
|
inline |
Get the delta rx count producer object.
Definition at line 65 of file signalk_ws_client.h.
|
inline |
Return a delta update ValueProducer that produces the number of sent deltas.
Definition at line 56 of file signalk_ws_client.h.
|
protected |
|
inline |
Definition at line 46 of file signalk_ws_client.h.
|
inline |
Definition at line 47 of file signalk_ws_client.h.
bool sensesp::SKWSClient::is_connected | ( | ) |
void sensesp::SKWSClient::loop | ( | ) |
void sensesp::SKWSClient::on_connected | ( | ) |
Called when the websocket connection is established.
Called in the websocket task context.
Definition at line 155 of file signalk_ws_client.cpp.
void sensesp::SKWSClient::on_disconnected | ( | ) |
Called when the websocket connection is disconnected.
This method is called in the websocket task context.
Definition at line 125 of file signalk_ws_client.cpp.
void sensesp::SKWSClient::on_error | ( | ) |
Called when the websocket connection encounters an error.
Called in the websocket task context.
Definition at line 145 of file signalk_ws_client.cpp.
void sensesp::SKWSClient::on_receive_delta | ( | uint8_t * | payload, |
size_t | length ) |
Called when the websocket receives a delta.
Called in the websocket task context.
payload |
Definition at line 213 of file signalk_ws_client.cpp.
void sensesp::SKWSClient::on_receive_put | ( | JsonDocument & | message | ) |
Called when a PUT event is received.
Called in the websocket task context.
message |
Definition at line 324 of file signalk_ws_client.cpp.
void sensesp::SKWSClient::on_receive_updates | ( | JsonDocument & | message | ) |
Called when a delta update is received.
Called in the websocket task context.
message |
Definition at line 253 of file signalk_ws_client.cpp.
|
protected |
Definition at line 566 of file signalk_ws_client.cpp.
|
protected |
Loop through the received updates and process them.
This method is called in the main task context.
Definition at line 281 of file signalk_ws_client.cpp.
|
inlineprotected |
void sensesp::SKWSClient::restart | ( | ) |
|
protected |
Definition at line 505 of file signalk_ws_client.cpp.
void sensesp::SKWSClient::send_delta | ( | ) |
Definition at line 682 of file signalk_ws_client.cpp.
void sensesp::SKWSClient::sendTXT | ( | String & | payload | ) |
Send some processed data to the websocket.
Sends the specified payload to the server over the websocket this client is connected to. If no connection currently exist, the call is safely ignored.
Called in the websocket task context.
payload |
Definition at line 373 of file signalk_ws_client.cpp.
|
inlineprotected |
Definition at line 160 of file signalk_ws_client.h.
|
protected |
Subscribes the SK delta paths to the websocket.
Called in the websocket task context.
Definition at line 168 of file signalk_ws_client.cpp.
|
inlineprotected |
|
protected |
Definition at line 461 of file signalk_ws_client.cpp.
|
finaloverridevirtual |
Serializes the current object data into a JsonObject.
Reimplemented from sensesp::Serializable.
Definition at line 695 of file signalk_ws_client.cpp.
|
protected |
Definition at line 104 of file signalk_ws_client.h.
|
protected |
Definition at line 117 of file signalk_ws_client.h.
|
protected |
Definition at line 102 of file signalk_ws_client.h.
|
protected |
Definition at line 98 of file signalk_ws_client.h.
|
protected |
Definition at line 99 of file signalk_ws_client.h.
|
protected |
Definition at line 108 of file signalk_ws_client.h.
|
protected |
Definition at line 122 of file signalk_ws_client.h.
|
protected |
Definition at line 121 of file signalk_ws_client.h.
|
protected |
Emits the number of deltas sent since last report.
Definition at line 120 of file signalk_ws_client.h.
|
protected |
Definition at line 103 of file signalk_ws_client.h.
|
protected |
Definition at line 126 of file signalk_ws_client.h.
|
protected |
Definition at line 124 of file signalk_ws_client.h.
|
protected |
Definition at line 95 of file signalk_ws_client.h.
|
protected |
Definition at line 105 of file signalk_ws_client.h.
|
protected |
Definition at line 96 of file signalk_ws_client.h.
|
protected |
Definition at line 118 of file signalk_ws_client.h.
|
protected |
task_connection_state is used to track the internal task state which might be out of sync with the published connection state.
Definition at line 113 of file signalk_ws_client.h.
|
protected |
Definition at line 106 of file signalk_ws_client.h.
|
protected |
Definition at line 100 of file signalk_ws_client.h.
|
protected |
Definition at line 116 of file signalk_ws_client.h.